一、服务器配置
CPU: 56核
内存:240G
OS: CentOS release 6.9 (Final)
运行状态(随机值)
二、MySQL服务器
版本信息
mysql Ver 14.14 Distrib 5.7.20, for Linux (x86_64) using EditLine wrapper
配置文件
/etc/my.cnf
服务器运行状态(观察值)
三、服务器配置综述
通过上述的服务器配置信息和运行状态信息可以得出的结论是,服务器配置资源过剩。CPU的占用率随机查看在 10% 左右,高峰值在20%左右,30%以下,内存的占用率也在40%以下。排除 Web 服务器,单独看MySQL的配置和运行状态栏,MySQL的配置也是过剩的,此结论可以通过以下两个参配置得出:
所以如果选用独立的数据库服务器,连接数4000及16G的内存足够。
四、RDS 出现 CPU 100% 问题分析
此问题出现的原因,可以参文章: RDS实例CPU超过100%的分析
其原理是:cpu 消耗过大通常情况下都是有慢sql 造成的,这里的慢sql 包括全表扫描,扫描数据量过大,内存排序,磁盘排序,锁争用等待等;
表现现象:sql 执行状态为:sending data,Copying to tmp table,Copying to tmptable on disk,Sorting result,locked;
结合慢日志和 show full processlist, 先迈网的根本原因是:有大量的 SQL 语句扫描数据量过大,IO操作消耗尽CPU资源。
五、优化方向
分析所有的慢查询日志,结合业务,重写慢 SQL 语句。
分析表结构及查询语句特征,建立更加合理的索引。
领取专属 10元无门槛券
私享最新 技术干货