服务器CPU占用率达到100%的解决方案或者说是实操步骤
项目环境:目前是银行项目的tomcat跟mysql是装在同一个服务器,cpu占用率达到100%,mysql在任务管理器占用率极高,达到80%以上;
软件方面的自查:
1.查询mysql版本,尽量使用公司同一版本5.6
select version()
2.查询是否有低效率的sql,有的话就调优,执行时间不能高于3s(方向为索引,索引级别为ref以上、关联查询的各个表编码相同)
SELECT
*
FROM
information_schema. PROCESSLIST a
WHERE
command <> 'sleep'
AND time > 3
ORDER BY
time DESC
3.查看mysql最大连接数
show variables like '%max_connections%';
设置最大连接数
方法一:不用重启mysql:但是mysql挂掉之后就无效,需要重新设置
set global max_connections=16000;
修改配置文件
进入MySQL安装目录 打开MySQL配置文件 my.ini 或 my.cnf查找 max_connections=100 修改为 max_connections=16000 服务里重起MySQL即可.
4.优化项目数据库连接数,加大到合适数量
5.优化tomcat服务器参数
硬件自查
危害:占用同一个CPU资源,会导致tomcat服务器卡顿,影响性能;
建议:硬件升级;CPU增强,机械硬盘升级为固态硬盘(因为解析几百上千个文本需要很多IO操作);mysql服务及tomcat服务分离到不同的服务器
持续观察一小时:
1.cpu从100%下降到5%到8%;
2.待解析的文件从230个到50个,每小时解析180个文件
总结:完美完成优化改造,提高服务稳定性及并发量