天天看點

@linux 擴容|縮容 (增加與減小swap分區)

文章目錄

  • ​​swap分區增加​​
  • ​​1.swap的概述​​
  • ​​2.swap增加​​
  • ​​1)檢視目前linux主機swap​​
  • ​​2)增加swap分區​​
  • ​​3)swap永久設定​​
  • ​​4)修改swap空間的swappiness​​
  • ​​3.swap性能優化​​
  • ​​1)檢視swap​​
  • ​​2)關閉swap​​
  • ​​3)swap分區縮容​​
  • ​​4.閑置空間利用​​

swap分區增加

1.swap的概述

根據Redhat公司的建議,Linux系統swap分區最适合的大小是實體記憶體的1-2倍.不過Linux上有些軟體對swap分區得需求較大;

例如要順利執行Oracle資料庫軟體,swap分區至少需要400MB或者實體記憶體2倍以上的空間.當然我們在安裝Linux的時候,就能直接講swap分區設定到足夠的大小,但如果已經安裝好Linux了,之後又想再安裝類似Oracle的軟體,卻發現swap分區空間不夠,該如何處理?

針對此種情況,有兩種解決方法:一是建立新的swap分區;另一則是建立swap檔案. 這裡暫時對建立swap檔案做說明 建立swap檔案如果你的硬碟空間已經全部配置設定給其他分區,也沒有多餘的預算新添購硬碟,我們可以利用swap檔案的方式增加虛拟的swap空間,不過執行性能會較實際的swap分區差

2.swap增加

1)檢視目前linux主機swap

[root@server ~]# free -h
              total        used        free      

2)增加swap分區

如上所示,目前swap分區的大小為0,假如需要增加1024M的大小。

判定新交換檔案的大小,将大小乘以1024來判定塊的大小。

例如,大小為64MB的交換檔案的塊大小為65536,在 shell 提示下以根使用者身份鍵入以下指令,其中的 count 等于想要的塊大小

1》#擷取1G空間塊
[root@server ~]# dd if=/dev/zero of=/home/swap bs=1M count=1024
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 13.303 s, 80.7 MB/s


2》#格式化交換檔案,将swap檔案格式化成檔案系統,系統才能使用
[root@server ~]# mkswap  /home/swap
Setting up swapspace version 1, size = 1048572 KiB
no label, UUID=72347e52-cd4a-43da-ad5d-e9d303641b4d


3》#啟動交換分區檔案(立即使用)
[root@server ~]# swapon  /home/swap
swapon: /home/swap: insecure permissions 0644, 0600 suggested.
#要停止使用新建立的swap檔案,隻要執行 swapoff/home/swap指令即可



4》#檢視目前swap
[root@server ~]# free -h
              total        used        free      

3)swap永久設定

系統再次啟動時,自動啟用剛增加的swap,可編輯/etc/fstab檔案
#添加至fstab
[root@server ~]# vim  /etc/fstab      

4)修改swap空間的swappiness

【降低對硬碟的緩存】

linux 會使用硬碟的一部分做為SWAP分區;

用來進行程序排程–程序是正在運作的程式–把目前不用的程序調成‘等待(standby)‘,甚至‘睡眠(sleep)’,一旦要用,再調成‘活動(active)’,

睡眠的程序就躺到SWAP分區睡大覺,把記憶體空出來讓給‘活動’的程序,進而減小記憶體消耗,系統運作卡頓

當記憶體夠大,系統應不必太多的使用swap分區, 我們可以通過修改 swappiness 的數值,控制swap使用頻率。

swappiness=0的時候表示最大限度使用實體記憶體,然後才是 swap空間,

swappiness=100的時候表示積極的使用swap分區,并且把記憶體上的資料及時的搬運到swap空間裡面。

在Center os裡面,預設設定swappiness這個值等于30

1》#檢視你的系統裡面的swappiness
[root@server ~]# cat /proc/sys/vm/swappiness
30



2》#臨時修改swappiness
這隻是臨時性的修改,重新開機後會恢複預設30
[root@server ~]# sysctl vm.swappiness=10


3》#永久修改生效
[root@server ~]# echo 'vm.swappiness=10' >> /etc/sysctl.conf
或者
[root@server ~]# vim /etc/sysctl.conf
vm.swappiness=10      

3.swap性能優化

1)檢視swap

#使用df -h和fdisk - l指令檢視一下目前分區情況,直接使用free檢視
[root@server ~]# free -h
              total        used        free      

2)關閉swap

1》直接使用swapoff關閉
[root@server ~]#  swapoff -a
2》#使用swapoff指定路徑關閉
[root@server ~]#  swapoff  /dev/....
3》#檢視目前swap狀态
[root@server ~]#  free -m      

3)swap分區縮容

1》#使用lvreduce指令把swap分區減小512M
 lvreduce -L -512M  swap路徑
[root@server ~]#  lvreduce -L -512M /dev/mapper/vg_"hostname"-lv_swap
輸入y,确定,看到提示swap減小了4GB。

2》#重新把/dev/mapper/vg_"hostname"-lv_swap設定為swap分區:
[root@server ~]#  mkswap /dev/mapper/vg_"hostname"-lv_swap


3》#swapon開啟swap分區:
[root@server ~]#  swapon /dev/mapper/vg_"hostname"-lv_swap


4》#檢視目前swap狀态
[root@server ~]#  free      

4.閑置空間利用

1》#檢視閑置空間,把多餘的挂載到/root目錄或者 / 目錄
[root@server ~]#  vgdisplay
顯示空閑的磁盤

2》#重新擴容到别的目錄
[root@server ~]#  lvextend -L +4G /dev/mapper/VolGroup-lv_root


3》#激活使用
[root@server ~]#  resize2fs -p /dev/mapper/VolGroup-lv_root

4》#檢視目前的大小
[root@server ~]#  df -h


5》#調整swap分區親和性
[root@server ~]#  echo 'vm.swappiness=10' >> /etc/sysctl.conf      

繼續閱讀