npm install killed

本文介绍了解决测试服务器上npm install耗时长并自动被kill的问题。通过分析发现这是由于服务器资源不足导致,采取措施增加了swap分区,成功解决了该问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

昨天在测试服自动化部署前端代码时,总是失败,然后进到服务器手动构建,发现在npm install的时候耗时很长,而且总是会自动被kill掉,一直不明白是什么原因,去找node和npm版本的问题也一无所获,后来想到我们鸡肋的测试服(1G1CPU1M,当然生产服也差不多),可能是因为资源不足导致的进程被kill

npm 打印

top统计

可以看到cpu使用率几乎100% 输入图片说明

在执行npm install是明显看到cpu执行上升 输入图片说明

处理

由于代码在本地打包的时候没有任何问题,结合上面的内容,基本上可以说是机器资源不足导致的进程被kill,在这里通常是cpu和n内存,cpu是没法控制了,毕竟老板觉得一台服务器就可以上天了,不过可以通过swap来缓解下内存的问题

swap

###检查swap空间,屁都没得

[node@iZ28tmashffZ ~]$ swapon -s
Filename				Type		Size	Used	Priority
[node@iZ28tmashffZ ~]$

###创建swap分区文件

[node@iZ28tmashffZ var]$ sudo dd if=/dev/zero of=swapfile bs=1024 count=1048576
[sudo] password for node: 

1048576+0 records in
1048576+0 records out
1073741824 bytes (1.1 GB) copied, 20.2998 s, 52.9 MB/s

注意:由于我是在var目录下,而且目标文件没有加路径,所以上面的命令和下面是等价的。上面的命令大体意思是,/dev/zero是一个输入设备源源不断输出0来初始化/var/swapfile文件,设置读写缓存块大小,每个block是1024b=1K,初始化10241024个(通常情况下linux下的1G=10001024),结果是初始化了一个大小为1G的文件(/dev/zero是源,/dev/null是黑洞)

sudo dd if=/dev/zero of=/var/swapfile bs=1024 count=1048576

###格式化新建的SWAP分区

[node@iZ28tmashffZ var]$ sudo mkswap /var/swapfile
mkswap: /var/swapfile: warning: don't erase bootbits sectors
        on whole disk. Use -f to force.
Setting up swapspace version 1, size = 1048572 KiB
no label, UUID=84f6cb67-bfdd-4b77-9223-c8f8990ed052

###将swap文件变成swap分区

[node@iZ28tmashffZ var]$ sudo swapon /var/swapfile
[node@iZ28tmashffZ var]$ swapon -s
Filename				Type		Size	Used	Priority
/var/swapfile                           file		1048572	0	-1

###最后发现的确是内存的原因 输入图片说明

转载于:https://my.oschina.net/u/1249401/blog/807001

C:\Users\liuchaokun\AppData\Roaming\npm └── cnpm@9.4.0 PS D:\前端\苍穹外卖\前端源码\苍穹外卖前端源码\project-sky-admin-vue-ts> cnpm install \ [16/52] Installing q@^1.1.2 WARN node unsupported "node@v16.17.0" is incompatible with @vue/cli-plugin-eslint@3.12.1 › globby@9.2.0 › @types/| [18/52] Installing follow-redirects@^1.0.0 WARN node unsupported "node@v16.17.0" is incompatible with @vue/cli-plugin-eslint@3.12.1 › globby@9.2.0 › @types/| [18/52] Installing eslint@^6.2.2 [npminstall:runscript:error] fibers@^4.0.2 run install node build.js || nodejs build.js error: Error: Command failed with exit code 1: node build.js || nodejs build.js at makeError (C:\Users\liuchaokun\AppData\Roaming\npm\node_modules\cnpm\node_modules\execa\lib\error.js:60:11) at handlePromise (C:\Users\liuchaokun\AppData\Roaming\npm\node_modules\cnpm\node_modules\execa\index.js:118:26) at runMicrotasks (<anonymous>) at processTicksAndRejections (node:internal/process/task_queues:96:5) at async Object.exports.runScript (C:\Users\liuchaokun\AppData\Roaming\npm\node_modules\cnpm\node_modules\npminstall\lib\utils.js:261:12) at async runLifecycleScripts (C:\Users\liuchaokun\AppData\Roaming\npm\node_modules\cnpm\node_modules\npminstall\lib\lifecycle_scripts.js:66:7) at async _install (C:\Users\liuchaokun\AppData\Roaming\npm\node_modules\cnpm\node_modules\npminstall\lib\install_package.js:321:5) at async install (C:\Users\liuchaokun\AppData\Roaming\npm\node_modules\cnpm\node_modules\npminstall\lib\install_package.js:23:12) at async _installOne (C:\Users\liuchaokun\AppData\Roaming\npm\node_modules\cnpm\node_modules\npminstall\lib\local_install.js:215:15) at async mapper (C:\Users\liuchaokun\AppData\Roaming\npm\node_modules\cnpm\node_modules\npminstall\lib\local_install.js:140:5) { shortMessage: 'Command failed with exit code 1: node build.js || nodejs build.js', command: 'node build.js || nodejs build.js', escapedCommand: 'node build.js "||" nodejs build.js', exitCode: 1, signal: undefined, signalDescription: undefined, stdout: undefined, stderr: undefined, failed: true, timedOut: false, isCanceled: false, killed: false × Install fail! Error: run install error, please remove node_modules before retry! Command failed with exit code 1: node build.js || nodejs build.js Error: Command failed with exit code 1: node build.js || nodejs build.js at makeError (C:\Users\liuchaokun\AppData\Roaming\npm\node_modules\cnpm\node_modules\execa\lib\error.js:60:11) at handlePromise (C:\Users\liuchaokun\AppData\Roaming\npm\node_modules\cnpm\node_modules\execa\index.js:118:26) at runMicrotasks (<anonymous>) at processTicksAndRejections (node:internal/process/task_queues:96:5) at async Object.exports.runScript (C:\Users\liuchaokun\AppData\Roaming\npm\node_modules\cnpm\node_modules\npminstall\lib\utils.js:261:12) at async runLifecycleScripts (C:\Users\liuchaokun\AppData\Roaming\npm\node_modules\cnpm\node_modules\npminstall\lib\lifecycle_scripts.js:66:7) at async _install (C:\Users\liuchaokun\AppData\Roaming\npm\node_modules\cnpm\node_modules\npminstall\lib\install_package.js:321:5) at async install (C:\Users\liuchaokun\AppData\Roaming\npm\node_modules\cnpm\node_modules\npminstall\lib\install_package.js:23:12) at async _installOne (C:\Users\liuchaokun\AppData\Roaming\npm\node_modules\cnpm\node_modules\npminstall\lib\local_install.js:215:15) at async mapper (C:\Users\liuchaokun\AppData\Roaming\npm\node_modules\cnpm\node_modules\npminstall\lib\local_install.js:140:5) npminstall version: 7.12.0 npminstall argv: D:\My Software\nodejsv16\node.exe C:\Users\liuchaokun\AppData\Roaming\npm\node_modules\cnpm\node_modules\npminstall\bin\install.js --fix-bug-versions --china --userconfig=C:\Users\liuchaokun\.cnpmrc --disturl=https://cdn.npmmirror.com/binaries/node --registry=https://registry.npmmirror.com
07-30
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值