php问题记录
程序员文章站
2022-05-31 11:17:26
...
问题记录:
1 打开网关后台监控,返回500内部错误。
排查过程:
定位到是读取redis那部分代码报错,于是记录下php脚本内存使用状况:
...
$begin = memory_get_usage();
$all_data = [];
$all_data = Redis::pipeline(function ($pipe) use ($all_keys, $time_params) {
for ($i = 0; $i < count($all_keys); $i++) {
$pipe->hmget($all_keys[$i]['count_key'], $time_params);
$pipe->hmget($all_keys[$i]['request_time_key'], $time_params);
$pipe->hmget($all_keys[$i]['error_key'], $time_params);
}
});
$end = memory_get_usage();
dd($begin,$end);
...
==> 结果是:
begin = 3842768 = 3.6M
end = 84567008 = 80M
原因分析: 这段代码消耗了近80M内存!
解决方法:
1 修改php.ini:
将memory_limit = 50M 修改为了 200M
php-fpm参数设置:
将pm.max_children由537个修改为了20个
重启fpm
kill -USR2 cat /usr/local/php7/var/run/php7-fpm.pid