網(wǎng)站部署環(huán)境
阿里云服務(wù)器 centos6.6 php5.4 nginx mysql組成的lnmp環(huán)境
大致過程
發(fā)現(xiàn)問題
登陸阿里云查看問題實例運行情況
登陸linux 查看進程數(shù)和連接數(shù)
重啟nginx和php-fpm
優(yōu)化php-fpm部分配置屬性
鎖定是php-fpm問題
打開慢日志蝉娜,查看日志情況
發(fā)現(xiàn)問題代碼處理掉
重啟php-fpm解決
- 發(fā)現(xiàn)網(wǎng)站www以及子域名訪問都奇慢無比,登陸阿里云控制臺,查看cpu占用率以及I/O情況茶袒,發(fā)現(xiàn)從某一時刻開始居高不下吏颖。懷疑是被攻擊序芦,但是排查后發(fā)現(xiàn)并沒有受到攻擊吞彤。
- 登陸服務(wù)器ls -aux 查看進程情況,發(fā)現(xiàn)php-fpm子線程為7曹动,為正常狀態(tài)斋日。
- 重啟nginx,重啟php-fpm墓陈,未改善恶守。
- 準(zhǔn)備修改php-fpm配置文件,經(jīng)過優(yōu)化后未改善贡必。
- 想到可能是程序出錯兔港,長期占用了php-fpm致使cpu占用偏高。
- 打開php-fpm的慢日志
vi /usr/servers/php/etc/php-fpm.conf
去掉request_slowlog_timeout 仔拟、slowlog的前綴分號';'
設(shè)置request_slowlog_timeout =1衫樊;
并設(shè)置日志路徑。wq后touch php-fpm-slowlog.log
service php-fpm restart
查看日志發(fā)現(xiàn)全部是類似代碼
[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() 方法中的第三方接口死循環(huán)科侈。修改后網(wǎng)站運行正常,排查結(jié)束炒事。