用的GatewayWorker(3.0.12)
,Linux Centos服务器
,PHP 5.6.38
.
启动服务器成功后,有300个客户端正常保持长连接,此时占用总内存大约40MB。随着时间的增长,占用总内存逐渐增大,通过status查看时businessWorker占用,运行12小时大约能跑到300M去,为什么会一直增长呢?
在此期间,程序都是正常运行的。
关于程序的写法,都是采用new class,然后调用class里面的方法。每个class里面无static变量。只有const和public。
整个程序用了md5库函数、openssl加密、解密库函数、json库函数。
为什么我这里的内存会逐渐增加呢?现在处理办法是每天重启一次。不过好鸡肋。求赐教
在运行的过程中,无节点断开连接,也无新设备新建连接。一直是开始的300个左右的客户端存在。
这是在Events里面的协议解析流程图
花了3天时间,终于搞定了,是汉字转码的问题
因为用了一个Unicode转汉字的一个方法,这里面用的create_function。这就导致每次调用就占了8个byte内存。