文章目錄
- 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