查看信息发现是队列的进程占用的,但是使用php start.php status 查看的时候,队列只有30M不到的占用
然后系统会自动重启php进程,比如到1.6G,linux系统占用过大了,队列会自动重启,这种应该如何排查。。
大概6天的时间,php占用内存从200MB 升到了1G多
https://www.workerman.net/doc/webman/queue/redis.html#%E4%B8%BA%E4%B8%8D%E5%90%8C%E7%9A%84%E9%98%9F%E5%88%97%E8%AE%BE%E7%BD%AE%E4%B8%8D%E5%90%8C%E7%9A%84%E6%B6%88%E8%B4%B9%E8%BF%9B%E7%A8%8B 为不同队列设置不同的进程消费,能判断出哪个队列消耗内存
我这个队列下只有一个消费文件,我也检查了下这个里面的代码,没有发现明显的可无限增长的静态变量。。关键这个内存增加的比较慢,得好几天,才能看到变大很多
老大,用php start.php status 查看的队列内存使用数量,能判断是否里面有没有无限增长的静态变量吗?
php start.php status 看业务代码内存占用不到20M,没有问题。 看看是不是业务从数据库等存储读取了太大的数据,还有是否使用了什么扩展导致。
workerman.log里有些redis报错,有可能是这个原因导致的吗? pid:1769478 RedisException: socket error on read socket in /vendor/webman/redis-queue/src/RedisConnection.php:64
pid:1769476 RedisException: socket error on read socket in /vendor/webman/redis-queue/src/RedisConnection.php:64
没遇到过这种问题,要自己排查
https://www.workerman.net/doc/webman/queue/redis.html#%E4%B8%BA%E4%B8%8D%E5%90%8C%E7%9A%84%E9%98%9F%E5%88%97%E8%AE%BE%E7%BD%AE%E4%B8%8D%E5%90%8C%E7%9A%84%E6%B6%88%E8%B4%B9%E8%BF%9B%E7%A8%8B
为不同队列设置不同的进程消费,能判断出哪个队列消耗内存
我这个队列下只有一个消费文件,我也检查了下这个里面的代码,没有发现明显的可无限增长的静态变量。。关键这个内存增加的比较慢,得好几天,才能看到变大很多
老大,用php start.php status 查看的队列内存使用数量,能判断是否里面有没有无限增长的静态变量吗?
php start.php status 看业务代码内存占用不到20M,没有问题。
看看是不是业务从数据库等存储读取了太大的数据,还有是否使用了什么扩展导致。
workerman.log里有些redis报错,有可能是这个原因导致的吗?
pid:1769478 RedisException: socket error on read socket in /vendor/webman/redis-queue/src/RedisConnection.php:64
pid:1769476 RedisException: socket error on read socket in /vendor/webman/redis-queue/src/RedisConnection.php:64
没遇到过这种问题,要自己排查