1. 程式人生 > >阿裏雲雲主機添加swap分區與swap性能優化

阿裏雲雲主機添加swap分區與swap性能優化

archlinux file elastic 服務器 bios con 做成 db2 data

1、swap的功能與相應內核參數

Linux 將物理內存分為內存段的部分被稱作“頁面”。交換是指內存頁面被復制到預先設定好的硬盤空間(叫做交換空間)的過程,目的是釋放用於頁面的內存。物理內存和交換空間的總大小是可用的虛擬內存的總量。交換空間通常是一個磁盤分區(此分區在安裝操作系統時,系統通常會默認劃分出一段空間用於交換分區,默認將交換空間的大小設定為內存的1倍到2倍),也可以是一個文件。 內核參數中有一個vm.swappiness參數,此參數代表了內核對於交換空間的喜好(或厭惡)程度。Swappiness 可以有 0 到 100 的值,默認的大小通常是60,但也有的是30。設置這個參數為較低的值會減少內存的交換,從而提升一些系統上的響應度。如果內存較為充裕,則可以將vm.swappiness大小設定為30,如果內存較少,可以設定為60。如果將此數值調整的過大,可能損失內存本來能提供的性能,並增加磁盤IO消耗和CPU的消耗。

2、關於阿裏雲雲主機swap功能

阿裏雲提供的雲服務器(Elastic Compute Service,簡稱 ECS),是雲主機的一種,當前采用的虛擬化驅動是Xen(這一點可以通過bios vendor和virtual type可以看出)。 默認情況下,阿裏雲雲主機的swap功能是沒有啟用的,原因當然是通過取消swap功能可以降低磁盤IO的占用率來讓用戶購買更多的內存、提高磁盤壽命和性能。 阿裏當前的做法是: 1.不創建swap分區,由鏡像決定 2.將vm.swappiness設定為0,即永不使用swap分區 啟用swap分區,確實可以降低內存的使用壓力,但並不是長久之計,如果雲主機上運行的應用確實需要較高的內存,建議還是購買更多的內存。

3、如何啟用swap分區?

步驟如下: 1.查看當前系統中是否已經啟用swap分區
cat /proc/swaps 
Filename                Type        Size    Used    Priority
2.如果沒有啟用swap分區功能,則新建一個專門的文件用於swap分區
dd if=/dev/zero of=/data/swap bs=512 count=8388616
註:此文件的大小是count的大小乘以bs大小,上面命令的大小是4294971392,即4GB 3.通過mkswap命令將上面新建出的文件做成swap分區
mkswap /data/swap
4.查看內核參數vm.swappiness中的數值是否為0,如果為0則根據實際需要調整成30或者60
cat /proc/sys/vm/swappiness   
sysctl 
-a | grep swappiness sysctl -w vm.swappiness=60
註:若想永久修改,則編輯/etc/sysctl.conf文件 5.啟用此交換分區的交換功能
swapon /data/swap   
echo "/data/swap swap swap defaults    0  0" >> /etc/fstab

4、如何關閉swap分區?

swapoff /data/swap   
swapoff -a >/dev/null
關於多個交換分區在使用上的優先級 如果你有多於一個交換文件或交換分區,你可以給它們各自分配一個優先級值(0 到 32767)。系統會在使用較低優先級的交換區域前優先使用較高優先級的交換區域。例如,如果你有一個較快的磁盤 (/dev/sda) 和一個較慢的磁盤 (/dev/sdb),給較快的設備分配一個更高的優先級。優先級可以在 fstab 中通過 pri 參數指定:
/dev/sda1 none swap defaults,pri=100 0 0    
/dev/sdb2 none swap defaults,pri=10  0 0
或者通過 swapon 的 ?p (或者 ??priority) 參數:
swapon -p 100 /dev/sda1
如果兩個或更多的區域有同樣的優先級,並且它們都是可用的最高優先級,頁面會按照循環的方式在它們之間分配。 添加效果 PS: 原先對阿裏雲主機添加swap分區是否起作用表示質疑,現在看來,阿裏在雲主機中確實沒做這方面的手腳。 技術分享 註:關於top命令中的排序:top命令裏面按下f或F,在通過箭頭移動想要顯示或者排序的列,按d表示顯示或取消顯示,按下s表示按此列排序,按下R表示翻轉排序順序。 一些可用的參考資料和擴展閱讀材料: Swap https://wiki.archlinux.org/index.php/Swap All about Linux swap space https://www.linux.com/news/all-about-linux-swap-space

阿裏雲雲主機添加swap分區與swap性能優化