内存不足 - Google Kubernetes

Out of memory - Google Kubernetes

我有一个自动驾驶仪集群,应该按需增加 cpu/memory 但我仍然收到以下错误

我没有在部署中定义任何 limits/resources。我依靠 Google 自动处理。

这是一个节点应用程序,可以读取大型 csv 文件 (300-400mb),解析它们并将它们插入到 mysql db(使用 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

I have not defined any limits/resources in the deployment. I am relying on Google to handle that automatically.

我不认为那是真的。从 docs 复制粘贴: “Autopilot 依赖于您在部署配置中指定的内容来供应资源。如果您没有为 Pod 中的任何容器指定资源请求,Autopilot 会应用默认值。这些默认值旨在为您的 Pods 中的容器提供一个平均资源量,适用于许多较小的工作负载。"

还有:“重要提示:Google 建议您明确设置每个容器的资源请求以满足您的应用程序要求,因为这些默认值可能不够或最佳。”

所以很可能默认资源请求和限制对于您的应用程序来说太低了。您应该将它们设置为足够高的值,以免 运行 内存不足。