mysql狀態檢視 QPS/TPS/快取命中率檢視
阿新 • • 發佈:2019-02-07
最近在看mysql,看到QPS,就想知道怎麼檢視的,看了下面這篇文章,覺得正是我需要的,留下來備用。
執行中的mysql狀態檢視 對正在執行的mysql進行監控,其中一個方式就是檢視mysql執行狀態。 (1)QPS(每秒Query量) QPS = Questions(or Queries) / seconds mysql > show global status like 'Question%'; (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 因為空間不足而等待 比如命令: >#show global status; 雖然可以使用: >#show global status like %...%; 來過濾,但是對應長長的list,每一項都代表什麼意思,還是有必要弄清楚。