linux中的交換分區(swap)及優化


SWAP(交換內存)

1、什么是交換內存?

在硬盤上創建一塊區域,當你的物理內存快要被用光的時候,內核臨時的

物理內存上的文件數據交換到硬盤上的這段區域上面,當物理內存有閑置的時候

在把交換內存上的數據調回到物理內存上的。可能在大多數時候,你會發現你的

交換內存沒有被用到,為什么我們的系統在安裝的時候強制我們要建立交換內存?

犧牲一定的硬盤空間,給操作系統買份保險!

2、創建交換內存:

   創建的步驟:

1、 創建新分區,並且更改分區標識符號為82.

或者在本機上使用dd命令創建一個虛擬文件。

2、 使用mkswap對指定設備制作交換內存文件系統。

3、 swapon開啟交換內存

(但是非常遺憾,下次啟動機器的時候仍然需要手動使用swapon手動開啟)建議直接寫入到/etc/fstab中

4、 查看free  -m   ,swapon  -s進行查看  

 

分區類型交換內存:速度快、獨立分區

1、fdisk  /dev/sdb

   n     t    82          

#partprobe  /dev/sdb          //重新加載分區表

2、制作swap

 # mkswap  /dev/sdb7          //以sdb7為例

3、/etc/fstab

  /dev/sdb7    swap  swap   defaults  0  0     //永久掛載格式

UUID=XXXXXX   swap  swap  defaults  0  0     //生產環境blkid查看文件系統UUID

# swapon  -a

4、查看:

# free  -m

# swapon  -s

 文件類型的交換內存:相對速度慢、比較靈活

1、創建虛擬文件:

   # dd  if=/dev/zero  of=/tmp/swap-file1  bs=1M  count=N   //N為正整數

2、制作swap文件系統

   # mkswap  /tmp/swap-file1

3、掛載使用/etc/fstab

   /tmp/swap-file1  swap  swap  defaults 0 0

 # swapon  -a

4、查看:

# free  -m

# swapon  -s

 

交換內存的優化及人為干預

交換內存的調優:

 

可調參數:/proc/sys/vm/swappiness

 

當系統非常需要使用內存時,內核會把匿名內存(Anonymous memory)和System V的共享內存(shared memory)交換到磁盤上去,而真正的文件不需要交換到交換內存上去,而是直接寫會到磁盤文件系統上(清掉page cache)。

調低/proc/sys/vm/swappiness時,核心傾向於不交換,主要用於快的響應速度。如:apache

調高/proc/sys/vm/swappiness時,核心傾向於使用交換內存,主要用於繁忙的吞吐量。如:文件服務器

 

內核嘗試去檢查一個參數swap_tendency:

Swap_tendency  < 100,內核會盡量的從page cache中做回收(寫回page cache)

Swap_tendency  >=100,內核會盡量交換匿名內存和共享內存。

Swap_tendency = mapped_ratio/2  + distress + vm_swappiness(swap_tendency計算公式)

● mapped_ration : 物理內存的使用百分比。

 distress : 內核嘗試釋放物理內存的難易程度0-100(page  cache回收的難易程度)。distress悲痛;危難

vm_swappiness:是我們可以通過/proc/sys/vm/swappiness內核參數調節的值。

可以看出我們可以人為的干預交換內存的交換,但無法准確控制因為有distress參數

 

交換內存的優化:

使用多個磁盤做raid0

● 使用SSD設備

● 2.6內核開始交換文件和交換分區,速度上區別不太只要文件沒有太多碎片。

● 當掛載交換分區或文件時,每新加一個交換設備優先級比前一個要低一些(優先級高的被先用到)。可以使用 pri=values來指定掛載優先級。

   如果要使用多個交換分區來輪詢(round-robin),那么多個交換分區使用相同的優先級。

 

交換內存設置為多大?

docs.redhat.com

 

 

 

 

如何設置優先級:

/dev/sdb7     swap   swap  defaults,pri=5   0   0

/dev/sdc6     swap   swap   defaults,pri=5  0   0  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM