mysql性能检测常用命令

概要:

MySQL数据库是常见的两个瓶颈是CPU和I/O的瓶颈,CPU在饱和的时候一般发生在数据装入内存或从磁盘上读取数据时候。磁盘I/O瓶颈发生在装入数据远大于内存容量的时候,如果应用分布在网络上,那么查询量相当大的时候那么平瓶颈就会出现在网络上,我们可以用mpstat, iostat, sar和vmstat来查看系统的性能状态。

| |目录

  • 1性能检测常用命令
  • 2瓶颈分析常用命令
  • ·获取mysql用户下的进程总数
  • ·主机性能状态
  • ·CPU使用率
  • ·磁盘IO量
  • ·swap进出量[内存]
  • ·数据库性能状态

1性能检测常用命令

show status

显示状态信息,参考:Mysql show status命令详解

show processlist

查看当前SQL执行,包括执行状态、是否锁表等,参考:Mysql show processlist命令详解

show variables

显示系统变量,参考:Mysql show variables命令详解

2瓶颈分析常用命令

获取mysql用户下的进程总数

SQL |  复制
1
ps -ef | awk  '{print $1}'  | grep  "mysql"  | grep -v  "grep"  | wc -l

主机性能状态

Text |  复制
1
2
# uptime 
13:05:52 up 53 days, 52 min, 1 user, load average: 0.00, 0.00, 0.00

CPU使用率

Text |  复制
1
# top 或 # vmstat

磁盘IO量

Text |  复制
1
# vmstat 或 # iostat

swap进出量[内存]

Text |  复制
1
# free -m

数据库性能状态

QPS(每秒Query量)

QPS = Questions(or Queries) / seconds 

SQL |  复制
1
mysql > show /*  global  */ status  like  'Question' ;

TPS(每秒事务量) 

TPS = (Com_commit + Com_rollback) / seconds 

SQL |  复制
1
2
mysql > show status  like  'Com_commit'
mysql > show status  like  'Com_rollback' ;

key Buffer 命中率

key_buffer_read_hits = (1-key_reads / key_read_requests) * 100% 
key_buffer_write_hits = (1-key_writes / key_write_requests) * 100%

SQL |  复制
1
mysql> show status  like  'Key%' ;

InnoDB Buffer命中率

innodb_buffer_read_hits = (1 - innodb_buffer_pool_reads / innodb_buffer_pool_read_requests) * 100%

SQL |  复制
1
mysql> show status  like  'innodb_buffer_pool_read%' ;

Query Cache命中率

Query_cache_hits = (Qcahce_hits / (Qcache_hits + Qcache_inserts )) * 100%;

SQL |  复制
1
mysql> show status  like  'Qcache%' ;

Table Cache状态量

SQL |  复制
1
mysql> show status  like  'open%' ;

Thread Cache 命中率

Thread_cache_hits = (1 - Threads_created / connections ) * 100%

SQL |  复制
1
2
mysql> show status  like  'Thread%' ;
mysql> show status  like  'Connections' ;

锁定状态

SQL |  复制
1
mysql> show status  like  '%lock%' ;

复制延时量

SQL |  复制
1
mysql > show slave status

Tmp Table 状况(临时表状况)

SQL |  复制
1
mysql > show status  like  'Create_tmp%' ;

Binlog Cache 使用状况 

SQL |  复制
1
mysql > show status  like  'Binlog_cache%' ;

Innodb_log_waits 量

SQL |  复制
1
mysql > show status  like  'innodb_log_waits' ;

你可能感兴趣的:(mysql,性能检测)