swap的功能與相應內核參數

swap的功能與相應內核參數php

Linux 將物理內存分爲內存段的部分被稱做「頁面」。交換是指內存頁面被複制到預先設定好的硬盤空間(叫作交換空間)的過程,目的是釋放用於頁面的內存。物理內存和交換空間的總大小是可用的虛擬內存的總量。交換空間一般是一個磁盤分區(此分區在安裝操做系統時,系統一般會默認劃分出一段空間用於交換分區,默認將交換空間的大小設定爲內存的1倍到2倍),也能夠是一個文件。linux

內核參數中有一個vm.swappiness參數,此參數表明了內核對於交換空間的喜愛(或厭惡)程度。Swappiness 能夠有 0 到 100 的值,默認的大小一般是60,但也有的是30。設置這個參數爲較低的值會減小內存的交換,從而提高一些系統上的響應度。若是內存較爲充裕,則能夠將vm.swappiness大小設定爲30,若是內存較少,能夠設定爲60。若是將此數值調整的過大,可能損失內存原本能提供的性能,並增長磁盤IO消耗和CPU的消耗。ios

關於阿里云云主機swap功能性能優化

阿里雲提供的雲服務器(Elastic Compute Service,簡稱 ECS),是雲主機的一種,當前採用的虛擬化驅動是Xen(這一點能夠經過bios vendor和virtual type能夠看出)。服務器

默認狀況下,阿里云云主機的swap功能是沒有啓用的,緣由固然是經過取消swap功能能夠下降磁盤IO的佔用率來讓用戶購買更多的內存、提升磁盤壽命和性能。app

阿里當前的作法是:性能

1.不建立swap分區,由鏡像決定優化

2.將vm.swappiness設定爲0,即永不使用swap分區阿里雲

啓用swap分區,確實能夠下降內存的使用壓力,但並非長久之計,若是雲主機上運行的應用確實須要較高的內存,建議仍是購買更多的內存。spa

如何啓用swap分區?

步驟以下:

1.查看當前系統中是否已經啓用swap分區

1 2 cat /proc/swaps
top 2.若是沒有啓用swap分區功能,則新建一個專門的文件用於swap分區

1 dd if=/dev/zero of=/data/swap bs=512 count=8388616 注:此文件的大小是count的大小乘以bs大小,上面命令的大小是4294971392,即4GB

3.經過mkswap命令將上面新建出的文件作成swap分區

1 mkswap /data/swap 4.查看內核參數vm.swappiness中的數值是否爲0,若是爲0則根據實際須要調整成30或者60

1 2 3 cat /proc/sys/vm/swappiness
sysctl -a | grep swappiness
sysctl -w vm.swappiness=60 注:若想永久修改,則編輯/etc/sysctl.conf文件

5.啓用此交換分區的交換功能

1 2 swapon /data/swap
echo "/data/swap swap swap defaults 0 0" >> /etc/fstab 如何關閉swap分區?

1 2 swapoff /data/swap
swapoff -a >/dev/null 關於多個交換分區在使用上的優先級
若是你有多於一個交換文件或交換分區,你能夠給它們各自分配一個優先級值(0 到 32767)。系統會在使用較低優先級的交換區域前優先使用較高優先級的交換區域。例如,若是你有一個較快的磁盤 (/dev/sda) 和一個較慢的磁盤 (/dev/sdb),給較快的設備分配一個更高的優先級。優先級能夠在 fstab 中經過 pri 參數指定:

1 2 /dev/sda1 none swap defaults,pri=100 0 0
/dev/sdb2 none swap defaults,pri=10 0 0 或者經過 swapon 的 ?p (或者 ??priority) 參數:

1 swapon -p 100 /dev/sda1 若是兩個或更多的區域有一樣的優先級,而且它們都是可用的最高優先級,頁面會按照循環的方式在它們之間分配。

添加效果

PS: 原先對阿里雲主機添加swap分區是否起做用表示質疑,如今看來,阿里在雲主機中確實沒作這方面的手腳。

image

注:關於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

雲服務器 ECS https://www.aliyun.com/product/ecs

tag:Linux swap,阿里雲添加swap交換空間,swap性能優化,雲主機性能優化,雲服務器性能優化

--end--

相關文章
相關標籤/搜索