歡迎您光臨本站 註冊首頁

Nginx + PHP FastCGI 結構中的錯誤[WARNING] fpm_stdio_child_said()

←手機掃碼閱讀     火星人 @ 2014-03-04 , reply:0

Nginx + PHP FastCGI 結構中的錯誤[WARNING] fpm_stdio_child_said()

Nginx + PHP FastCGI 問題!

PHP 5.2.8 (cli) (built: Dec 18 2008 17:07:40)
Copyright (c) 1997-2008 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2008 Zend Technologies
    with eAccelerator v0.9.5.3, Copyright (c) 2004-2006 eAccelerator, by eAccelerator

redhat as4 x64 OS

目前我們的BBS跑在這台結構上,在每天早上八點併發非常高,達到五百多,平時也就幾十個併發!

基本要一個小時就降下來了.


在Nginx 日誌中發現很多 http 1.0 499 的錯誤!

在php fpm日誌中:
Feb 05 09:26:40.021385 fpm_stdio_child_said(), line 167: child 3506 (pool default) said into stderr: "Feb 05 09:26:39.902098 fpm_unix_init_child(), line 168: setrlimit(RLIMIT_NOFILE) failed: Invalid argument (22)"
Feb 05 09:26:40.021399 fpm_stdio_child_said(), line 167: child 3505 (pool default) said into stderr: "Feb 05 09:26:39.901068 fpm_unix_init_child(), line 168: setrlimit(RLIMIT_NOFILE) failed: Invalid argument (22)"
Feb 05 09:26:40.021411 fpm_stdio_child_said(), line 167: child 3504 (pool default) said into stderr: "Feb 05 09:26:39.900091 fpm_unix_init_child(), line 168: setrlimit(RLIMIT_NOFILE) failed: Invalid argument (22)"
Feb 05 09:26:40.021423 fpm_stdio_child_said(), line 167: child 3503 (pool default) said into stderr: "Feb 05 09:26:39.899033 fpm_unix_init_child(), line 168: setrlimit(RLIMIT_NOFILE) failed: Invalid argument (22)"
Feb 05 09:26:40.021434 fpm_stdio_child_said(), line 167: child 3502 (pool default) said into stderr: "Feb 05 09:26:39.897976 fpm_unix_init_child(), line 168: setrlimit(RLIMIT_NOFILE) failed: Invalid argument (22)"
Feb 05 09:26:40.021446 fpm_stdio_child_said(), line 167: child 3501 (pool default) said into stderr: "Feb 05 09:26:39.896965 fpm_unix_init_child(), line 168: setrlimit(RLIMIT_NOFILE) failed: Invalid argument (22)"
Feb 05 09:26:40.021458 fpm_stdio_child_said(), line 167: child 3500 (pool default) said into stderr: "Feb 05 09:26:39.895947 fpm_unix_init_child(), line 168: setrlimit(RLIMIT_NOFILE) failed: Invalid argument (22)"
Feb 05 09:26:40.021469 fpm_stdio_child_said(), line 167: child 3499 (pool default) said into stderr: "Feb 05 09:26:39.895359 fpm_unix_init_child(), line 168: setrlimit(RLIMIT_NOFILE) failed: Invalid argument (22)"
Feb 05 09:26:40.021481 fpm_stdio_child_said(), line 167: child 3498 (pool default) said into stderr: "Feb 05 09:26:39.894365 fpm_unix_init_child(), line 168: setrlimit(RLIMIT_NOFILE) failed: Invalid argument (22)"
Feb 05 09:26:40.021493 fpm_stdio_child_said(), line 167: child 3497 (pool default) said into stderr: "Feb 05 09:26:39.893403 fpm_unix_init_child(), line 168: setrlimit(RLIMIT_NOFILE) failed: Invalid argument (22)"
Feb 05 09:13:09.603827 fpm_children_make(), line 352: child 3293 (pool default) started
Feb 05 09:13:09.604856 fpm_children_make(), line 352: child 3294 (pool default) started
Feb 05 09:13:09.605872 fpm_children_make(), line 352: child 3295 (pool default) started
Feb 05 09:13:09.606238 fpm_children_make(), line 352: child 3296 (pool default) started
Feb 05 09:13:09.607581 fpm_children_make(), line 352: child 3297 (pool default) started
Feb 05 09:13:09.608598 fpm_children_make(), line 352: child 3298 (pool default) started
Feb 05 09:13:09.609501 fpm_children_make(), line 352: child 3299 (pool default) started
Feb 05 09:13:09.610785 fpm_children_make(), line 352: child 3300 (pool default) started
Feb 05 09:13:09.611807 fpm_children_make(), line 352: child 3301 (pool default) started
Feb 05 09:13:09.611834 fpm_event_loop(), line 107: libevent: entering main loop


