cpu忽高忽低,负载100%。
1 | top #按c查看cpu和内存占用程序进程详细信息 |
安装opcache缓存器加速php脚本
记录慢日志
1 | #/www/server/php/74/etc/php-fpm.conf |
服务器cpu原本8核16G,cpu忽高忽低。导致高至100%时访问出错或变慢。为了业务正常访问,先升级到16核32G,然后慢慢找原因。发现升级后还是老样子。只是相比原来改善了点。
top
按c
查看php-fpm
进程是哪个脚本占cpu
。ls -l /proc/PID
或ll /proc/PID
查看进程详细信息,Linux在启动一个进程时,系统会在/proc下创建一个以PID命名的文件夹,在该文件夹下会有我们的进程的信息,其中包括一个名为exe的文件即记录了绝对路径。
1 | cwd符号链接的是进程运行目录 |
1 | [root@paijinhua ~]# ls -l /proc/28273 |
cat /www/server/php/74/etc/php-fpm.conf
查看最后两行php慢日志位置和时间。tail -f /var/log/slow.log
查看日志内容,像流水一样哗哗记录。不过这些都是框架底层代码,
不是自己写的无法定位自己写的代码去优化。php性能追踪及分析工具XHProf
也看不出来问题。
1 | error_log = /www/server/php/74/var/log/php-fpm.log |
排查: 第一行猜测应该是进程ID,
script_filename
都是入口index.php
,根据下面框架底层代码文件判断大致问题所在。
既然有session
,怀疑session
配置有问题。驱动由file
改成cache
,在cache
配置文件修改default
默认驱动由file
改成redis
。然后添加redis
缓存驱动!
既然有db/PDOConnection.php
,那应该是sql问题,排查慢sql日志。
thinkphp6的config目录下session.php配置文件
1 | <?php |
thinkphp6的config目录下cache.php配置文件
1 | <?php |
本人声明: 此文只作为自己日后工作学习中遇到类似问题方便快速回忆解决问题的笔记,仅供参考!
版权声明: 本文首发于 すせなの筆記 转载无需联系本人,但要注明来源本站!