Archives for 8月 2019

post

Mysql占用过高CPU时的优化手段

Mysql占用CPU过高的时候,该从哪些方面下手进行优化?

占用CPU过高,可以做如下考虑:

  1. 一般来讲,排除高并发的因素,还是要找到导致你CPU过高的哪几条在执行的SQL,show processlist语句,查找负荷最重的SQL语句,优化该SQL,比如适当建立某字段的索引;
  2. 打开慢查询日志,将那些执行时间过长且占用资源过多的SQL拿来进行explain分析,导致CPU过高,多数是GroupBy、OrderBy排序问题所导致,然后慢慢进行优化改进。比如优化insert语句、优化group by语句、优化order by语句、优化join语句等等;
  3. 考虑定时优化文件及索引;
  4. 定期分析表,使用optimize table;
  5. 优化数据库对象;
  6. 考虑是否是锁问题;
  7. 调整一些MySQL Server参数,比如key_buffer_size、table_cache、innodb_buffer_pool_size、innodb_log_file_size等等;
  8. 如果数据量过大,可以考虑使用MySQL集群或者搭建高可用环境。
  9. 可能由于内存latch(泄露)导致数据库CPU高
  10. 在多用户高并发的情况下,任何系统都会hold不住的,所以,使用缓存是必须的,使用memcached或者redis缓存都可以;
  11. 看看tmp_table_size大小是否偏小,如果允许,适当的增大一点;
  12. 如果max_heap_table_size配置的过小,增大一点;
  13. mysql的sql语句睡眠连接超时时间设置问题(wait_timeout)
  14. 使用show processlist查看mysql连接数,看看是否超过了mysql设置的连接数(http://www.cnblogs.com/kevingrace/p/6226324.html
[Read more…]
status
人累了就休息,心累了就沉默
[Read more…]
quote

许多年过去了,人们说陈年旧事可以被埋葬,然而我终于明白这是错的,因为往事会自行爬上来。回首前尘,我意识到在过去二十六年里,自己始终在窥视着那荒芜的小径。

引自:[美]卡勒德•胡赛尼 《追风筝的人》