昨天在測試服自動化部署前端代碼時,老是失敗,而後進到服務器手動構建,發如今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
###最後發現的確是內存的緣由 進程