- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
您的 AWS Elastic Beanstalk 部署失败:- 间歇性- 没有真正明显的原因
第 1 步:检查明显的日志
/var/log/eb-activity.log
Running npm install: /opt/elasticbeanstalk/node-install/node-v6.10.0-linux-x64/bin/npm
Setting npm config jobs to 1
npm config jobs set to 1
Running npm with --production flag
Failed to run npm install. Snapshot logs for more details.
Traceback (most recent call last):
File "/opt/elasticbeanstalk/containerfiles/ebnode.py", line 695, in <module>
main()
File "/opt/elasticbeanstalk/containerfiles/ebnode.py", line 677, in main
node_version_manager.run_npm_install(options.app_path)
File "/opt/elasticbeanstalk/containerfiles/ebnode.py", line 136, in run_npm_install
self.npm_install(bin_path, self.config_manager.get_container_config('app_staging_dir'))
File "/opt/elasticbeanstalk/containerfiles/ebnode.py", line 180, in npm_install
raise e
subprocess.CalledProcessError: Command '['/opt/elasticbeanstalk/node-install/node-v6.10.0-linux-x64/bin/npm', '--production', 'install']' returned non-zero exit status 1 (ElasticBeanstalk::ExternalInvocationError)
caused by: + /opt/elasticbeanstalk/containerfiles/ebnode.py --action npm-install
第 2 步:谷歌搜索相应的快照日志文件...
/var/log/nodejs/npm-debug.log
58089 verbose stack Error: spawn ENOMEM
58089 verbose stack at exports._errnoException (util.js:1022:11)
58089 verbose stack at ChildProcess.spawn (internal/child_process.js:313:11)
58089 verbose stack at exports.spawn (child_process.js:380:9)
58089 verbose stack at spawn (/opt/elasticbeanstalk/node-install/node-v6.10.0-linux-x64/lib/node_modules/npm/lib/utils/spawn.js:21:13)
58089 verbose stack at runCmd_ (/opt/elasticbeanstalk/node-install/node-v6.10.0-linux-x64/lib/node_modules/npm/lib/utils/lifecycle.js:247:14)
58089 verbose stack at /opt/elasticbeanstalk/node-install/node-v6.10.0-linux-x64/lib/node_modules/npm/lib/utils/lifecycle.js:211:7
58089 verbose stack at _combinedTickCallback (internal/process/next_tick.js:67:7)
58089 verbose stack at process._tickCallback (internal/process/next_tick.js:98:9)
58090 verbose cwd /tmp/deployment/application
58091 error Linux 4.4.44-39.55.amzn1.x86_64
58092 error argv "/opt/elasticbeanstalk/node-install/node-v6.10.0-linux-x64/bin/node" "/opt/elasticbeanstalk/node-install/node-v6.10.0-linux-x64/bin/npm" "--production" "install"
58093 error node v6.10.0
58094 error npm v3.10.10
58095 error code ENOMEM
58096 error errno ENOMEM
58097 error syscall spawn
58098 error spawn ENOMEM
第 3 步:显而易见的选项...
使用更大的实例就可以了...
不要修复,再试一次
再次部署就可以了...
克隆环境就可以了……
重建环境,它就可以工作了....
感到肮脏和错误
最佳答案
您的实例(在我的情况下为 t2.micro)内存不足,因为实例启动是并行的。
一次性登录实例时...
sudo /bin/dd if=/dev/zero of=/var/swap.1 bs=1M count=1024
sudo /sbin/mkswap /var/swap.1
sudo chmod 600 /var/swap.1
sudo /sbin/swapon /var/swap.1
来自/更多详细信息:How do you add swap to an EC2 instance?
在部署过程中,我们使用了一些 SWAP,但没有崩溃
Mem: 1019116k total, 840880k used, 178236k free, 15064k buffers
Swap: 1048572k total, 12540k used, 1036032k free, 62440k cached
更大的实例
在 ElasticBeanStalk 中自动配置交换
.ebextensions/
加入“无服务器”潮流
少用臃肿的包
快速 google 发现 ENOMEM
是内存不足错误。t2.micro
实例只有 1 GB 的 RAM。
我们很少会在开发上使用这个数量;但是,ElasticBeanstalk 通过派生的工作人员并行化了部分构建过程。这意味着在SETUP期间,对于较大的包,可能会出现内存不足而导致操作失败的情况。
使用free -m
我们可以看到...
开始(大量可用内存)
total used free shared buffers cached
Mem: 1019116 609672 409444 144 45448 240064
-/+ buffers/cache: 324160 694956
Swap: 0 0 0
在下一次滴答时内存不足)
Mem: 1019116 947232 71884 144 11544 81280
-/+ buffers/cache: 854408 164708
Swap: 0 0 0
部署过程中止
total used free shared buffers cached
Mem: 1019116 411892 607224 144 13000 95460
-/+ buffers/cache: 303432 715684
Swap: 0 0 0
关于node.js - AWS 弹性 beanstalk 部署失败并出现 ENOMEM 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43550502/
我在我的 xcode 项目中使用“libarchive”,但出现以下错误 if (bytes_read block_size && ferror(mine->f)) { archive_set
我有一个应用程序,它在主线程中使用 pthread_create() 和 pthread_detach(),然后在子线程中使用 pthread_exit()线程。 在大约 54 个 pthread_c
读取带有错误 ENOMEM 返回的套接字时怎么会发生这种情况?Man 2 阅读,我看不到有关此错误的任何详细信息,有人可以帮助我。谢谢。我的 linux 内核 2.6.26-1-686。 最佳答案 环
我阅读了与该主题相关的所有帖子,但没有找到任何能够解决我的问题的内容。 我正在尝试映射一个由基础文件支持的 900Mb MAP_SHARED。我们有 2Gb 的 RAM 和只有 2Gb 的虚拟内存可用
我有一个 ruby 脚本,它在内存中加载大量数据,然后需要 shell out 来对这些数据执行任务。但有时,数据太大以至于脚本在交换区中运行,在这种情况下,shell out 会给我一个 Err
我正在尝试使用 ffmpeg 的 vaapi 库在 GPU 上执行 h264 视频编码。 我一直在关注这个example来自 ffmpeg Github 存储库。 它在这里对我来说失败了: AVBuf
Linux/Unix 定义了大量相对相似的错误代码。是否有任何普遍遵循的约定建议应将哪些类型的错误绑定(bind)到哪些错误代码? 假设我的函数有一些具有固定大小的任意容器(并且由于与实际 RAM 使
我发现 pthread_create() 在具有 4GB 实际内存的 64 位 RHEL 计算机上失败,并出现 rc=12 (ENOMEM)。当线程创建失败时,“top”命令显示进程正在使用 1G 虚
我有一台用 C++ 实现的服务器,运行在具有 25GB RAM 的 Windows 2003 企业版上。 在压力测试期间,我看到当它试图通过调用 _beginthread 创建一个新线程时,我得到了
我有一个在生产环境中运行的工作,它处理 xml 文件。xml 文件总计约 4k,大小为 8 到 9 GB。 处理后,我们得到 CSV 文件作为输出。我有一个 cat 命令,它将所有 CSV 文件合并到
我有一 block SH4 板,这是规范... uname -a Linux LINUX7109 2.6.23.17_stm23_A18B-HMP_7109-STSDK #1 PREEMPT Fri
以下程序在内存用完时被内核杀死。我想知道何时应该将全局变量分配给“ENOMEM”。 #define MEGABYTE 1024*1024 #define TRUE 1 int main(int arg
我正在使用 Monotouch 编写一个 iPhone 应用程序,最近该应用程序开始崩溃,并指出 Mprotect failed at 0x863a000 (length 8192) with err
我正在运行 pdfinfo 命令来获取有关大小为 100KB 的 pdf 的信息。相关代码为 const pdfInfo = execute(`pdfinfo '${input}' | gre
几个月来,我的生产 Node.js (v12) 应用程序一直出现 ENOMEM 错误。 这个问题特别难以诊断,因为我的堆总是在 100MB 范围内并且不会随着时间的推移而增加。因此不太可能发生 Nod
进程运行卡在 32000 (± 5%) 左右 ~# cat/proc/sys/kernel/threads-max127862 ~# ulimit -s堆栈大小(千字节,-s)2048 可用内存:3,
我有一个大部分情况下都可以运行的应用程序,但我有一种情况,其中对::popen() 的调用出现错误,errno 设置为 ENOMEM。::popen() 的手册页将您引向::fork() 的页面,该页
在 linux 中试验 shm_open 并遇到问题。我经常使用 ftrunc 调整共享内存段的大小,并使用 mmap 重新映射调整大小的段。然而,就在 20 兆字节左右,我从 mmap 获得了 EN
我的 Node.js 脚本在使用 spawn 时由于抛出 ENOMEM(内存不足)errnoException 而崩溃. 错误: child_process.js:935 throw errnoE
我正在尝试在 Fedora Linux x86_64(4G 内存加 16G 交换空间)下映射一个 1TB 的匿名文件。但是我得到了 ENOMEM“无法分配内存”,甚至是 32G,如下代码所示。我错过了
我是一名优秀的程序员,十分优秀!