欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

相关标签: php