12.22 php-fpm慢執行日誌

php-fpm慢執行日誌目錄概要

  • vim /usr/local/php-fpm/etc/php-fpm.d/www.conf//加入以下內容
request_slowlog_timeout = 1
slowlog = /usr/local/php-fpm/var/log/www-slow.log
  • 配置nginx的虛擬主機test.com.conf,把unix:/tmp/php-fcgi.sock改成unix:/tmp/www.sock
  • 從新加載nginx服務
  • vim /data/wwwroot/test.com/sleep.php//寫入以下內容
<?php 
echo 「test slow log」;
sleep(2);echo 「done」;
?>
  • curl -x127.0.0.1:80 test.com/sleep.php
  • cat /usr/local/php-fpm/var/log/www-slow.log

php-fpm慢執行日誌

  • 在作php網站的時候,建議使用lnmp,由於咱們能夠分析php的慢執行
  • 查詢方法:
    • 1.系統負載,能夠經過各類工具查,查出是哪一個進程致使
    • 2.PHP網站訪問慢,經過查看慢日誌
  1. 配置www.conf 在配置文件中加入
request_slowlog_timeout = 1    //超過一秒鐘就要記錄日誌
slowlog = /usr/local/php-fpm/var/log/www-slow.log    //日誌放到該路徑下

最終以下php

[root@hanfeng php-fpm.d]# vim www.conf

[www]
listen = /tmp/php-fcgi.sock
listen.mode = 666
user = php-fpm
group = php-fpm
pm = dynamic
pm.max_children = 50
pm.start_servers = 20
pm.min_spare_servers = 5
pm.max_spare_servers = 35
pm.max_requests = 500
rlimit_files = 1024
request_slowlog_timeout = 1
slowlog = /usr/local/php-fpm/var/log/www-slow.log
保存退出
  1. 查看語法錯誤,並從新加載
[root@hanfeng php-fpm.d]# /usr/local/php-fpm/sbin/php-fpm -t
[10-Jan-2018 00:04:26] NOTICE: configuration file /usr/local/php-fpm/etc/php-fpm.conf test is successful

[root@hanfeng php-fpm.d]# /etc/init.d/php-fpm reload
Reload service php-fpm  done
[root@hanfeng php-fpm.d]#
  1. 查看/usr/local/php-fpm/var/log/www-slow.log日誌是否生成
[root@hanfeng php-fpm.d]# ls /usr/local/php-fpm/var/log/
php-fpm.log  www-slow.log
[root@hanfeng php-fpm.d]#
  1. 查看日誌會看到沒有內容,由於沒有超過一秒php執行的過程
[root@hanfeng php-fpm.d]# cat /usr/local/php-fpm/var/log/www-slow.log 
[root@hanfeng php-fpm.d]#
  1. 模擬一個慢執行的php,寫一個腳本,因爲php-fcgi它是被在test這個站點用着,因此須要在這個/data/wwwroot/test.com目錄下作一些操做
[root@hanfeng php-fpm.d]# vim /data/wwwroot/test.com/sleep.php
加入php休眠兩秒鐘,故意讓它執行慢
<?php
echo 「test slow log」;
sleep(2);echo 「done」;
?>
保存退出
  • php能夠不換行,寫成一行
  1. 運行php腳本,可是未輸出信息,檢測會看到狀態碼爲500,說明有錯誤
[root@hf-01 php-fpm.d]# curl -x127.0.0.1:80 test.com/sleep.php
[root@hf-01 php-fpm.d]# curl -x127.0.0.1:80 test.com/sleep.php -I
HTTP/1.1 500 Internal Server Error
Server: nginx/1.12.1
Date: Tue, 09 Jan 2018 21:47:48 GMT
Content-Type: text/html; charset=UTF-8
Connection: keep-alive
X-Powered-By: PHP/5.6.30

[root@hf-01 php-fpm.d]#
  1. 能夠查看錯誤日誌,但有更簡單的方法就是打開它的配置文件
[root@hf-01 php-fpm.d]#  vim /usr/local/php-fpm/etc/php.ini

搜索 /display ,找到display_errors

將display_errors = Off 改成display_errors = On
  1. 打開display_errors以後,就能夠在瀏覽器上查看到具體的錯誤是什麼
  2. 重啓php
[root@hf-01 php-fpm.d]# /etc/init.d/php-fpm reload
Reload service php-fpm  done
[root@hf-01 php-fpm.d]#
  1. 檢查錯誤,會看到語法錯誤,有多是逗號,分號寫的不對
[root@hf-01 php-fpm.d]# curl -x127.0.0.1:80 test.com/sleep.php
<br />
<b>Parse error</b>:  syntax error, unexpected 'slow' (T_STRING), expecting ',' or ';' in <b>/data/wwwroot/test.com/sleep.php</b> on line <b>2</b><br />
[root@hf-01 php-fpm.d]#
  1. 檢查sleep.php文件,發現裏面使用的中文標點,更改後重啓配置
[root@hf-01 php-fpm.d]# vim /data/wwwroot/test.com/sleep.php

<?php
echo "test slow log";
sleep(2);
echo "done";
?>
保存退出
[root@hf-01 php-fpm.d]# /etc/init.d/php-fpm reload
Reload service php-fpm  done
[root@hf-01 php-fpm.d]#
  1. 再來測試,訪問成功,會看到訪問的時候停頓了幾秒
[root@hf-01 php-fpm.d]# curl -x127.0.0.1:80 test.com/sleep.php
test slow logdone[root@hf-01 php-fpm.d]#
  1. 查看是否生成了慢日誌
[root@hf-01 php-fpm.d]# cat /usr/local/php-fpm/var/log/www-slow.log 

[10-Jan-2018 06:02:21]  [pool www] pid 3442
script_filename = /data/wwwroot/test.com/sleep.php        //提示:是哪一個腳本慢
[0x00007f37c5f7c298] sleep() /data/wwwroot/test.com/sleep.php:3    //提示:是腳本的第三慢
[root@hf-01 php-fpm.d]#
  1. 這個就是慢執行日誌的功效
  2. 在遇到php網站訪問慢的時候,就能夠去查看慢日誌
  3. 查看www.conf
[root@hf-01 php-fpm.d]# cat www.conf
[www]
listen = /tmp/php-fcgi.sock
listen.mode = 666
user = php-fpm
group = php-fpm
pm = dynamic
pm.max_children = 50
pm.start_servers = 20
pm.min_spare_servers = 5
pm.max_spare_servers = 35
pm.max_requests = 500
rlimit_files = 1024
request_slowlog_timeout = 1    //通常寫兩秒,不少腳本都會超過一秒
slowlog = /usr/local/php-fpm/var/log/www-slow.log
[root@hf-01 php-fpm.d]#
相關文章
相關標籤/搜索