『學了就忘』Linux文件系統管理 — 62、手動分配swap分區

1、查看swap分區情況

swap分區就相當於是記憶體的一個緩衝區,如果記憶體被佔滿,可以用swap分區代替記憶體使用,用來提升Linux系統性能。

如果在實際的伺服器上,分配的swap分區不夠用了,需要擴大swap分區,我們是可以不重新安裝作業系統的,那樣很麻煩,swap分區是支援手動擴展的。

一般通過free命令來查看記憶體的使用情況。

如下圖所示:

image

上圖中,前兩行是記憶體的使用情況,說明如下:

  • total :總記憶體數。
  • used :使用的記憶體。
  • free :空閑內容。
  • buffers :緩衝。加速硬碟的寫入速度。
  • cached :快取。加速硬碟的讀取速度。

swap分區內核直接調用,用戶是干預不了的。但是系統會按照系統的實際需求,自動分配bufferscached的大小。

說明:

  • buffers緩衝,指的是當我們把記憶體中的數據存入硬碟的時候,內核可以把分散的寫集中起來,統一優化磁碟的寫入,比如可以把多次小的寫合併成單次大的寫等等。
  • cached快取,指的是從磁碟讀取文件的時候,用來存儲一些從硬碟讀取的數據。這樣,下次訪問這些文件數據時,就可以直接從記憶體中快速獲取,而不需要再次訪問緩慢的硬碟。

例如:-/+ buffers/cache:125M 862M的意思。

image

如上圖,used的記憶體使用是192MB,這192MB包括bufferscached的空間和實際使用的記憶體空間,除去bufferscached的空間,就是125MB左右的真實記憶體佔用空間。而free列則是空閑記憶體為795MB,實際的空閑記憶體為795MB加上bufferscached的空間,實際空閑記憶體為862MB。

2、手動修改swap分區

增加swap分區的前提,還有得有個空白的硬碟空間。(虛擬機添加新硬碟如請看fdisk命令進行手動分區文章中有講)

(1)查看sdb硬碟分區情況。

如下圖所示:

image

(2)結果是沒有任何分區,下面開始進行分區。

如下圖所示:

image

上圖執行的是:

  • 創建一個分區(n)。
  • 選擇創建主分區(p)。
  • 分區編號為1。
  • 從頭開始劃分空間。
  • 劃分1GB大小的空間。

再次查看sdb分區情況,如下圖所示:

image

此時出現了sdb1分區,但是分區的系統ID編號是83,也就是Linux系統的標準分區。而我們知道swap分區的ID號是82,所以我們需要修改sdb1分區的ID號為82。(fdisk交互指令請看fdisk命令進行手工分區文章中有講)

(3)修改分區的系統ID號。

如下圖所示:

image

上圖的執行操作為:修改分區的系統ID(t);輸入分區號,給哪個分區修改,因為我們sdb硬碟上只有一個分區,就默認選擇了,如果有多個分區,需要你輸入要修改的分區號;最後要把該分區的分區號改為82(swap分區的系統ID號)。

再次查看sdb分區情況,如下圖所示:

image

我們可以看到sdb1的分區變成了swap分區,系統ID號為了82。

(4)最後我們就可以保存退出了。

如下圖所示:

image

注意:最後的提示,並沒有需要我們對系統進行重啟。

3、格式化swap分區

我們需要把上邊的sdb1分區,格式化成swap分區的文件系統,(而不是普通分區用mkfs命令格式化成ext4文件系統)。

swap分區是需要Linux系統內核直接訪問的,所以swap分區的格式化命令為mkswap

執行命令:[root@localhost ~]# mkswap /dev/sdb1

結果如下圖:

image

4、使用swap分區

在使用swap分區之前,我們先來執行free命令看看記憶體的使用情況,命令如下:

image

發現swap分區還是和之前的大小一樣。現在我們還需要通過swapon命令,把sdb1swap分區載入進系統。

執行命令:[root@localhost ~]# swapon /dev/sdb1

再次查看swap分區的情況,變成了1.5GB。

image

注意:執行:[root@localhost ~]# swapon /dev/sdb1,是臨時生效的,如果重啟啟動系統,還需要再次執行。如果想要永久生效,需要配置下面的自動掛載。

5、配置swap分區開機之後自動掛載

手動分配swap分區的最後一步,就是配置swap分區的自動掛載。

編輯/etc/fstab配置文件。

#設備文件名  掛載點  文件系統  掛載許可權選項  備份許可權  檢查磁碟許可權
/dev/sdb1   swap    swap     defaults       0          0

注意:掛載點不要寫成/swapswap分區是單獨的分區,單獨的文件類型。設備文件名最好寫成UUID,最後兩個選項要寫成00