但當時系統負載基本空閑:
top - 09:12:54 up 96 days, 18:16,  4 users,  load average: 0.25, 0.12, 0.06
Tasks: 233 total,   2 running, 229 sleeping,   0 stopped,   2 zombie
Cpu(s):  0.4% us,  0.2% sy,  0.0% ni, 99.1% id,  0.0% wa,  0.1% hi,  0.2% si
Mem:   4024900k total,  3660740k used,   364160k free,    89172k buffers
Swap:  8385888k total,      208k used,  8385680k free,  2306264k cached

  PID USER      PR  NI %CPU    TIME+  %MEM  VIRT  RES  SHR S COMMAND
3094 www       15   0    0   0:00.72  0.9 50400  33m 1004 S nginx: worker process
3092 www       15   0    0   0:00.52  0.8 48352  31m  992 S nginx: worker process
3093 www       15   0    0   0:00.67  0.8 47328  30m  992 S nginx: worker process
3098 www       15   0    0   0:00.26  0.8 46304  29m  976 S nginx: worker process
3095 www       15   0    0   0:00.23  0.7 44256  27m  980 S nginx: worker process
3119 www       15   0    0   0:00.27  0.7 44256  27m  980 S nginx: worker process
3097 www       15   0    2   0:00.18  0.7 44256  27m  964 S nginx: worker process
3118 www       15   0    0   0:00.24  0.7 43232  27m  972 S nginx: worker process
3114 www       15   0    0   0:00.22  0.7 43232  27m  976 S nginx: worker process
3091 www       15   0    0   0:00.19  0.7 43232  26m  964 S nginx: worker process
3113 www       15   0    0   0:00.12  0.7 43232  26m  972 S nginx: worker process
3101 www       15   0    0   0:00.09  0.7 43232  25m  948 S nginx: worker process
3100 www       15   0    0   0:00.08  0.7 43232  25m  948 S nginx: worker process
3117 www       15   0    0   0:00.07  0.7 43232  25m  972 S nginx: worker process
3099 www       15   0    0   0:00.08  0.6 43232  25m  964 S nginx: worker process
3090 www       15   0    0   0:00.06  0.6 43232  25m  964 S nginx: worker process
3096 www       15   0    0   0:00.05  0.6 43232  25m  960 S nginx: worker process
3116 www       15   0    0   0:00.05  0.6 43232  24m  936 S nginx: worker process
3110 www       15   0    0   0:00.04  0.6 43232  24m  936 S nginx: worker process
3102 www       15   0    0   0:00.03  0.6 43232  24m  652 S nginx: worker process
3103 www       15   0    0   0:00.04  0.6 43232  24m  652 S nginx: worker process
3104 www       15   0    0   0:00.04  0.6 43232  24m  652 S nginx: worker process
3105 www       15   0    0   0:00.03  0.6 43232  24m  652 S nginx: worker process
3106 www       15   0    0   0:00.03  0.6 43232  24m  652 S nginx: worker process
3107 www       15   0    0   0:00.03  0.6 43232  24m  652 S nginx: worker process
3108 www       15   0    0   0:00.04  0.6 43232  24m  652 S nginx: worker process
3109 www       15   0    0   0:00.03  0.6 43232  24m  652 S nginx: worker process
3111 www       15   0    0   0:00.03  0.6 43232  24m  652 S nginx: worker process
3112 www       15   0    0   0:00.04  0.6 43232  24m  652 S nginx: worker process
3115 www       15   0    0   0:00.03  0.6 43232  24m  652 S nginx: worker process
3056 www       16   0    0   0:00.13  0.4  227m  15m  11m S /usr/local/php/bin/php-cgi --fpm --fpm-config /usr/local/php/etc/php-fpm.conf
3074 www       15   0    0   0:00.12  0.3  227m  13m 9104 S /usr/local/php/bin/php-cgi --fpm --fpm-config /usr/local/php/etc/php-fpm.conf
3017 www       16   0    0   0:00.10  0.3  227m  12m 9032 S /usr/local/php/bin/php-cgi --fpm --fpm-config /usr/local/php/etc/php-fpm.conf
2988 www       16   0    0   0:00.11  0.3  227m  12m 9108 S /usr/local/php/bin/php-cgi --fpm --fpm-config /usr/local/php/etc/php-fpm.conf
2981 www       16   0    0   0:00.12  0.3  227m  12m 9044 S /usr/local/php/bin/php-cgi --fpm --fpm-config /usr/local/php/etc/php-fpm.conf
3036 www       16   0    0   0:00.11  0.3  227m  12m 8780 S /usr/local/php/bin/php-cgi --fpm --fpm-config /usr/local/php/etc/php-fpm.conf
3073 www       16   0    0   0:00.12  0.3  227m  12m 8968 S /usr/local/php/bin/php-cgi --fpm --fpm-config /usr/local/php/etc/php-fpm.conf
2957 www       16   0    0   0:00.10  0.3  227m  12m 8716 S /usr/local/php/bin/php-cgi --fpm --fpm-config /usr/local/php/etc/php-fpm.conf
2980 www       16   0    0   0:00.12  0.3  227m  12m 8608 S /usr/local/php/bin/php-cgi --fpm --fpm-config /usr/local/php/etc/php-fpm.conf
3046 www       16   0    0   0:00.10  0.3  227m  12m 8660 S /usr/local/php/bin/php-cgi --fpm --fpm-config /usr/local/php/etc/php-fpm.conf
3027 www       15   0    0   0:00.09  0.3  227m  12m 8840 S /usr/local/php/bin/php-cgi --fpm --fpm-config /usr/local/php/etc/php-fpm.conf
3023 www       16   0    0   0:00.10  0.3  227m  12m 8700 S /usr/local/php/bin/php-cgi --fpm --fpm-config /usr/local/php/etc/php-fpm.conf
3063 www       16   0    0   0:00.09  0.3  227m  12m 8472 S /usr/local/php/bin/php-cgi --fpm --fpm-config /usr/local/php/etc/php-fpm.conf
3009 www       16   0    0   0:00.10  0.3  227m  12m 8452 S /usr/local/php/bin/php-cgi --fpm --fpm-config /usr/local/php/etc/php-fpm.conf
3016 www       16   0    0   0:00.15  0.3  227m  12m 8740 S /usr/local/php/bin/php-cgi --fpm --fpm-config /usr/local/php/etc/php-fpm.conf
2956 www       16   0    0   0:00.10  0.3  227m  12m 8628 S /usr/local/php/bin/php-cgi --fpm --fpm-config /usr/local/php/etc/php-fpm.conf
《解決方案》

