内存不足- Google Kubernetes



我有一个自动驾驶集群,应该根据需要增加cpu/内存,但我仍然得到以下错误

我没有在部署中定义任何限制/资源。我依靠谷歌来自动处理。

这是一个节点应用程序,读取大的csv文件(300-400mb),解析它们并插入到mysql数据库(使用typeorm)它似乎适用于较小的文件。文件被一个一个地读取。在这种情况下,有超过1200个文件(不是所有的300-400mb大小,但相当多)

它似乎不像我想的那样工作....这是否表明js代码有问题,或者我只需要手动增加内存?

<--- Last few GCs --->
[1:0x7f9fde9bf330]  4338991 ms: Scavenge (reduce) 955.5 (1037.2) -> 955.5 (1037.2) MB, 7.1 / 0.0 ms  (average mu = 0.295, current mu = 0.279) allocation failure
[1:0x7f9fde9bf330]  4339001 ms: Scavenge (reduce) 956.9 (1037.7) -> 956.9 (1038.0) MB, 7.6 / 0.0 ms  (average mu = 0.295, current mu = 0.279) allocation failure
[1:0x7f9fde9bf330]  4339011 ms: Scavenge (reduce) 958.1 (1038.0) -> 958.1 (1038.5) MB, 7.7 / 0.0 ms  (average mu = 0.295, current mu = 0.279) allocation failure
<--- JS stacktrace --->
FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory

我没有在部署中定义任何限制/资源。我依靠谷歌来自动处理。

我不认为那是真的。从文档复制粘贴:Autopilot依赖于您在部署配置中指定的资源来提供资源。如果您没有为Pod中的任何容器指定资源请求,Autopilot将应用默认值。这些默认设置旨在为您的pod中的容器提供平均资源量,这适用于许多较小的工作负载。" 重要:Google建议您显式地为每个容器设置资源请求,以满足您的应用程序需求,因为这些默认值可能不够,或者不够理想。

所以很可能默认的资源请求和限制对于您的应用程序来说太低了。你应该把它们设置成一个足够高的值,这样你就不会耗尽内存。

最新更新