您的位置:首页 > 数据库 > SQL

mysql 性能监控

2016-09-21 10:18 211 查看
SHOW STATUS;

FLUSH STATUS;

查看当前连接数 SHOW STATUS LIKE 'Thread_%';

Thread_cached:被缓存的线程的个数

Thread_running:处于激活状态的线程的个数

Thread_connected:当前连接的线程的个数

Thread_created:总共被创建的线程的个数

Thread cache hits 

Thread_connected = SHOW GLOBAL STATUS LIKE Thread_created;

Connections = SHOW GLOBAL STATUS LIKE 'Connections';

TCH=(1 - (Threads_created / Connections)) * 100

查看活动连接内容

SHOW PROCESSLIST;

如果 TCH数小于90%,创建连接耗费了时间,增大Thread_cached数量

QPS

Questions = SHOW GLOBAL STATUS LIKE 'Questions';

Uptime = SHOW GLOBAL STATUS LIKE 'Uptime';

QPS=Questions/Uptime 

TPS

Com_commit = SHOW GLOBAL STATUS LIKE 'Com_commit';

Com_rollback = SHOW GLOBAL STATUS LIKE 'Com_rollback';

Uptime = SHOW GLOBAL STATUS LIKE 'Uptime';

TPS=(Com_commit + Com_rollback)/Uptime

QPS 和 TPS值一定要实时监控,如果接近架构搭建时的测试峰值,愿上帝与你同在

Read/Writes Ratio

Qcache_hits = SHOW GLOBAL STATUS LIKE 'Qcache_hits';

Com_select = SHOW GLOBAL STATUS LIKE 'Com_select';

Com_insert = SHOW GLOBAL STATUS LIKE 'Com_insert';

Com_update = SHOW GLOBAL STATUS LIKE 'Com_update';

Com_delete = SHOW GLOBAL STATUS LIKE 'Com_delete';

Com_replace = SHOW GLOBAL STATUS LIKE 'Com_replace';

R/W=(Com_select + Qcache_hits) / (Com_insert + Com_update + Com_delete + Com_replace) * 100

读写比,优化数据库的重要依据,读的多就去优化读,写的多就去优化写

Slow queries per minute

Slow_queries = SHOW GLOBAL STATUS LIKE 'Slow_queries';

Uptime = SHOW GLOBAL STATUS LIKE 'Uptime';

SQPM=Slow_queries / (Uptime/60)

Slow queries /Questions Ratio

Slow_queries = SHOW GLOBAL STATUS LIKE 'Slow_queries';

Questions = SHOW GLOBAL STATUS LIKE 'Questions';

S/Q=Slow_queries/Questions 

新版本上线时要着重关注慢查询,让测试去踢开发者的屁股吧

Full_join per minute

Select_full_join = SHOW GLOBAL STATUS LIKE 'Select_full_join';

Uptime = SHOW GLOBAL STATUS LIKE 'Uptime';

FJPM=Select_full_join / (Uptime/60)

没有使用索引而造成的full_join,优化索引去吧

Innodb buffer read hits

Innodb_buffer_pool_reads = SHOW GLOBAL STATUS LIKE 'Innodb_buffer_pool_reads';

Innodb_buffer_pool_read_requests = SHOW GLOBAL STATUS LIKE 'Innodb_buffer_pool_read_requests';

IFRH=(1 - Innodb_buffer_pool_reads/Innodb_buffer_pool_read_requests) * 100

InnoDB Buffer命中率 目标 95%-99%;

Table Cache

Open_tables= SHOW GLOBAL STATUS LIKE 'Open_tables';

Opened_tables= SHOW GLOBAL STATUS LIKE 'Opened_tables';

table_cache= SHOW GLOBAL STATUS LIKE 'table_cache';

table_cache应该大于 Open_tables 小于 Opened_tables 

Temp tables to Disk ratio

Created_tmp_tables = show global status like 'Created_tmp_tables';

Created_tmp_disk_tables = show global status like 'Created_tmp_disk_tables';
TDR=(Created_tmp_disk_tables/Created_tmp_tables)*100

SHOW GLOBAL STATUS LIKE 'Innodb_row_lock_%';

Innodb_row_lock_current_waits


The number of row locks currently being waited for. Added in MySQL 5.0.3.

Innodb_row_lock_time


The total time spent in acquiring row locks, in milliseconds. Added in MySQL 5.0.3.

Innodb_row_lock_time_avg


The average time to acquire a row lock, in milliseconds. Added in MySQL 5.0.3.

Innodb_row_lock_time_max


The maximum time to acquire a row lock, in milliseconds. Added in MySQL 5.0.3.

Innodb_row_lock_waits


The number of times a row lock had to be waited for. Added in MySQL 5.0.3.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: