提问者:小点点

无服务器框架-JavaScript内存不足


当我使用无服务器offiline命令部署或ru服务时,我面临着“JavaScript堆内存溢出”的问题。

我正在使用nestjs——一个节点框架——并为Node10x构建项目。在我的终端上,我在下面看到了这个。

我找到了一些修复方法,比如

  1. 在终端上键入节点--max-old-space-size=1024index.js
  2. 使用此包https://www.npmjs.com/package/increase-memory-limit
  3. 在脚本标签上附加package.json一些像"脚本":{"webPacker":"node--max_old_space_size=4096"不是这些作品。

有线索吗?

PS D:\m1_workspace\dw-api> serverless offline
Serverless: Compiling with Typescript...
Serverless: Using local tsconfig.json

<--- Last few GCs --->
al[21864:000001EF81231660]    20688 ms: Mark-sweep 1394.2 (1429.4) -> 1392.3 (1429.9) MB, 977.1 / 0.0 ms  (+ 0.0 ms in 62 steps since start of marking, biggest step 0.0 ms, walltime since start of marking 987 ms) (average mu = 0.074, current mu = 0.010) all[21864:000001EF81231660]    21557 ms: Mark-sweep 1392.3 (1429.9) -> 1392.2 (1427.9) MB, 868.1 / 0.0 ms  (+ 0.0 ms in 0 steps since start of marking, biggest step 0.0 ms, walltime since start of marking 868 ms) (average mu = 0.037, current mu = 0.001) allo

<--- JS stacktrace --->

==== JS stack trace =========================================

Security context: 0x002e2c61e6e9 <JSObject>
    0: builtin exit frame: splice(this=0x03a8c4a97e89 <JSArray[8]>,0x0237e40868f9 <TypeObject map = 000001453BA516C9>,0,8,0x03a8c4a97e89 <JSArray[8]>)

    1: getUnionType(aka getUnionType) [00000057B5C33821] [D:\m1_workspace\dw-api\node_modules\@hewmen\serverless-plugin-typescript\node_modules\typescript\lib\typescript.js:~34245] [pc=000003F28C0363E9](this=0x007f886026f1 <undefined>,types=0x010...

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

共2个答案

匿名用户

快速解决方法是首先尝试运行以下命令:

export NODE_OPTIONS=--max_old_space_size=8192

我有一个大型无服务器项目,当我试图用“sls deply”部署时,它遇到了类似的问题。这个变通方法对我有用。

希望能有所帮助。

匿名用户

这也发生在我身上-
我意识到我已经定义了无服务器配置来单独打包每个lambda
如下所示:

package:
  individually: true

将其更改为:

package:
  individually: false

为我工作。

(当然,如果单独打包lambda函数对您至关重要,那么您将失去这一点,但对我来说并非如此)。