沒人遇到過這個問題嗎?現在又出現這個問題了,每天早上都會有一個小時,這三天以來!
《解決方案》

暈,我也遇到一樣的問題,環境基本相同,也是Nginx + PHP FastCGI,這兩天早上總有一段時間狂報499錯誤,用
netstat -anpo | grep "php-cgi" | wc -l

查看使用緊的進程數,居然比平常多出2~3倍,CPU幾乎耗盡,也是大概1個小時后就變回正常,不知何因。。。
《解決方案》

我的也是這個問題,當時看到網上有說是配置文件和啟動文件不一致導致的,可沒發現我的配置哪裡有不一致的
《解決方案》

如果前端沒有問題,請詳細分析一下後端是否有問題
《解決方案》

回復 #1 myfreeke 的帖子

呵呵...非得回復你這個,今天我遇到的問題跟你差不多哦,我花了很長時間才找到答案.錯誤跟你報的一樣,但沒看你的php-fpm.conf,所以也只能把我的解決方法寫在這裡.

這個rlimit_nofile的問題,和系統最大文件數有關,
1:ulimit -n
XXX
看看系統當前文件打開最大值為XXX
2:cat php-fpm.conf | grep rlimit
<value name="rlimit_files">XXX</value>

這兩個值一定要一樣.否則就會出上面日誌的錯誤.
《解決方案》

回復 #6 很溫暖 的帖子

感謝你的回復,我的這二個參數是配置的最大值,65535

後來也是這二個參數解決了這個問題,但是資料庫也有問題,我1K的資料庫連接一到高峰馬上用完,后採用DZ添加memcached的功能來解決所有問題
《解決方案》

你的配置是不是有問題?你的伺服器內存多大,PHP-CGI開多少個進程,NGINX開多少個?
《解決方案》

1.修改系統文件描述符數目
修改
/etc/security/limits.conf
加上
*        soft    nofile  65535
*        hard    nofile  65535

2.修改php-fpm 設置
修改 /usr/local/webserver/php/etc/php-fpm.conf
<value name="rlimit_files">65535</value>

<value name="max_requests">10000</value>

<value name="log_level">warn</value>


<value name="request_slowlog_timeout">5s</value>

3.重新登陸session,重啟php-fpm,使得新設置生效。
文件描述符數目 php-fpm reload不會生效,所以用 php-fpm restart
/usr/local/webserver/php/sbin/php-fpm restart
《解決方案》

可以試試spawn-fcgi 1.6.2   已經獨立成一個程序了   不用給php打補丁就能使用   經長期使用穩定性還不錯

[火星人 ] Nginx + PHP FastCGI 結構中的錯誤[WARNING] fpm_stdio_child_said()已經有691次圍觀

http://coctec.com/docs/service/show-post-20796.html