CentOS7 配置交換分區SWAP

安裝系統時,咱們每每會在磁盤分區時,爲交換分區單獨分出一起位置,但當系統安裝完成後,咱們經過固定的文件位置在配置交換分區。git

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

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

[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

必定要確保 / 掛載點下有足夠的空間(剩餘的空間遠大於你要設置的交換空間大小)才能夠配置交換空間。gitlab

查看交換分區

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

會獲得下面的輸出:spa

[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)。code

也能夠經過 fallocate 命令建立分區文件:內存

sudo fallocate -l 8G /var/swapfile

最後檢查分區文件大小:input

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

轉換分區格式

mkswap  /var/swapfile

會獲得如下輸出:it

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文件裏的交換分區掛載移除掉

相關文章
相關標籤/搜索