昨天在测试服自动化部署前端代码时,老是失败,而后进到服务器手动构建,发如今npm install
的时候耗时很长,并且老是会自动被kill掉,一直不明白是什么缘由,去找node和npm版本的问题也一无所得,后来想到咱们鸡肋的测试服(1G1CPU1M,固然生产服也差很少),多是由于资源不足致使的进程被kill前端
能够看到cpu使用率几乎100% node
在执行npm install是明显看到cpu执行上升 linux
因为代码在本地打包的时候没有任何问题,结合上面的内容,基本上能够说是机器资源不足致使的进程被kill,在这里一般是cpu和n内存,cpu是无法控制了,毕竟老板以为一台服务器就能够上天了,不过能够经过swap来缓解下内存的问题npm
###检查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分区spa
[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分区code
[node@iZ28tmashffZ var]$ sudo swapon /var/swapfile [node@iZ28tmashffZ var]$ swapon -s Filename Type Size Used Priority /var/swapfile file 1048572 0 -1
###最后发现的确是内存的缘由 进程