為Linux主機新增swap分割槽
為Linux主機增加swap分割槽
Digital Ocean根底配置(512MB記憶體,20G氣態硬碟,每月1TB流量)才5刀/月的價錢讓人想對抗都難。但是512MB的記憶體用起來仍是有點煩亂的,今日用free -h
檢視記憶體使用情況時,發現竟然沒有swap分割槽。不曉得DigitalOcean是甚麼企圖(–__–)。
SWAP分割槽
當系統的實體記憶體不夠用的時候,就需要將實體記憶體中的一有些當空釋放出來,以供當前執行的程式使用。那些被釋放的當空可能來自一些很長時間沒有甚麼操作的程式,這些被釋放的當空被臨時save到Swap當空中,等到那些程式要執行時,再從Swap中回覆save的資料到記憶體中。系統老是在實體記憶體不夠時,才進行Swap對換。根底配置的雲主機啟用Swap當空能有效進步主機的效能。
swap分割槽鉅細
實戰上,咱們更關注的應當是SWAP分割槽的鉅細問題。 設定多大才是最優的。
普通來講可以根據如次規則設定swap鉅細:
4G裡邊的實體記憶體,SWAP 設定為記憶體的2倍。 4-8G的實體記憶體,SWAP 即是記憶體鉅細。 8-64G 的實體記憶體,SWAP 設定為8G。 64-256G實體記憶體,SWAP 設定為16G。
實戰上,系統中對換分割槽的鉅細並不取決於實體記憶體的量,而是取決於系統中記憶體的負荷,因而在部署系統時要依據詳細的事情來設定SWAP的值。這裡咱們設定swap分割槽鉅細為1GB。
啟用swap分割槽
檢查能否曾經適用了Swap當空
open終端,輸入
swapon -s
如果沒有任何的資訊返回,那就是還沒有
啟用Swap當空
檢查檔案系統
曉得咱們還沒有啟動Swap當空後,咱們再檢查一下咱們的硬碟還剩下好多當空可以使用,使用df
command檢視。在本例中,咱們將建立一個1GB鉅細的Swap當空檔案。
建立並使用Swap當空檔案
-
建立swap檔案
dd if=/dev/zero of=/swapfile bs=1024 count=1M
-
格式化swap分割槽
mkswap /swapfile
-
啟用swap分割槽
swapon /swapfile
-
查詢swap分割槽
swapon -s
但以上的設定是一次性的,reboot後將失效。想要確保系統永遠的啟用Swap對換當空,可以通過修改fstab檔案。
vim /etc/fstab 在最後一行增加上上面一條: /swapfile swap swap defaults 0 0
增加成功後給swap付與相關許可權:
chown root:root /swapfile chmod 0600 /swapfile
配置swappiness
實戰上,並不是等一切的實體記憶體都消費終了以後,才去使用swap的當空,甚麼時候使用是由swappiness 引數值控制。
`cat /proc/sys/vm/swappiness`
原始值是60.
swappiness=0 的時候表現最大限度使用實體記憶體,然後才是 swap當空,
swappiness=100 的時候表現主動的使用swap分割槽,而且把記憶體上的資料及時的搬運到swap當空內裡。
臨時性修正
sysctl vm.swappiness=10 cat /proc/sys/vm/swappiness
這裡咱們的修正曾經見效,只是如果咱們reboot了系統,又會變成60.
永遠修正
在/etc/sysctl.conf
檔案裡增加如次引數:
vm.swappiness=10
save,reboot。
希望以上的文章對各位有用,如果覺得不錯給我頂一下吧!更多和為Linux主機新增swap分割槽相關的問題或者對虛擬美國主機有疑惑也歡迎大家諮詢。