nowjs, redis, stomp的node服务器端, cpu100%....
发布于 3年前 作者 tldlingwei 2454 次浏览

我写了一个服务器推的NODE应用,简单来说,就是node监听activemq的消息,用stomp包进行连接。监听到消息以后,发送给指定的客户端,并往redis中设置一些数据…

目前大概200-300左右的客户端连接,每过1-2天CPU就会冲到100%,然后客户端再请求连接NODE就无法响应了。我看LOG,NODE其实还是在处理,只是比较慢。。。

我不知道是哪里导致的。。求助大神们。。。

15 回复

不够具体,看不出来呃

3q,一般比较常见的,会导致NODEJS CPU100%的情况是什么样子?

是否有大量运算?之前用node结合mongodb写了一套rest的访问接口,在用siege压力的时候,发现过cpu100%的情况,感觉当时看单核大概在200左右的并发会吃满。

具体的运算是指的什么?发送MQ算是吗?我到达100%以后,基本上就得重启了,不重启就响应很慢。。。

@tldlingwei 运算要看你的业务逻辑啊。比如1+1之类。我不知道你的这个应用是否可以用cluster来分担负载,如果可以的话,试下cluster吧

CPU不是在上线后马上飙到100%,而是运行2天后才出现这种情况。如果这个问题出现在内存上,使因为有些空间没释放,但是出现在CPU上,耐人寻味。。。

看看是不是监听器一直在增长没有remove?

我的意思是说是不是CPU一直在遍历listener?

是不是写LOG导致的?上次用log4js,程序都听了,日志还在写,cpu 100%。

MQ的包是XML格式的吗?MQ的包最大貌似是4M,如果你发的全是差不多4M的包,然后再处理数据,貌似也是挺耗时的,内存占用都在数据包上了吧!数据密集的处理也不是很适合Node.

现象是内存一直都在增长,大约增长到400-500M左右,CPU就会一下冲到100%

具体怎么可以看的出来?

LOG我试过不写,不过还是出现这个问题。。。

是JSON的,数据也不大,应该不是这个问题。

剥离下核心部分,代码不方便透露吗?

回到顶部