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