CentOS7 配置交換分區SWAP 頂 原

安裝系統時,我們往往會在磁盤分區時,爲交換分區單獨分出一塊兒位置,但當系統安裝完成後,我們通過固定的文件位置在配置交換分區。

在配置交換分區前,請確定你放置交換分區的磁盤有足夠的空間。

本篇文章將交換分區文件放在 /var 下,/var/ 掛載點下,所以我們檢查 / 掛載磁盤的空間:

[dingdayu@gitlab-repo var]$ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/vda1        40G   17G   21G  46% /
devtmpfs        3.9G     0  3.9G   0% /dev
tmpfs           3.9G     0  3.9G   0% /dev/shm
tmpfs           3.9G  556K  3.9G   1% /run
tmpfs           3.9G     0  3.9G   0% /sys/fs/cgroup

一定要確保 / 掛載點下有足夠的空間(剩餘的空間遠大於你要設置的交換空間大小)纔可以配置交換空間。

查看交換分區

free –h 或 swapon –s

會得到下面的輸出:

[dingdayu@gitlab-repo var]$ free -h
              total        used        free      shared  buff/cache   available
Mem:           7.6G        4.4G        132M         17M        3.1G        2.9G
Swap:          8.0G          0B        8.0G

設置交換分區

生成交換分區文件

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

會得到下面的輸出:

[dingdayu@gitlab-repo var]$ sudo dd  if=/dev/zero  of=/var/swapfile  bs=1024  count=8192k
8388608+0 records in
8388608+0 records out
8589934592 bytes (8.6 GB) copied, 71.1132 s, 121 MB/s

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)10242=2097152=2G。(dd命令裏的單位M表示1024*1024,k表示1024)。

也可以通過 fallocate 命令創建分區文件:

sudo fallocate -l 8G /var/swapfile

最後檢查分區文件大小:

[dingdayu@gitlab-repo var]$ ls -lh /var/swapfile
-rw------- 1 root root 8.0G Oct 10 19:59 /var/swapfile

轉換分區格式

mkswap  /var/swapfile

會得到以下輸出:

 sudo mkswap  /var/swapfile
Setting up swapspace version 1, size = 8388604 KiB
no label, UUID=abfe4e6c-4474-4a6b-bd96-80292e0e676c

修改分區文件權限

sudo  chmod -R 0600 /var/swapfile

掛載交換分區

swapon   /var/swapfile

上面的掛載會在系統重啓後失效,可通過編輯 /etc/fstab 避免。

將下面的內容,添加到 /etc/fstab 文件中;

/var/swapfile   swap  swap  defaults  0  0

或:

sudo sh -c "echo  '/var/swapfile   swap  swap  defaults  0  0' >>  /etc/fstab"

設置交換分區使用比例

通過下面的命令,查看 swappiness 值:

cat   /proc/sys/vm/swappiness

swappiness值(0-100),系統對swap分區的依賴程度,越高則越傾向於使用swap分區。 當然,高度依賴swap會造成物理內存遠未使用完,就使用swap分區,我們知道swap分區性能遠不如物理內存,這反而降低了系統性能,違背了我們創建swap分區的初衷。 我們希望在物理內存即將滿荷時再使用swap,這就決定了swappiness值一般爲10-60爲宜,固態硬盤可以偏高些。

修改 swappiness

可以通過 sysctl 命令直接修改 vm.swappiness 的值:

sysctl vm.swappiness=50

但是在系統重啓後,依然會丟失設置,所以可以通過編輯 /etc/sysctl.conf 文件實現:

sudo sh -c "echo 'vm.swappiness = 50'  >>  /etc/sysctl.conf"

擴縮容分區大小

擴大或縮小分區大小,採用創建新的分區文件,後掛載到新的分區位置的方式設置,參考 設置交換分區 章節即可。

# 生成新的分區文件
dd if=/dev/zero of=/var/swapfile1 bs=1024 count=2097152
# 格式化分區文件
mkswap /var/swapfile1
# 掛載新的分區文件
swapon /var/swapfile1

刪除SWAP分區

需要先解除分區掛載:

swapoff  /var/swapfile

然後刪除分區文件即可

rm -rf   /var/swapfile

最後記得將 /etc/fstab文件裏的交換分區掛載移除掉

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章