问题
当在zabbix web 的 lastest data 界面上进行一个超大查询(没有限定主机)时,可能因为查询过大,超出了php-fpm进程的内存限制,而导致该界面卡住。(此后打开均无显示,F12查看会看到服务端返回了500报错)。
处理
-
查看nginx请求日志,看到也是500的返回
-
查看nginx配置文件,请求被转发到
fastcgi_pass 127.0.0.1:9000;
-
查看9000端口进程
sudo netstat -tnlp |grep 9000 tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 12504/php-fpm
-
查看php-fpm进程日志
# 先找文件 sudo grep -r log /etc | grep php | grep = 确定日志目录:/var/log/php-fpm/ # 查看报错 sudo grep -ri err /var/log/php-fpm/ | tail、 得到报错日志: Allowed memory size of 134217728 bytes exhausted
-
查看限制内存的配置
sudo grep -ri mem /etc | grep php | grep limit 得到如下两个配置文件: /etc/php-fpm.d/www.conf:;php_admin_value[memory_limit] = 128M /etc/php.ini:; http://www.php.net/manual/en/ini.core.php#ini.memory-limit /etc/php.ini:memory_limit = 128M
-
查看本机剩余内存,并修改该值为328M
-
重启php-fpm进程
sudo kill -USR2 `/var/run/php-fpm/php-fpm.pid`
结论
zabbix web上的查询难免会有多选、超选的情况,128M的查询限制在内存够的情况下,可以调大一些。
附录
zabbix-安装要求
Zabbix之ZABBIX WEB界面安装
PHP-FPM 和 Nginx 进行安装配置详解
php-fpm 日志