關於CentOS7下swap分區創建(添加),刪除以及相關配置

版權說明 : 《關於CentOS7下swap分區創建(添加),刪除以及相關配置於當前CSDN博客乘月網屬同一原創,轉載請說明出處,謝謝。


         小叨下背景:筆者的服務器內存只有1g,少得可憐。之前使用apache,不堪忍受其過量的內存消耗,網站卡得想哭,數據庫也不斷地崩,無奈投入nginx的懷抱並且已經喜歡上了nginx,具體請看上文《CentOS7部署輕量級web服務器nginx+php》

         然而過了幾個月後數據庫還是繼續崩,經查詢mysql日誌還是因爲內存吃不消,折騰幾番發現mysql自身就不是省油的燈,一度佔用了500M的內存------我捂住嘴巴不讓自己哭出來,還順便來了段Bbox。

        這兩天我那誰一直在折騰RedHat安裝Oracle數據,該數據庫有一項要求就是需要一定空間的swap分區。雖然早有耳聞swap分區,而且筆者經常折騰windows下的虛擬內存(swap和虛擬內存是類似概念),卻很慚愧一直沒想到這個辦法,於是------進入今天的主題:

在添加swap分區之前我們可以瞭解下當前系統swap是否存在以及使用情況,可用:

free -h 或 swapon -s

瞭解硬盤使用情況(一般/dev/vda1爲掛載硬盤):

df -hal

1.添加swap分區
使用dd命令創建名爲swapfile 的swap交換文件(文件名和目錄任意):
 dd  if=/dev/zero  of=/var/swapfile  bs=1024  count=2097152

 或

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

       科普:if(即輸入文件,input file),of(即輸出文件,output file)。dev/zero是Linux的一種特殊字符設備(輸入設備),可以用來創建一個指定長度用於初始化的空文件,如臨時交換文件,該設備無窮盡地提供0,可以提供任何你需要的數目。 bs=1024  :單位數據塊(block)同時讀入/輸出的塊字節大小爲1024  個字節即1KB,bs(即block size)。count=2048000  :數據塊(block)數量爲2048000 ,即2048000個1KB。可以計算swap分區的容量爲:1KB *2097152=1KB *1024(k)*1024*2=2097152=2G。(dd命令裏的單位M表示1024*1024,k表示1024)。

        回車後,會執行2g的讀寫操作,系統會卡一段時間,耐心等待執行結果。

執行完畢,對交換文件格式化並轉換爲swap分區:

mkswap  /var/swapfile
掛載並激活分區:
swapon   /var/swapfile
執行以上命令可能會出現:“不安全的權限 0644,建議使用 0600”類似提示,不要緊張,實際上已經激活了,可以忽略提示,也可以聽從系統的建議修改下權限:
chmod -R 0600 /var/swapfile

這時候可以用 free -h 或 swapon -s命令查看新swap分區是否正常添加並激活使用。

修改 fstab 配置,設置開機自動掛載該分區:
 vim    /etc/fstab
在fstab文件末尾追加如下內容後:wq!保存即可:
/var/swapfile   swap  swap  defaults  0  0
或直接對fstab進行echo追加:
echo  "/var/swapfile   swap  swap  defaults  0  0" >>  /etc/fstab

2.刪除某swap分區

先停止正在使用swap分區:
swapoff  /var/swapfile
刪除swap分區文件
rm -rf   /var/swapfile
刪除或註釋掉我們之前在fstab文件裏追加的開機自動掛載配置內容:
/var/swapfile   swap  swap  defaults  0  0

3.更改Swap配置(進階級)
        swappiness值(0-100),系統對swap分區的依賴程度,越高則越傾向於使用swap分區。
        當然,高度依賴swap會造成物理內存遠未使用完,就使用swap分區,我們知道swap分區性能遠不如物理內存,這反而降低了系統性能,違背了我們創建swap分區的初衷。
         我們希望在物理內存即將滿荷時再使用swap,這就決定了swappiness值一般爲10-60爲宜,固態硬盤可以偏高些。
查看當前的swappiness數值:
cat   /proc/sys/vm/swappiness 
修改swappiness值,這裏以50爲例。
sysctl vm.swappiness=50 
若希望vm.swappiness=50永久生效,則需要修改sysctl配置文件,直接echo追加配置內容,重啓系統後即可生效:
echo "vm.swappiness = 50"  >>  /etc/sysctl.conf
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章