我一直调试了。应该是业务逻辑导致的内存溢出。
workerman本身非常稳定,没用内存泄漏。目前总结内存占用越来越高一般是以下原因导致的。
1、业务代码问题,比如使用了全局变量数组或者类的某个属性是数组,数组中的元素个数一直在增加,导致内存占用越来越大
2、使用了某些质量有问题的php类库,类库里面同样因为1的问题导致内存不断增长
3、某个扩展bug导致。有些扩展在使用过程中内存会不断增大。(这种情况比较少见)
$gatewayClients, $clientGateway, $uidConnections ,
因为我项目逻辑是游戏。所以很复杂 没法停机调试。所以提问一下有没有办法不停服务的清空下 打印这3个参数查看内容.
看下报错日志里有没有内存相关的报错,然后看下是哪一行代码报错,有可能就是那里有内存泄漏。
另外90多M也有可能业务确实需要这么多内存,不一定是内存泄漏。内存泄漏是内存无限增长,几百M上G这种。如果你的不是无限增长应该就没事。
但是我业务流程走得时候 内存增长慢慢得就会涨到百分之90 .