看来我的快递服务器正在榨取服务器上的所有内存。我只是在猜测。我有一个正在运行的进程:
node server.js
这将加载一台服务器,从另一台服务器接收一些数据并进行截屏。一切正常,并且可以工作一天左右。然后无处不在,没有代码更改,它随机开始崩溃,并显示此错误:
internal/child_process.js:366
throw errnoException(err, 'spawn');
^
Error: spawn ENOMEM
at ChildProcess.spawn (internal/child_process.js:366:11)
at Object.spawn (child_process.js:551:9)
我最初在服务器上有2 GB的内存。该过程将正常工作,并且速度更快,这会给我这个错误。我将内存增加到3个演出,并且持续了一天之久,然后又开始再次发生。在server.js文件中运行内存检查,我得到以下信息:
{ rss: 30277632,
heapTotal: 20168704,
heapUsed: 12109848,
external: 497984 }
从命令行运行:free -m
total used free shared buffers cached
Mem: 3072 2223 848 3 0 1107
-/+ buffers/cache: 1115 1956
Swap: 0 0 0
其他人建议添加交换内存。不幸的是,在我的服务器提供商上,这似乎是不可能的。
我的猜测是它会耗尽内存,直到内存用完,然后才开始显示错误。无论如何,我可以从express中清除内存缓存以清理一些空间吗?我对此不太熟悉。有什么想法吗?