项目突然无法访问/服务器cpu突然爆满问题

最近几天商城秒杀每到开始秒杀的时候就进不去了 页面一直在转圈 加载不到数据,客户各种反馈,当时第一反应是不是要扩容了,

登录阿里云后台发现cpu爆满,

项目突然无法访问/服务器cpu突然爆满问题_第1张图片

1.查看内存等更多指标发现php-fpm进程占了大部分的cpu,想到好几个定时是在那个时间段执行的,然后我把定时分开了 不在那个时间段执行,然后开启了 opache(优化PHP性能的) 我用的是php7.2 自带的opache无须再安装,在php.ini里面加

zend_extension=opcache.so

opcache.enable=1

opcache.enable_cli=1 之后重启php-fpm  发现开启了opache之后请求接口的速度快了不少

项目突然无法访问/服务器cpu突然爆满问题_第2张图片

2.运行过程中项目突然访问不了了, 一天出现好几次这种情况,查看内存等更多指标发现mysql进程占了大部分的cpu,这个时候问题绝大可能是 mysql语法,后来通过mysql慢查询日志分析发现好几个全盘扫描的 有个语句然用了200多秒 简直了,然后针对这些慢查询的sql做优化 该加索引的加索引(注意的是联合索引要遵循最左原则否则不生效)

项目突然无法访问/服务器cpu突然爆满问题_第3张图片

慢查询如下:

项目突然无法访问/服务器cpu突然爆满问题_第4张图片

优化之后的cpu :

项目突然无法访问/服务器cpu突然爆满问题_第5张图片

后面还要把一些秒杀页面数据做缓存 存redis避免不必要的重复请求

 

你可能感兴趣的:(linux,cpu,linux)