【问题标题】:JS stacktrace error inside kubernates PodKubernetes Pod 内的 JS stacktrace 错误
【发布时间】:2020-07-18 10:38:56
【问题描述】:

我在 Kubernetes pod 中以生产模式运行 reactJs 应用程序。容器运行时是 docker。 Pod 状态为 Running,但我们仍然没有得到 UI。此外,当我检查日志时,我看到以下 JS 堆栈跟踪错误。 要运行 React 应用程序,我给出了以下命令

"build": "set max_old_space_size=8192 && webpack --mode production --max_old_space_size=8192 && serve -s dist -l 3000"

我在 pod 日志中看到的错误是

FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory

[114:0x5632d5a724a0]    27622 ms: Scavenge (reduce) 597.8 (600.3) -> 597.3 (600.3) MB, 3.2 / 0.0 ms  (average mu = 0.185, current mu = 0.145) allocation failure
[114:0x5632d5a724a0]    27627 ms: Scavenge (reduce) 598.1 (600.3) -> 597.5 (600.6) MB, 2.4 / 0.0 ms  (average mu = 0.185, current mu = 0.145) allocation failure

【问题讨论】:

  • 请将 Pod 的 PodSpec 添加到您的问题中。看起来你没有给它足够的资源。
  • resources:limits:cpu:500m memory:1024Mi requests:cpu:250m memory:560Mi 我给了足够的资源。否则 pod 将终止。但是 pod 处于运行状态。 @YardenShoham
  • 资源有问题。

标签: javascript reactjs docker kubernetes kubernetes-pod


【解决方案1】:

问题是--max_old_space_size 是 MB,根据您的问题,您正在传递 8192,但您的 pod 的资源限制为 1024。

您需要执行以下操作之一:

  1. 更改您的 pod 规格以预留超过 8192 的数量。
  2. 更改您的命令,将 --max_old_space_size 设置为小于 1024 的值。
  3. 或两者都更改,但您需要确保您的 pod 有足够的内存

如果您完全删除两个 max_old_space_size 会发生什么?你真的需要覆盖它吗?

【讨论】:

    猜你喜欢
    • 2016-09-20
    • 2016-12-06
    • 1970-01-01
    • 2018-03-06
    • 1970-01-01
    • 2020-08-21
    • 1970-01-01
    • 1970-01-01
    • 2020-07-27
    相关资源
    最近更新 更多