我写了一个服务器推的NODE应用,简单来说,就是node监听activemq的消息,用stomp包进行连接。监听到消息以后,发送给指定的客户端,并往redis中设置一些数据…
目前大概200-300左右的客户端连接,每过1-2天CPU就会冲到100%,然后客户端再请求连接NODE就无法响应了。我看LOG,NODE其实还是在处理,只是比较慢。。。
我不知道是哪里导致的。。求助大神们。。。
不够具体,看不出来呃
3q,一般比较常见的,会导致NODEJS CPU100%的情况是什么样子?
是否有大量运算?之前用node结合mongodb写了一套rest的访问接口,在用siege压力的时候,发现过cpu100%的情况,感觉当时看单核大概在200左右的并发会吃满。
具体的运算是指的什么?发送MQ算是吗?我到达100%以后,基本上就得重启了,不重启就响应很慢。。。
@tldlingwei 运算要看你的业务逻辑啊。比如1+1之类。我不知道你的这个应用是否可以用cluster来分担负载,如果可以的话,试下cluster吧
是不是写LOG导致的?上次用log4js,程序都听了,日志还在写,cpu 100%。
MQ的包是XML格式的吗?MQ的包最大貌似是4M,如果你发的全是差不多4M的包,然后再处理数据,貌似也是挺耗时的,内存占用都在数据包上了吧!数据密集的处理也不是很适合Node.
现象是内存一直都在增长,大约增长到400-500M左右,CPU就会一下冲到100%
具体怎么可以看的出来?
LOG我试过不写,不过还是出现这个问题。。。
是JSON的,数据也不大,应该不是这个问题。
剥离下核心部分,代码不方便透露吗?