如何在CentOS中添加Swap?CentOS添加交換分區的教程

來源:互聯網
上載者:User

使用 DigitalOcean 有很長一段時間了,前幾天在編譯 PHP 的時候出現了進程被 killed 的狀況,經過我的吐槽以及和別人交流後發現,是記憶體耗盡的緣故。其實是因為當時開著 MySQL 進程消耗了不少記憶體,後來覺得有必要手動添加一下 Swap(交換分區),這樣以免以後再編譯什麼的時候進程被K 。
  關於 Linux 中 Swap(交換分區),類似於 Windows 的虛擬記憶體,就是當記憶體不足的時候,把一部分硬碟空間虛擬成記憶體使用量,從而解決記憶體容量不足的情況。
  那麼如何在 CentOS 中手動添加 Swap 呢?www.111cn.net

1、檢查 Swap 空間
在設定 Swap 檔案之前,有必要先檢查一下系統裡有沒有既存的 Swap 檔案。
運行以下命令:

swapon -s

如果返回的資訊概要是空的,則表示 Swap 檔案不存在。

2、檢查檔案系統
在設定 Swap 檔案之前,同樣有必要檢查一下檔案系統,看看是否有足夠的硬碟空間來設定 Swap 。運行以下命令:

df -hal

檢查返回的資訊,還剩餘足夠的硬碟空間即可。

3、建立並允許 Swap 檔案
下面使用 dd 命令來建立 Swap 檔案。

dd if=/dev/zero of=/swapfile bs=1024 count=512k

參數解讀:
if=檔案名稱:輸入檔案名稱,預設為標準輸入。即指定源檔案。< if=input file >
of=檔案名稱:輸出檔案名,預設為標準輸出。即指定目的檔案。< of=output file >
bs=bytes:同時設定讀入/輸出的塊大小為bytes個位元組
count=blocks:僅拷貝blocks個塊,塊大小等於bs指定的位元組數。

4、格式化並啟用 Swap 檔案
上面已經建立好 Swap 檔案,還需要格式化後才能使用。運行命令:

mkswap /swapfile

啟用 Swap ,運行命令:

swapon /swapfile

以上步驟做完,再次運行命令:

swapon -s

你會發現返回的資訊概要:

Filename                Type        Size    Used    Priority
/swapfile               file        524284    0     -1

如果要機器重啟的時候自動掛載 Swap ,那麼還需要修改 fstab 配置。
用 vim 開啟 /etc/fstab 檔案,在其最後添加如下一行:

/swapfile          swap            swap    defaults        0 0

最後,賦予 Swap 檔案適當的許可權:

chown root:root /swapfile
chmod 0600 /swapfile

同時,我們還可以修改 Linux Swap 空間的 swappiness ,降低對硬碟的緩衝。
Linux 會使用硬碟的一部分做為 Swap 分區,用來進行進程調度–進程是正在啟動並執行程式–把當前不用的進程調成‘等待(standby)’,甚至‘睡眠(sleep)’,一旦要用,再調成‘活動(active)’,睡眠的進程就會在 Swap 分區,把記憶體空出來讓給‘活動’的進程。www.111cn.net
如果記憶體夠大,應當告訴 Linux 不必太多的使用 Swap 分區,可以通過修改 swappiness 的參數來設定。swappiness=0 的時候表示最大限度使用實體記憶體,然後才是 Swap 空間,swappiness=100 的時候表示積極的使用 Swap 分區,並且把記憶體上的資料及時的搬運到 Swap 空間裡面。
在 CentOS 中,swappiness 的預設值是60。
通過以下命令可以看到:

cat /proc/sys/vm/swappiness

傳回值60

我們可以調整 swappiness 的值到一個合適的參數,從而達到最佳化使用 Swap 的目的。這裡我們將其設為10。
使用 sysctl 命令:

sysctl vm.swappiness=10

但是這隻是臨時性的修改,在你重啟系統後會恢複預設的60,要永久設定,還需要在 vim 中修改sysctl.conf:

vi /etc/sysctl.conf

在這個文檔的最後加上這樣一行:

# Search for the vm.swappiness setting.  Uncomment and change it as necessary.
vm.swappiness=10

輸入:x,儲存退出 vim 。

這樣一來,Swap 分區重啟後都會生效了。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.