在做db基準測試的時候,qps,tps 是衡量資料庫性能的關鍵名額。
QPS:Queries Per Second 查詢量/秒,是一台伺服器每秒能夠相應的查詢次數,是對一個特定的查詢伺服器在規定時間内所處理查詢量多少的衡量标準。
TPS:Transaction per second 每秒事務量,如果是InnoDB會顯示,myisam就不會顯示
(1)QPS(每秒Query量)
QPS = Questions(or Queries) / seconds
mysql > show global status like ‘Question%’; #開啟資料庫後的總查詢
mysql > show global status like ‘uptime’; #開啟資料庫後的總時間
(2)TPS(每秒事務量)
TPS = (Com_commit + Com_rollback) / seconds
mysql > show global status like ‘Com_commit’;
mysql > show global status like ‘Com_rollback’;
(3)key Buffer 命中率
mysql>show global status like ‘key%’;
key_buffer_read_hits = (1-key_reads / key_read_requests) * 100%
key_buffer_write_hits = (1-key_writes / key_write_requests) * 100%
(4)InnoDB Buffer命中率
mysql> show status like ‘innodb_buffer_pool_read%’;
innodb_buffer_read_hits = (1 - innodb_buffer_pool_reads / innodb_buffer_pool_read_requests) * 100%
(5)Query Cache命中率
mysql> show status like ‘Qcache%’;
Query_cache_hits = (Qcahce_hits / (Qcache_hits + Qcache_inserts )) * 100%;
(6)Table Cache狀态量
mysql> show global status like ‘open%’;
比較 open_tables 與 opend_tables 值
(7)Thread Cache 命中率
mysql> show global status like ‘Thread%’;
mysql> show global status like ‘Connections’;
Thread_cache_hits = (1 - Threads_created / connections ) * 100%
(8)鎖定狀态
mysql> show global status like ‘%lock%’;
Table_locks_waited/Table_locks_immediate=0.3% 如果這個比值比較大的話,說明表鎖造成的阻塞比較嚴重
Innodb_row_lock_waits innodb行鎖,太大可能是間隙鎖造成的
(9)複制延時量
mysql > show slave status
檢視延時時間
(10) Tmp Table 狀況(臨時表狀況)
mysql > show status like ‘Create_tmp%’;
Created_tmp_disk_tables/Created_tmp_tables比值最好不要超過10%,如果Created_tmp_tables值比較大,
可能是排序句子過多或者是連接配接句子不夠優化
(11) Binlog Cache 使用狀況
mysql > show status like ‘Binlog_cache%’;
如果Binlog_cache_disk_use值不為0 ,可能需要調大 binlog_cache_size大小
(12) Innodb_log_waits 量
mysql > show status like ‘innodb_log_waits’;
Innodb_log_waits值不等于0的話,表明 innodb log buffer 因為空間不足而等待
感覺不是很準确,畢竟是所有資料庫運作以來,而且沒有時間區間。