zoukankan      html  css  js  c++  java
  • Mysql性能监控

    show processlist;

    show global variables like 'max_allowed_packet';


    // QPS计算(每秒查询数)
    show global status like 'com_update';
    show global status like 'com_select';
    show global status like 'com_delete';
    show global status like 'uptime';
    //QPS=(com_update+com_insert+com_delete+com_select)/uptime



    // TPS计算(每秒事务数)
    show global status like 'com_commit';
    show global status like 'com_rollback';
    show global status like 'uptime';
    // TPS=(com_commit+com_rollback)/uptime



    //线程连接数和命中率
    show global status like 'threads_%';
    show global status like 'Connections';
    show variables like '%thread_cache_size%';
    //线程缓存命中率=1-Threads_created/Connections
    //根据Threads_connected可预估thread_cache_size值应该设置多大,一般来说250是一个不错的上限值,如果内存足够大,也可以设置成thread_cache_size值和threaads_connected值相同;
    或者通过观察threads_created值,如果该值很大或一直在增长,可以适当增加thread_cache_size的值;
    在休眠状态下每个线程大概占用256KB左右的内存,所以当内存足够时,设置太小也不会节约太多内存,除非该值已经超过几千。



    //表缓存
    SHOW GLOBAL STATUS LIKE 'Open_tables';
    SHOW GLOBAL STATUS LIKE 'Opened_tables';
    SHOW GLOBAL STATUS LIKE 'table_cache';
    //table_cache应该大于 Open_tables 小于 Opened_tables



    //最大连接数
    show global status like 'Max_used_connections';
    show variables like 'max_connections%';
    //通常max_connections的大小应该设置为比Max_used_connections状态值大,Max_used_connections状态值反映服务器连接在某个时间段是否有尖峰,如果该值大于max_connections值,代表客户端至少被拒绝了一次,可以简单地设置为符合以下条件:Max_used_connections/max_connections=0.8



    //InnoDB Buffer命中率
    SHOW GLOBAL STATUS LIKE 'Innodb_buffer_pool_reads';
    SHOW GLOBAL STATUS LIKE 'Innodb_buffer_pool_read_requests';
    //InnoDB Buffer命中率 IFRH=(1 - Innodb_buffer_pool_reads/Innodb_buffer_pool_read_requests) * 100  目标为目标 95%-99%;



    //Slow queries per minute 慢查询
    SHOW GLOBAL STATUS LIKE 'Slow_queries';
    SHOW GLOBAL STATUS LIKE 'Uptime';
    //SQPM=Slow_queries / (Uptime/60)

    //Slow queries /Questions Ratio
    SHOW GLOBAL STATUS LIKE 'Slow_queries';
    SHOW GLOBAL STATUS LIKE 'Questions';
    //S/Q=Slow_queries/Questions



    //Full_join per minute
    SHOW GLOBAL STATUS LIKE 'Select_full_join';
    show global status like 'select_range';
    show global status like 'Select_range_check';//如果该值不为0需要检查表的索引是否合理
    //该值表示第一个表使用ranges的join数量,该值很大说明join写得没有问题,通常可查看select_full_join和select_range的比值来判断系统中join语句的性能情况



    //行锁
    SHOW GLOBAL STATUS LIKE 'Innodb_row_lock_%';
    show global  status like '%lock%';
    //Innodb_row_lock_waits innodb行锁,太大可能是间隙锁造成的
          Innodb_row_lock_current_waits:当前正在等待锁定的数量;

          Innodb_row_lock_time :从系统启动到现在锁定的总时间长度,单位ms;

          Innodb_row_lock_time_avg :每次等待所花平均时间;

          Innodb_row_lock_time_max:从系统启动到现在等待最长的一次所花的时间;

          Innodb_row_lock_waits :从系统启动到现在总共等待的次数。


    //Query Cache命中率
    show status like 'Qcache%';
    Query_cache_hits = (Qcahce_hits / (Qcache_hits + Qcache_inserts )) * 100%;


    //Thread Cache 命中率
    show global status like 'Thread%';
    show global status like 'Connections';
    //Thread_cache_hits = (1 - Threads_created / connections ) * 100%


    //查看延时时间 (主从结构,从服务器状态)
    show slave status

    //Tmp Table 状况(临时表状况)
    show status like 'Created_tmp%';
    //Created_tmp_disk_tables/Created_tmp_tables比值最好不要超过10%,如果Created_tmp_tables值比较大, 可能是排序句子过多或者是连接句子不够优化


    //Binlog Cache 使用状况
    show status like 'Binlog_cache%';
    //如果Binlog_cache_disk_use值不为0 ,可能需要调大 binlog_cache_size大小


  • 相关阅读:
    有36辆自动赛车和6条跑道,没有计时器的前提下,最少用几次比赛可以筛选出最快的三辆赛车?----腾讯2016研发工程师在线模拟笔试题
    10G个整数,乱序排列,要求找出中位数。内存限制为 2G。只写出思路即可
    计算机网络总结(二)
    计算机网络总结(一)
    最小编辑距离
    寻找两个有序数组的中位数
    Linux下几款C++程序中的内存泄露检查工具
    DDIA
    推荐引擎
    Innodb中的事务隔离级别和锁的关系
  • 原文地址:https://www.cnblogs.com/AmilyWilly/p/4791797.html
Copyright © 2011-2022 走看看