什么是fpm错误日志中的PHP-fpm警告“未能获得记分牌”?以及如何解决它?
tail -f /var/log/PHP-fpm.log [08-Oct-2014 03:36:36] WARNING: Failed to acquire scoreboard [08-Oct-2014 03:40:39] WARNING: Failed to acquire scoreboard [08-Oct-2014 03:42:54] WARNING: Failed to acquire scoreboard [08-Oct-2014 03:47:01] WARNING: Failed to acquire scoreboard
用例:
PHP版本5.4.25
PHP-fpm实例说’pf-9000’连接到第二个PHP-fpm实例,在同一台服务器上用fastcgi协议说’pf-9005′.
这两个PHP-fpm实例都可以看到错误.
请求流程:
web client -> Nginx -> pf-9000 -> pf-9005
响应流程:
pf-9005 -> pf-9000 -> Nginx -> web client
从
Stack Overflow的回答:
A scoreboard is a structure that holds the state of the FPM pool and its worker threads. It’s created in shared memory,and if that memory can’t be allocated,an error is logged.
这个答案也指source code引发错误的地方.
怎么解决?
首先,给sysctl一个关于内存限制的看法:
How to/configure shared memory
sysctl -a | grep -E "shmall|shmmax"
要么
ipcs -lm