此方法不限於centos,linux均適用
最近在服務器上部署了一個java項目,java進程經常性莫名被自動Kill,首先java程序是沒有報錯的,那么我想可能是內存不足的原因,因為4G內存的服務上部署了gitlib,mysql,redis這些服務
1.先查看一下自己的服務器swap大小,命令:free -h
可以看到swap大小只有511M
2.使用 cd /user 進入/urs文件夾,新建一個名叫swap的文件夾,使用ll命令可以看到多了一個swap的文件夾
3.下一步使用 cd /swap 進入swap文件夾,創建swap文件
創建swap文件命令:dd if=/dev/zero of=swapfile bs=100M count=50
這條命令從硬盤里分出一個100M ×50 = 5G 大小的空間,掛在swapfile上
注意:這里我們bs(buff size)給的100M, bs大小可以根據free -h命令查看的buff/cache的大小來決定,如果給大了可能會報dd: memory exhausted by input buffer of size 1073741824 bytes (1.0 GiB)
稍等一會swap文件創建完成之后使用命令:ll -h 查看
4.swapfile文件創建后,需要構建swap格式於/usr/swap/swapfile 上
命令為:mkswap /usr/swap/swapfile
5.用命令激活swap,立即啟用交換分區文件
命令為:swapon /usr/swap/swapfile
但是這樣的設置重啟后就失效了,為了保證每次啟動都能啟用該交換空間,需要手動編輯文件/etc/fstab中的swap行
命令為:vim /etc/fstab
將/swap none swap sw 0 0 這行注釋掉
新增一行 /usr/swap/swapfile swap swap defaults 0 0
結語:對swap進行了擴容之后,目測java程序已經運行了一個星期沒掛了,看來對swap進行擴容還是很有必要的!!!