● php-fpm的pool,在ps aux的時(shí)候在右側(cè)可以看到那一列,php-fpm的pool,也就是php-fpm的池子.

●在php-fpm.conf里面定義了一個(gè)池子,支持定義多個(gè)池子,每個(gè)池子可以監(jiān)聽(tīng)不同sock或tcp.例如Nginx有多個(gè)站點(diǎn),每個(gè)站點(diǎn)都可以使用不同pool.如果Nginx有多個(gè)站點(diǎn)都使用一個(gè)pool的話,假如出現(xiàn)了502的,出現(xiàn)在502狀態(tài)碼,有可能是因?yàn)閜hp資源不夠,那么所有的站點(diǎn)都502,但是如果Nginx每個(gè)站點(diǎn)使用單獨(dú)pool,其中一個(gè)站點(diǎn)502了,但不會(huì)影響到其他站點(diǎn).
● 新增加一個(gè)pool
[root@root-01 etc]# vim php-fpm.conf [global] pid = /usr/local/php-fpm/var/run/php-fpm.pid error_log = /usr/local/php-fpm/var/log/php-fpm.log [www] #listen = /tmp/php-fcgi.sock listen = 127.0.0.1:9000 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 [Anna.com] --->新增加的pool listen = /tmp/Anna.sock #listen = 127.0.0.1:9000 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
● 保存退出,檢查一下語(yǔ)法是否有誤,并重啟php-fpm
[root@root-01 ~]# /usr/local/php-fpm/sbin/php-fpm -t [16-Aug-2017 10:41:56] NOTICE: configuration file /usr/local/php-fpm/etc/php-fpm.conf test is successful [root@root-01 ~]# /etc/init.d/php-fpm restart Gracefully shutting down php-fpm . done Starting php-fpm done
● 重啟php-fpm后ps aux |grep php-fpm,會(huì)發(fā)現(xiàn)多了Anna.com的pool
[root@root-01 ~]# ps aux |grep php-fpm root 2871 7.0 0.4 224400 4956 ? Ss 10:44 0:00 php-fpm: master process (/usr/local/php-fpm/etc/php-fpm.conf) php-fpm 2872 0.0 0.4 224340 4640 ? S 10:44 0:00 php-fpm: pool www php-fpm 2873 0.0 0.4 224340 4640 ? S 10:44 0:00 php-fpm: pool www php-fpm 2874 0.0 0.4 224340 4640 ? S 10:44 0:00 php-fpm: pool www php-fpm 2875 0.0 0.4 224340 4640 ? S 10:44 0:00 php-fpm: pool www php-fpm 2876 0.0 0.4 224340 4644 ? S 10:44 0:00 php-fpm: pool www php-fpm 2877 0.0 0.4 224340 4644 ? S 10:44 0:00 php-fpm: pool www php-fpm 2878 0.0 0.4 224340 4644 ? S 10:44 0:00 php-fpm: pool www php-fpm 2879 0.0 0.4 224340 4644 ? S 10:44 0:00 php-fpm: pool www php-fpm 2880 0.0 0.4 224340 4644 ? S 10:44 0:00 php-fpm: pool www php-fpm 2881 0.0 0.4 224340 4644 ? S 10:44 0:00 php-fpm: pool www php-fpm 2882 0.0 0.4 224340 4644 ? S 10:44 0:00 php-fpm: pool www php-fpm 2883 0.0 0.4 224340 4644 ? S 10:44 0:00 php-fpm: pool www php-fpm 2884 0.0 0.4 224340 4644 ? S 10:44 0:00 php-fpm: pool www php-fpm 2885 0.0 0.4 224340 4644 ? S 10:44 0:00 php-fpm: pool www php-fpm 2886 0.0 0.4 224340 4644 ? S 10:44 0:00 php-fpm: pool www php-fpm 2887 0.0 0.4 224340 4644 ? S 10:44 0:00 php-fpm: pool www php-fpm 2888 0.0 0.4 224340 4648 ? S 10:44 0:00 php-fpm: pool www php-fpm 2889 0.0 0.4 224340 4648 ? S 10:44 0:00 php-fpm: pool www php-fpm 2890 0.0 0.4 224340 4648 ? S 10:44 0:00 php-fpm: pool www php-fpm 2891 0.0 0.4 224340 4648 ? S 10:44 0:00 php-fpm: pool www php-fpm 2892 0.0 0.4 224340 4644 ? S 10:44 0:00 php-fpm: pool Anna.com php-fpm 2893 0.0 0.4 224340 4644 ? S 10:44 0:00 php-fpm: pool Anna.com php-fpm 2894 0.0 0.4 224340 4644 ? S 10:44 0:00 php-fpm: pool Anna.com php-fpm 2895 0.0 0.4 224340 4644 ? S 10:44 0:00 php-fpm: pool Anna.com php-fpm 2896 0.0 0.4 224340 4648 ? S 10:44 0:00 php-fpm: pool Anna.com php-fpm 2897 0.0 0.4 224340 4648 ? S 10:44 0:00 php-fpm: pool Anna.com php-fpm 2898 0.0 0.4 224340 4648 ? S 10:44 0:00 php-fpm: pool Anna.com php-fpm 2899 0.0 0.4 224340 4648 ? S 10:44 0:00 php-fpm: pool Anna.com php-fpm 2900 0.3 0.4 224340 4648 ? S 10:44 0:00 php-fpm: pool Anna.com php-fpm 2901 0.0 0.4 224340 4648 ? S 10:44 0:00 php-fpm: pool Anna.com php-fpm 2902 0.0 0.4 224340 4648 ? S 10:44 0:00 php-fpm: pool Anna.com php-fpm 2903 0.0 0.4 224340 4648 ? S 10:44 0:00 php-fpm: pool Anna.com php-fpm 2904 0.0 0.4 224340 4652 ? S 10:44 0:00 php-fpm: pool Anna.com php-fpm 2905 0.0 0.4 224340 4652 ? S 10:44 0:00 php-fpm: pool Anna.com php-fpm 2906 0.0 0.4 224340 4652 ? S 10:44 0:00 php-fpm: pool Anna.com php-fpm 2907 0.0 0.4 224340 4652 ? S 10:44 0:00 php-fpm: pool Anna.com php-fpm 2908 0.0 0.4 224340 4652 ? S 10:44 0:00 php-fpm: pool Anna.com php-fpm 2909 0.0 0.4 224340 4652 ? S 10:44 0:00 php-fpm: pool Anna.com php-fpm 2910 0.0 0.4 224340 4652 ? S 10:44 0:00 php-fpm: pool Anna.com php-fpm 2911 0.0 0.4 224340 4652 ? S 10:44 0:00 php-fpm: pool Anna.com root 2913 0.0 0.0 112664 964 pts/2 S+ 10:44 0:00 grep --color=auto php-fpm
● 現(xiàn)在有兩個(gè)pool,在test.conf.com站點(diǎn)監(jiān)聽(tīng)是127.0.0.1:9000,現(xiàn)在就把a(bǔ)aa.com.conf定義為Anna.com,這樣的話這樣兩個(gè)站點(diǎn)就隔離開(kāi)了.
[root@root-01 vhost]# vim aaa.com.conf server { listen 80 default_server; server_name aaa.com; index index.html index.htm index.php; root /data/www/default; location ~ .php$ { include fastcgi_params; fastcgi_pass unix:/tmp/Anna.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /data/www/default$fastcgi_script_name; } } 說(shuō)明 假如test.conf.com很忙,請(qǐng)求量很大,將php-fpm進(jìn)程耗盡,最多可以啟動(dòng)50個(gè)進(jìn)程,所有的進(jìn)程都在忙,當(dāng)再來(lái)一個(gè)新的請(qǐng)求的時(shí)候,就會(huì)出現(xiàn)了502,因?yàn)闆](méi)有多余的php-fpm進(jìn)程提供服務(wù).但aaa.com.conf并不會(huì)受影響,因?yàn)槭褂玫氖橇硗庖粋€(gè)pool,這就是建立多個(gè)pool的好處.
●在/usr/local/nginx/conf/nginx.conf里面定義了include vhost/.conf,在php-fpm.conf也是支持的,現(xiàn)在php-fpm.conf主配置文件里面也加include = etc/php-fpm.d/.conf.
[root@root-01 ~]# vim /usr/local/php-fpm/etc/php-fpm.conf [global] pid = /usr/local/php-fpm/var/run/php-fpm.pid [global] pid = /usr/local/php-fpm/var/run/php-fpm.pid error_log = /usr/local/php-fpm/var/log/php-fpm.log include = etc/php-fpm.d/*.conf
● 在/usr/local/php-fpm/etc/目錄下面創(chuàng)建配置文件目錄和子配置文件.
[root@root-01 ~]# cd /usr/local/php-fpm/etc/ [root@root-01 etc]# ls pear.conf php-fpm.conf php-fpm.conf2 php.ini [root@root-01 etc]# mkdir php-fpm.d [root@root-01 etc]# cd php-fpm.d [root@root-01 php-fpm.d]# touch www.conf [root@root-01 php-fpm.d]# touch Anna.conf
● 把/usr/local/php-fpm/etc/php-fpm.conf 里面的兩個(gè)pool分別剪貼到www.conf&Anna.conf
[root@root-01 php-fpm.d]# vim www.conf [www] #listen = /tmp/php-fcgi.sock listen = 127.0.0.1:9000 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 [root@root-01 php-fpm.d]# vim Anna.conf [Anna.com] listen = /tmp/Anna.sock #listen = 127.0.0.1:9000 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 [root@root-01 php-fpm.d]# ls Anna.conf www.conf
● 檢查語(yǔ)法是否有誤&重啟php-fpm,在ps aux |grep php-fpm查看是效果是一樣的,只不過(guò)這樣會(huì)更加清晰.
[root@root-01 php-fpm.d]# /usr/local/php-fpm/sbin/php-fpm -t [16-Aug-2017 11:31:37] NOTICE: configuration file /usr/local/php-fpm/etc/php-fpm.conf test is successful [root@root-01 php-fpm.d]# /etc/init.d/php-fpm restart Gracefully shutting down php-fpm . done Starting php-fpm done [root@root-01 php-fpm.d]# ps aux |grep php-fpm root 2967 0.2 0.4 224428 4956 ? Ss 11:32 0:00 php-fpm: master process (/usr/local/php-fpm/etc/php-fpm.conf) php-fpm 2968 0.0 0.4 224368 4636 ? S 11:32 0:00 php-fpm: pool Anna.com php-fpm 2969 0.0 0.4 224368 4636 ? S 11:32 0:00 php-fpm: pool Anna.com php-fpm 2970 0.0 0.4 224368 4636 ? S 11:32 0:00 php-fpm: pool Anna.com php-fpm 2971 0.0 0.4 224368 4636 ? S 11:32 0:00 php-fpm: pool Anna.com php-fpm 2972 0.0 0.4 224368 4640 ? S 11:32 0:00 php-fpm: pool Anna.com php-fpm 2973 0.0 0.4 224368 4640 ? S 11:32 0:00 php-fpm: pool Anna.com php-fpm 2974 0.0 0.4 224368 4640 ? S 11:32 0:00 php-fpm: pool Anna.com php-fpm 2975 0.0 0.4 224368 4640 ? S 11:32 0:00 php-fpm: pool Anna.com php-fpm 2976 0.0 0.4 224368 4640 ? S 11:32 0:00 php-fpm: pool Anna.com php-fpm 2977 0.0 0.4 224368 4640 ? S 11:32 0:00 php-fpm: pool Anna.com php-fpm 2978 0.0 0.4 224368 4640 ? S 11:32 0:00 php-fpm: pool Anna.com php-fpm 2979 0.0 0.4 224368 4640 ? S 11:32 0:00 php-fpm: pool Anna.com php-fpm 2980 0.0 0.4 224368 4640 ? S 11:32 0:00 php-fpm: pool Anna.com php-fpm 2981 0.0 0.4 224368 4640 ? S 11:32 0:00 php-fpm: pool Anna.com php-fpm 2982 0.0 0.4 224368 4640 ? S 11:32 0:00 php-fpm: pool Anna.com php-fpm 2983 0.0 0.4 224368 4640 ? S 11:32 0:00 php-fpm: pool Anna.com php-fpm 2984 0.0 0.4 224368 4644 ? S 11:32 0:00 php-fpm: pool Anna.com php-fpm 2985 0.0 0.4 224368 4644 ? S 11:32 0:00 php-fpm: pool Anna.com php-fpm 2986 0.0 0.4 224368 4644 ? S 11:32 0:00 php-fpm: pool Anna.com php-fpm 2987 0.0 0.4 224368 4644 ? S 11:32 0:00 php-fpm: pool Anna.com php-fpm 2988 0.0 0.4 224368 4640 ? S 11:32 0:00 php-fpm: pool www php-fpm 2989 0.0 0.4 224368 4640 ? S 11:32 0:00 php-fpm: pool www php-fpm 2990 0.0 0.4 224368 4640 ? S 11:32 0:00 php-fpm: pool www php-fpm 2991 0.0 0.4 224368 4640 ? S 11:32 0:00 php-fpm: pool www php-fpm 2992 0.0 0.4 224368 4644 ? S 11:32 0:00 php-fpm: pool www php-fpm 2993 0.0 0.4 224368 4644 ? S 11:32 0:00 php-fpm: pool www php-fpm 2994 0.0 0.4 224368 4644 ? S 11:32 0:00 php-fpm: pool www php-fpm 2995 0.0 0.4 224368 4644 ? S 11:32 0:00 php-fpm: pool www php-fpm 2996 0.0 0.4 224368 4644 ? S 11:32 0:00 php-fpm: pool www php-fpm 2997 0.0 0.4 224368 4644 ? S 11:32 0:00 php-fpm: pool www php-fpm 2998 0.0 0.4 224368 4644 ? S 11:32 0:00 php-fpm: pool www php-fpm 2999 0.0 0.4 224368 4644 ? S 11:32 0:00 php-fpm: pool www php-fpm 3000 0.0 0.4 224368 4648 ? S 11:32 0:00 php-fpm: pool www php-fpm 3001 0.0 0.4 224368 4648 ? S 11:32 0:00 php-fpm: pool www php-fpm 3002 0.0 0.4 224368 4648 ? S 11:32 0:00 php-fpm: pool www php-fpm 3003 0.0 0.4 224368 4648 ? S 11:32 0:00 php-fpm: pool www php-fpm 3004 0.0 0.4 224368 4648 ? S 11:32 0:00 php-fpm: pool www php-fpm 3005 0.0 0.4 224368 4648 ? S 11:32 0:00 php-fpm: pool www php-fpm 3006 0.0 0.4 224368 4648 ? S 11:32 0:00 php-fpm: pool www php-fpm 3007 0.0 0.4 224368 4648 ? S 11:32 0:00 php-fpm: pool www root 3009 0.0 0.0 112664 964 pts/2 S+ 11:32 0:00 grep --color=auto php-fpm php-fpm慢執(zhí)行日志
前言:php-fpm慢執(zhí)行日志,在日常工作中使用的非常多,可以幫助我們快速追查到問(wèn)題點(diǎn).
● 做PHP網(wǎng)站,建議使用lnmp,其中有一個(gè)原因就是我們可以去分析PHP的慢執(zhí)行日志,為什么要分析PHP的慢執(zhí)行日志呢?在運(yùn)維工作中,經(jīng)常會(huì)遇到一個(gè)很讓頭痛的問(wèn)題,公司老板或客戶經(jīng)常反饋公司網(wǎng)站訪問(wèn)慢.為什么會(huì)慢?運(yùn)維人員要知道根本原因,要知道慢在哪個(gè)地方.PHP網(wǎng)站是有辦法指定慢在哪里.
服務(wù)器負(fù)載高,我們可以使用free,top等命令去查看,可以知道到底是哪個(gè)進(jìn)程導(dǎo)致負(fù)載高. 種種跡象表明php-fpm進(jìn)程占用了很多資源,但是并不知道為什么php-fpm在做什么,那么有php慢執(zhí)行日志我們就可以查看到問(wèn)題點(diǎn),所以php慢執(zhí)行日志非常重要.
● 現(xiàn)在針對(duì)ww.conf做一些配置
[root@root-01 php-fpm.d]# vim www.conf [www] #listen = /tmp/php-fcgi.sock listen = 127.0.0.1:9000 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 --->請(qǐng)求慢日志超過(guò)1秒鐘,就會(huì)記錄日志 slowlog = /usr/local/php-fpm/var/log/www.slow.log --->定義日志路徑
● 保存退出后,檢查語(yǔ)法是否有誤,并重新加載php-fpm,在查看/usr/local/php-fpm/var/log/目錄下是否有生成www.slow.log日志文件
[root@root-01 ~]# /etc/init.d/php-fpm reload Reload service php-fpm done [root@root-01 ~]# ls /usr/local/php-fpm/var/log/www.slow.log /usr/local/php-fpm/var/log/www.slow.log [root@root-01 ~]# ls /usr/local/php-fpm/var/log/ php-fpm.log www.slow.log
●模擬一個(gè)慢執(zhí)行的PHP,寫(xiě)一個(gè)腳本,www這個(gè)pool是test.com.conf站點(diǎn)在使用,所以要針對(duì)這個(gè)站點(diǎn)做操作. 在/data/www/test.com/目錄下寫(xiě)一個(gè)sleep.php的腳本
[root@root-01 ~]# vim /data/www/test.com/sleep.php ~ <?php echo "test slow log"; sleep(2); echo "done"; ?> 說(shuō)明 這腳本是要在執(zhí)行的停2秒,因?yàn)樵谂渲脀ww.conf文件請(qǐng)求慢日志超過(guò)1秒鐘,就會(huì)記錄日志.
● 使用curl來(lái)測(cè)試一下,然后再查看www.slow.log日志
[root@root-01 ~]# curl -x127.0.0.1:80 test.com/sleep.php test slow logdone[root@root-01 ~]# [root@root-01 ~]# cat /usr/local/php-fpm/var/log/www.slow.log [16-Aug-2017 12:30:32] [pool www] pid 3068 script_filename = /data/www/test.com/sleep.php [0x00007f40307e52e8] sleep() /data/www/test.com/sleep.php:3 說(shuō)明 script_filename = /data/www/test.com/sleep.php ---> 這行是告訴我們執(zhí)行慢慢在哪里. [0x00007f40307e52e8] sleep() /data/www/test.com/sleep.php:3 -->慢在具體哪一行. 說(shuō)明 這就是php慢執(zhí)行日志的好處. 12.23 open_basedir
前言:open_basedir的目的就是安全,
● php-fpm也是可以定義open_basedir,之前講過(guò)在php.ini中去定義,如果服務(wù)器上有多個(gè)網(wǎng)站,在php.ini里面去定義就不合適了.要么在Apache虛擬主機(jī)里面配置,要么在php-fpm里面配置,我們可以根據(jù)不同的pool去定義open_basedir
● 現(xiàn)在去php-fpm.d下的www.conf (www pool)定義open_basedir
[root@root-01 ~]# cd /usr/local/php-fpm/etc/php-fpm.d root@root-01 php-fpm.d]# vim www.conf [www] #listen = /tmp/php-fcgi.sock #listen = /tmp/php-fcgi.sock listen = 127.0.0.1:9000 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 加入這行: php_admin_value[open_basedir]=/data/www/test.com:/tmp/
保存退出后,重啟一下php-fpm
[root@root-01 php-fpm.d]# /etc/init.d/php-fpm restart Gracefully shutting down php-fpm . done Starting php-fpm done
使用curl來(lái)測(cè)試一下,狀態(tài)碼200
[root@root-01 php-fpm.d]# curl -x127.0.0.1:80 test.com/sleep.php -I HTTP/1.1 200 OK Server: nginx/1.12.1 Date: Wed, 16 Aug 2017 05:51:06 GMT Content-Type: text/html; charset=UTF-8 Connection: keep-alive X-Powered-By: PHP/5.6.30
● 在php.ini配置文件里面的display_errors = off 一般在線上使用都是off,這樣做事為了不能讓別人通過(guò)瀏覽器看到錯(cuò)誤信息。而錯(cuò)誤日志是定義在服務(wù)器的某個(gè)文件里
第1步:進(jìn)入php.ini,把display_errors設(shè)置為 off
第2步:log_errors設(shè)為On
第3步:在error_log = syslog下面添加日志路徑 error_log = /usr/local/php-fpm/var/log/php_errors.log
第4步:定義error_reporting(日志級(jí)別),搜索 Common Values:添加error_reportinr = E_ALL. 然后把error_reportinr = E_ALL & ~E_DEPRECATED & ~E_STRICT 使用;注釋掉.
● 現(xiàn)在去/usr/local/php-fpm/var/log/目錄下手動(dòng)創(chuàng)建php_errors.log文件,并且把權(quán)限設(shè)置為777,目的是為了能夠正常的寫(xiě)入內(nèi)容.
[root@root-01 ~]# cd /usr/local/php-fpm/var/log/ [root@root-01 log]# touch php_errors.log [root@root-01 log]# ls php_errors.log php-fpm.log www.slow.log [root@root-01 log]# chmod 777 php_errors.log
● 進(jìn)入www.conf,把定義open_basedir的路徑故意定義錯(cuò)
[root@root-01 php-fpm.d]# vim www.conf [www] #listen = /tmp/php-fcgi.sock listen = 127.0.0.1:9000 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 php_admin_value[open_basedir]=/data/www/Anna.com:/tmp/ -->原本是test.com,現(xiàn)在把更改為Anna.com
● 重啟php-fpm
[root@root-01 php-fpm.d]# /etc/init.d/php-fpm restart Gracefully shutting down php-fpm . done Starting php-fpm done
● 現(xiàn)在curl來(lái)測(cè)試訪問(wèn),結(jié)果顯示404
[root@root-01 php-fpm.d]# curl -x127.0.0.1:80 test.com/sleep.php -I HTTP/1.1 404 Not Found Server: nginx/1.12.1 Date: Wed, 16 Aug 2017 06:29:23 GMT Content-Type: text/html; charset=UTF-8 Connection: keep-alive X-Powered-By: PHP/5.6.30
● 現(xiàn)在來(lái)查看一下錯(cuò)誤日志
[root@root-01 log]# cat php_errors.log [16-Aug-2017 06:29:23 UTC] PHP Warning: Unknown: open_basedir restriction in effect. File(/data/www/test.com/sleep.php) is not within the allowed path(s): (/data/www/Anna.com:/tmp/) in Unknown on line 0 [16-Aug-2017 06:29:23 UTC] PHP Warning: Unknown: failed to open stream: Operation not permitted in Unknown on line 0 說(shuō)明 open_basedir有限制,限制在(/data/www/Anna.com),而/data/www/test.com/sleep.php是位未知路徑.
● 把www.conf open——basedir路更改為正確的,在使用curl來(lái)訪問(wèn)就顯示200正常.
[root@root-01 php-fpm.d]# vim www.conf [www] #listen = /tmp/php-fcgi.sock listen = 127.0.0.1:9000 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 php_admin_value[open_basedir]=/data/www/test.com:/tmp/ [root@root-01 php-fpm.d]# /etc/init.d/php-fpm restart Gracefully shutting down php-fpm . done Starting php-fpm done [root@root-01 php-fpm.d]# curl -x127.0.0.1:80 test.com/sleep.php -I HTTP/1.1 200 OK Server: nginx/1.12.1 Date: Wed, 16 Aug 2017 06:43:32 GMT Content-Type: text/html; charset=UTF-8 Connection: keep-alive X-Powered-By: PHP/5.6.30 php-fpm進(jìn)程管理
www.conf 里面有以下配置:
pm = dynamic pm.max_children = 50 pm.start_servers = 20 pm.min_spare_servers = 5 pm.max_spare_servers = 35 pm.max_requests = 500 pm = dynamic 定義php-fpm的子進(jìn)程啟動(dòng)模式,dynamic為動(dòng)態(tài)模式;一開(kāi)始只是啟動(dòng)少量的子進(jìn)程,根據(jù)實(shí)際需要,動(dòng)態(tài)地增加或者減少子進(jìn)程,最多不會(huì)超過(guò)pm.max_children 定義的數(shù)值 pm.start_servers 針對(duì)dynamic模式,定義php-fpm服務(wù)在啟動(dòng)服務(wù)時(shí)產(chǎn)生的子進(jìn)程數(shù)量. pm.min_spare_servers 針對(duì)dynamic模式,定義在空閑時(shí)段子進(jìn)程數(shù)的最少數(shù)量,如果達(dá)到這個(gè)數(shù)量時(shí),php-fpm會(huì)自動(dòng)生成新的子進(jìn)程. pm.max_spare_servers 針對(duì)dynamic模式,定義一個(gè)子進(jìn)程最多處理的請(qǐng)求數(shù),也就是說(shuō)在一個(gè)pho-fpm的子進(jìn)程中最多可以處理這么請(qǐng)求,當(dāng)達(dá)到這個(gè)數(shù)值時(shí),它會(huì)自動(dòng)退出. 還有一種模式是static(靜態(tài)的),如果把pm = dynamic更改為pm = static,那么只生效pm.max_children,一次性啟動(dòng)這么多,不會(huì)減少也不會(huì)增加其他的pm.start_servers;pm.min_spare_servers;pm.max_spare_servers;pm.max_requests 都不會(huì)再生效.
● 把www.conf更為static
[root@root-01 php-fpm.d]# vim www.conf [www] #listen = /tmp/php-fcgi.sock listen = 127.0.0.1:9000 listen.mode = 666 user = php-fpm group = php-fpm pm = dynamic #pm = static 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 php_admin_value[open_basedir]=/data/www/test.com:/tmp/
●保存退出后,重啟php-fpm,再使用ps aux |grep php-fpm就可以看到一次性啟動(dòng)50個(gè)子進(jìn)程
[root@root-01 php-fpm.d]# /etc/init.d/php-fpm restart Gracefully shutting down php-fpm . done Starting php-fpm done [root@root-01 php-fpm.d]# ps aux |grep php-fpm root 3615 1.3 0.4 224428 4984 ? Ss 15:24 0:00 php-fpm: master process (/usr/local/php-fpm/etc/php-fpm.conf) php-fpm 3616 0.0 0.4 224368 4636 ? S 15:24 0:00 php-fpm: pool Anna.com php-fpm 3617 0.0 0.4 224368 4636 ? S 15:24 0:00 php-fpm: pool Anna.com php-fpm 3618 0.0 0.4 224368 4636 ? S 15:24 0:00 php-fpm: pool Anna.com php-fpm 3619 0.0 0.4 224368 4636 ? S 15:24 0:00 php-fpm: pool Anna.com php-fpm 3620 0.0 0.4 224368 4640 ? S 15:24 0:00 php-fpm: pool Anna.com php-fpm 3621 0.0 0.4 224368 4640 ? S 15:24 0:00 php-fpm: pool Anna.com php-fpm 3622 0.0 0.4 224368 4640 ? S 15:24 0:00 php-fpm: pool Anna.com php-fpm 3623 0.0 0.4 224368 4640 ? S 15:24 0:00 php-fpm: pool Anna.com php-fpm 3624 0.0 0.4 224368 4640 ? S 15:24 0:00 php-fpm: pool Anna.com php-fpm 3625 0.0 0.4 224368 4640 ? S 15:24 0:00 php-fpm: pool Anna.com php-fpm 3626 0.0 0.4 224368 4640 ? S 15:24 0:00 php-fpm: pool Anna.com php-fpm 3627 0.0 0.4 224368 4640 ? S 15:24 0:00 php-fpm: pool Anna.com php-fpm 3628 0.0 0.4 224368 4640 ? S 15:24 0:00 php-fpm: pool Anna.com php-fpm 3629 0.0 0.4 224368 4640 ? S 15:24 0:00 php-fpm: pool Anna.com php-fpm 3630 0.0 0.4 224368 4644 ? S 15:24 0:00 php-fpm: pool Anna.com php-fpm 3631 0.0 0.4 224368 4644 ? S 15:24 0:00 php-fpm: pool Anna.com php-fpm 3632 0.0 0.4 224368 4644 ? S 15:24 0:00 php-fpm: pool Anna.com php-fpm 3633 0.0 0.4 224368 4644 ? S 15:24 0:00 php-fpm: pool Anna.com php-fpm 3634 0.0 0.4 224368 4644 ? S 15:24 0:00 php-fpm: pool Anna.com php-fpm 3635 0.0 0.4 224368 4644 ? S 15:24 0:00 php-fpm: pool Anna.com php-fpm 3636 0.0 0.4 224368 4640 ? S 15:24 0:00 php-fpm: pool www php-fpm 3637 0.0 0.4 224368 4640 ? S 15:24 0:00 php-fpm: pool www php-fpm 3638 0.0 0.4 224368 4640 ? S 15:24 0:00 php-fpm: pool www php-fpm 3639 0.0 0.4 224368 4640 ? S 15:24 0:00 php-fpm: pool www php-fpm 3640 0.0 0.4 224368 4644 ? S 15:24 0:00 php-fpm: pool www php-fpm 3641 0.0 0.4 224368 4644 ? S 15:24 0:00 php-fpm: pool www php-fpm 3642 0.0 0.4 224368 4644 ? S 15:24 0:00 php-fpm: pool www php-fpm 3643 0.0 0.4 224368 4644 ? S 15:24 0:00 php-fpm: pool www php-fpm 3644 0.0 0.4 224368 4644 ? S 15:24 0:00 php-fpm: pool www php-fpm 3645 0.0 0.4 224368 4644 ? S 15:24 0:00 php-fpm: pool www php-fpm 3646 0.0 0.4 224368 4648 ? S 15:24 0:00 php-fpm: pool www php-fpm 3647 0.0 0.4 224368 4648 ? S 15:24 0:00 php-fpm: pool www php-fpm 3648 0.0 0.4 224368 4648 ? S 15:24 0:00 php-fpm: pool www php-fpm 3649 0.0 0.4 224368 4648 ? S 15:24 0:00 php-fpm: pool www php-fpm 3650 0.0 0.4 224368 4648 ? S 15:24 0:00 php-fpm: pool www php-fpm 3651 0.0 0.4 224368 4648 ? S 15:24 0:00 php-fpm: pool www php-fpm 3652 0.0 0.4 224368 4648 ? S 15:24 0:00 php-fpm: pool www php-fpm 3653 0.0 0.4 224368 4648 ? S 15:24 0:00 php-fpm: pool www php-fpm 3654 0.0 0.4 224368 4648 ? S 15:24 0:00 php-fpm: pool www php-fpm 3655 0.0 0.4 224368 4648 ? S 15:24 0:00 php-fpm: pool www php-fpm 3656 0.0 0.4 224368 4648 ? S 15:24 0:00 php-fpm: pool www php-fpm 3657 0.0 0.4 224368 4648 ? S 15:24 0:00 php-fpm: pool www php-fpm 3658 0.0 0.4 224368 4648 ? S 15:24 0:00 php-fpm: pool www php-fpm 3659 0.0 0.4 224368 4648 ? S 15:24 0:00 php-fpm: pool www php-fpm 3660 0.0 0.4 224368 4648 ? S 15:24 0:00 php-fpm: pool www php-fpm 3661 0.0 0.4 224368 4648 ? S 15:24 0:00 php-fpm: pool www php-fpm 3662 0.0 0.4 224368 4652 ? S 15:24 0:00 php-fpm: pool www php-fpm 3663 0.0 0.4 224368 4652 ? S 15:24 0:00 php-fpm: pool www php-fpm 3664 0.0 0.4 224368 4652 ? S 15:24 0:00 php-fpm: pool www php-fpm 3665 0.0 0.4 224368 4652 ? S 15:24 0:00 php-fpm: pool www php-fpm 3666 0.0 0.4 224368 4652 ? S 15:24 0:00 php-fpm: pool www php-fpm 3667 0.0 0.4 224368 4652 ? S 15:24 0:00 php-fpm: pool www php-fpm 3668 0.0 0.4 224368 4652 ? S 15:24 0:00 php-fpm: pool www php-fpm 3669 0.0 0.4 224368 4652 ? S 15:24 0:00 php-fpm: pool www php-fpm 3670 0.0 0.4 224368 4652 ? S 15:24 0:00 php-fpm: pool www php-fpm 3671 0.0 0.4 224368 4652 ? S 15:24 0:00 php-fpm: pool www php-fpm 3672 0.0 0.4 224368 4652 ? S 15:24 0:00 php-fpm: pool www php-fpm 3673 0.0 0.4 224368 4652 ? S 15:24 0:00 php-fpm: pool www php-fpm 3674 0.0 0.4 224368 4652 ? S 15:24 0:00 php-fpm: pool www php-fpm 3675 0.0 0.4 224368 4652 ? S 15:24 0:00 php-fpm: pool www php-fpm 3676 0.0 0.4 224368 4652 ? S 15:24 0:00 php-fpm: pool www php-fpm 3677 0.0 0.4 224368 4652 ? S 15:24 0:00 php-fpm: pool www php-fpm 3678 0.0 0.4 224368 4656 ? S 15:24 0:00 php-fpm: pool www php-fpm 3679 0.0 0.4 224368 4656 ? S 15:24 0:00 php-fpm: pool www php-fpm 3680 0.0 0.4 224368 4656 ? S 15:24 0:00 php-fpm: pool www php-fpm 3681 0.0 0.4 224368 4656 ? S 15:24 0:00 php-fpm: pool www php-fpm 3682 0.0 0.4 224368 4852 ? S 15:24 0:00 php-fpm: pool www php-fpm 3683 0.0 0.4 224368 4852 ? S 15:24 0:00 php-fpm: pool www php-fpm 3684 0.0 0.4 224368 4848 ? S 15:24 0:00 php-fpm: pool www php-fpm 3685 0.0 0.4 224368 4836 ? S 15:24 0:00 php-fpm: pool www root 3687 0.0 0.0 112664 964 pts/2 S+ 15:24 0:00 grep --color=auto php-fpm
再把www.conf更改為dynamic,再來(lái)查看的的時(shí)候就只有20個(gè)子進(jìn)程
[root@root-01 php-fpm.d]# vim www.conf [www] #listen = /tmp/php-fcgi.sock listen = 127.0.0.1:9000 listen.mode = 666 user = php-fpm group = php-fpm pm = dynamic #pm = static 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 php_admin_value[open_basedir]=/data/www/test.com:/tmp/ [root@root-01 php-fpm.d]# /etc/init.d/php-fpm restart Gracefully shutting down php-fpm . done Starting php-fpm done [root@root-01 php-fpm.d]# ps aux |grep php-fpm root 3697 1.0 0.4 224428 4948 ? Ss 15:26 0:00 php-fpm: master process (/usr/local/php-fpm/etc/php-fpm.conf) php-fpm 3698 0.0 0.4 224368 4636 ? S 15:26 0:00 php-fpm: pool Anna.com php-fpm 3699 0.0 0.4 224368 4636 ? S 15:26 0:00 php-fpm: pool Anna.com php-fpm 3700 0.0 0.4 224368 4636 ? S 15:26 0:00 php-fpm: pool Anna.com php-fpm 3701 0.0 0.4 224368 4636 ? S 15:26 0:00 php-fpm: pool Anna.com php-fpm 3702 0.0 0.4 224368 4640 ? S 15:26 0:00 php-fpm: pool Anna.com php-fpm 3703 0.0 0.4 224368 4640 ? S 15:26 0:00 php-fpm: pool Anna.com php-fpm 3704 0.0 0.4 224368 4640 ? S 15:26 0:00 php-fpm: pool Anna.com php-fpm 3705 0.0 0.4 224368 4640 ? S 15:26 0:00 php-fpm: pool Anna.com php-fpm 3706 0.0 0.4 224368 4640 ? S 15:26 0:00 php-fpm: pool Anna.com php-fpm 3707 0.0 0.4 224368 4640 ? S 15:26 0:00 php-fpm: pool Anna.com php-fpm 3708 0.0 0.4 224368 4640 ? S 15:26 0:00 php-fpm: pool Anna.com php-fpm 3709 0.0 0.4 224368 4640 ? S 15:26 0:00 php-fpm: pool Anna.com php-fpm 3710 0.0 0.4 224368 4640 ? S 15:26 0:00 php-fpm: pool Anna.com php-fpm 3711 0.0 0.4 224368 4640 ? S 15:26 0:00 php-fpm: pool Anna.com php-fpm 3712 0.0 0.4 224368 4644 ? S 15:26 0:00 php-fpm: pool Anna.com php-fpm 3713 0.0 0.4 224368 4644 ? S 15:26 0:00 php-fpm: pool Anna.com php-fpm 3714 0.0 0.4 224368 4644 ? S 15:26 0:00 php-fpm: pool Anna.com php-fpm 3715 0.0 0.4 224368 4644 ? S 15:26 0:00 php-fpm: pool Anna.com php-fpm 3716 0.0 0.4 224368 4644 ? S 15:26 0:00 php-fpm: pool Anna.com php-fpm 3717 0.0 0.4 224368 4644 ? S 15:26 0:00 php-fpm: pool Anna.com php-fpm 3718 0.0 0.4 224368 4640 ? S 15:26 0:00 php-fpm: pool www php-fpm 3719 0.0 0.4 224368 4640 ? S 15:26 0:00 php-fpm: pool www php-fpm 3720 0.0 0.4 224368 4640 ? S 15:26 0:00 php-fpm: pool www php-fpm 3721 0.0 0.4 224368 4640 ? S 15:26 0:00 php-fpm: pool www php-fpm 3722 0.0 0.4 224368 4644 ? S 15:26 0:00 php-fpm: pool www php-fpm 3723 0.0 0.4 224368 4644 ? S 15:26 0:00 php-fpm: pool www php-fpm 3724 0.0 0.4 224368 4644 ? S 15:26 0:00 php-fpm: pool www php-fpm 3725 0.0 0.4 224368 4644 ? S 15:26 0:00 php-fpm: pool www php-fpm 3726 0.0 0.4 224368 4644 ? S 15:26 0:00 php-fpm: pool www php-fpm 3727 0.0 0.4 224368 4644 ? S 15:26 0:00 php-fpm: pool www php-fpm 3728 0.0 0.4 224368 4648 ? S 15:26 0:00 php-fpm: pool www php-fpm 3729 0.0 0.4 224368 4648 ? S 15:26 0:00 php-fpm: pool www php-fpm 3730 0.0 0.4 224368 4648 ? S 15:26 0:00 php-fpm: pool www php-fpm 3731 0.0 0.4 224368 4648 ? S 15:26 0:00 php-fpm: pool www php-fpm 3732 0.0 0.4 224368 4648 ? S 15:26 0:00 php-fpm: pool www php-fpm 3733 0.0 0.4 224368 4648 ? S 15:26 0:00 php-fpm: pool www php-fpm 3734 0.0 0.4 224368 4648 ? S 15:26 0:00 php-fpm: pool www php-fpm 3735 0.0 0.4 224368 4648 ? S 15:26 0:00 php-fpm: pool www php-fpm 3736 0.0 0.4 224368 4648 ? S 15:26 0:00 php-fpm: pool www php-fpm 3737 0.0 0.4 224368 4648 ? S 15:26 0:00 php-fpm: pool www root 3739 0.0 0.0 112664 964 pts/2 S+ 15:26 0:00 grep --color=auto php-fpm
本文標(biāo)題:php-fpm的pool、?php-fpm慢執(zhí)行日志、?php-fpm進(jìn)程管理
鏈接分享:http://chinadenli.net/article26/cjisjg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)頁(yè)設(shè)計(jì)公司、微信公眾號(hào)、網(wǎng)站建設(shè)、建站公司、服務(wù)器托管、做網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容