因此,我有一个nodejs进程,当缩放消耗5-8gb内存时。它正在码头集装箱内运行。使用arg --max-old-space-size=12192启动以增加节点进程限制。
内存消耗是可以的,因为我尝试使用专用服务器(AMD EPYC CPU,64 in内存)来代替AWS或其他云提供商的水平扩展,因为如果我能够让它在专用服务器上工作( AWS/Google cloud的大部分开销用于网络流量,而VDS没有限制),它的成本要低10倍。网络端已经通过使用GraphQL和最小化请求量来进行优化)。进程本身以多线程的方式处理内存中的大量数据。从流程代码本身的角度来看,没有进一步的重要优化。
当进程内存消耗达到3Gb+时,会显着地减慢。Docker没有限制容器资源。服务器本身运行在5-10%的内存和CPU负载上.SSD驱动程序->低驱动器负载(服务器端低数量的I/O )。
例如,我想将该应用程序重写到golang可能会大大改进它,但这确实是一项很大的工作。
可以在服务器安装/ nodejs应用程序端执行任何操作,以防止减速?
谢谢!
发布于 2021-01-13 11:39:52
用docker解决了单个VDS中的水平缩放问题。
正如jfriend00所注意到的,问题的本质可能是垃圾收集--个人没有其他猜测。
https://stackoverflow.com/questions/65691361
复制相似问题