我遇到了以下组合的极端冷启动问题:
- 阿帕奇 POI 4.1.2
- 爪哇 11
- AWS Lambda 运行时 (corretto-11)
(请注意,4.1.2 是我唯一可用的版本。我必须使用公司管理的 jar 注册表)
lambda 函数执行以下操作:
- 从外部数据库检索一些数据
src/main/resources
从(文件大小:48 kbytes)加载一个 DOCX 模板作为输入流并XWPFDocument
用它实例化一个对象- 在 DOCX 中填写数据(数据通常是在文档中填写 3 个 Word 表格,总共 40 行——非常有限)
XWPFDocument::write
使用方法写入 ByteArrayOutputStream- 将 ByteArrayOutputStream 保存到 S3 文件
当 Lambda 冷启动时,我观察到大约 12 秒的额外持续时间。使用 AWS XRay,我观察到主要的罪魁祸首是分段 (2) 平均耗时 7.5 秒,分段 (4) 平均耗时 4.2 秒。
请注意,当 Lambda 已经预热时,段 (2) 和 (4) 的执行时间分别为 1.1 秒。
所以简而言之,当 Lambda 处于冷启动状态时,我不仅会受到通常的 AWS Lambda 冷启动惩罚(约 4 秒)的影响,而且还会受到来自XWPFDocument
.
我想知道冷启动时的这种行为是否已知,或者我只是自己做错了什么?