记一次网站运行速度变慢的诊断修复过程

网站部署环境

阿里云服务器 centos6.6 php5.4 nginx mysql组成的lnmp环境

大致过程

发现问题
登陆阿里云查看问题实例运行情况
登陆linux 查看进程数和连接数
重启nginx和php-fpm
优化php-fpm部分配置属性
锁定是php-fpm问题
打开慢日志,查看日志情况
发现问题代码处理掉
重启php-fpm解决

  • 发现网站www以及子域名访问都奇慢无比,登陆阿里云控制台,查看cpu占用率以及I/O情况,发现从某一时刻开始居高不下。怀疑是被攻击,但是排查后发现并没有受到攻击。
  • 登陆服务器ls -aux 查看进程情况,发现php-fpm子线程为7,为正常状态。
  • 重启nginx,重启php-fpm,未改善。
  • 准备修改php-fpm配置文件,经过优化后未改善。
  • 想到可能是程序出错,长期占用了php-fpm致使cpu占用偏高。
  • 打开php-fpm的慢日志
vi /usr/servers/php/etc/php-fpm.conf  
去掉request_slowlog_timeout 、slowlog的前缀分号';'  
设置request_slowlog_timeout =1;  
并设置日志路径。wq后touch php-fpm-slowlog.log
service php-fpm restart

查看日志发现全部是类似代码

[21-Oct-2017 21:10:36]  [pool www] pid 6452
script_filename = /alidata/www/project/index.php
[0x00007fa9e35f7bb0] file_get_contents() /alidata/www/project/Web/Home/Controller/UserController.class.php:30
[0x00007ffe55a809c0] msg_send() unknown:0
[0x00007fa9e35f79b8] invoke() /alidata/www/project/Web/Runtime/common~runtime.php:1
[0x00007fa9e35f77e0] invokeAction() /alidata/www/project/Web/Runtime/common~runtime.php:1
[0x00007fa9e35f76b8] exec() /alidata/www/project/Web/Runtime/common~runtime.php:1
[0x00007fa9e35f7540] run() /alidata/www/project/Core/Library/Think/Think.class.php:120
[0x00007fa9e35f7408] start() /alidata/www/project/Core/ThinkPHP.php:97
[0x00007fa9e35f7308] +++ dump failed

查看代码后,排查是msg_send() 方法中的第三方接口死循环。修改后网站运行正常,排查结束。

你可能感兴趣的:(记一次网站运行速度变慢的诊断修复过程)