前段時間上車了騰訊云 360 買三年多的學生機的活動,加上降配總共獲得 6 年,然而內存降到 1G 后,跑個 mysql 時間長了內存都不夠。而且騰訊云的 ubuntu 不知道什么原因 1G 內存實際只有 800+M,更加雪上加霜。
終于前兩天服務器由于內存爆了而又沒有開 swap 崩了,幾乎死機狀態,ssh 都連不上,控制臺強制重啟才恢復正常。為了防止再次出現這種情況,我就給服務器加了個 swap。
參考文檔: https://askubuntu.com/questions/33697/how-do-i-add-a-swap-partition-after-system-installation/796997#796997
首先來了解一下什么是Swap
Swap分區(也稱交換分區)是硬盤上的一個區域,被指定為操作系統可以臨時存儲數據的地方,這些數據不能再保存在RAM中。 基本上,這使您能夠增加服務器在工作“內存”中保留的信息量,但有一些注意事項,主要是當RAM中沒有足夠的空間容納正在使用的應用程序數據時,將使用硬盤驅動器上的交換空間。
寫入磁盤的信息將比保存在RAM中的信息慢得多,但是操作系統更愿意將應用程序數據保存在內存中,并使用交換舊數據。 總的來說,當系統的RAM耗盡時,將交換空間作為回落空間可能是一個很好的安全網,可防止非SSD存儲系統出現內存不足的情況。
具體步驟和命令如下:
# 創建一個空文件,具體大小的話對于小內存機器建議為內存的兩倍 (例子中 1K * 4M = 4 GiB).
sudo mkdir -v /var/cache/swap
cd /var/cache/swap
sudo dd if=/dev/zero of=swapfile bs=1K count=4M
sudo chmod 600 swapfile
# 將新建的文件轉換為 swap 文件.
sudo mkswap swapfile
# 開啟 swap.
sudo swapon swapfile
# 通過 swapon 或者 top 命令進行驗證:
swapon -s
# 或者
top -bn1 | grep -i swap
# 會顯示類似信息: KiB Swap: 4194300 total, 4194300 free
# 禁用 swap 時可以使用 sudo swapoff swapfile.
# 將該分區設置成開機加載.
echo "/var/cache/swap/swapfile none swap sw 0 0" | sudo tee -a /etc/fstab
# 測試開機加載:
sudo swapoff swapfile
sudo swapon -va
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。