阿里雲服務器 ECS Linux SWAP 配置概要說明

SWAP 簡介

Linux 中的 SWAP(交換分區),相似於 Windows 的虛擬內存。系統會把一部分硬盤空間虛擬成內存使用,將系統內非活動內存換頁到 SWAP,以提升系統可用內存。html

注:參閱 ECS 使用須知,雲服務器 ECS 若是您使用普通雲盤,不建議使用swap分區。若是是高效雲盤或SSD雲盤,能夠根據實際狀況使用swap分區。vim

SWAP 配置介紹及 FAQ

開啓 SWAP

一、建立用於交換分區的文件:api

  1. dd if=/dev/zero of=/mnt/swap bs=block_size count=number_of_block

:block_size、number_of_block 大小能夠自定義,好比 bs=1M count=1024 表明設置 1G 大小 SWAP 分區。bash

二、設置交換分區文件:服務器

  1. mkswap /mnt/swap

 

三、當即啓用交換分區文件app

  1. swapon /mnt/swap

 

:若是在 /etc/rc.local 中有 swapoff -a 須要修改成 swapon -a 性能

 

四、設置開機時自啓用 SWAP 分區:3d

須要修改文件 /etc/fstab 中的 SWAP 行,添加code

  1. /mnt/swap swap swap defaults 0 0

 

:/mnt/swap 路徑能夠修改,能夠根據建立的 SWAP 文件具體路徑來配置。htm

五、修改 swpapiness 參數

在 Linux 系統中,能夠經過查看 /proc/sys/vm/swappiness 內容的值來肯定系統對 SWAP 分區的使用原則。當 swappiness 內容的值爲 0 時,表示最大限度地使用物理內存,物理內存使用完畢後,纔會使用 SWAP 分區。當 swappiness 內容的值爲 100 時,表示積極地使用 SWAP 分區,而且把內存中的數據及時地置換到 SWAP 分區。

查看修改前爲 0,須要在物理內存使用完畢後纔會使用 SWAP 分區:

 

可使用下述方法臨時修改此參數,假設咱們配置爲空閒內存少於 10% 時才使用 SWAP 分區:

  1. echo 10 >/proc/sys/vm/swappiness

 

若須要永久修改此配置,在系統重啓以後也生效的話,能夠修改 /etc/sysctl.conf 文件,並增長如下內容:  

  1. # vim /etc/sysctl.conf
  2. vm.swappiness=10
  3. # sysctl -p

關閉 SWAP

當系統出現內存不足時,開啓 SWAP 可能會因頻繁換頁操做,致使 IO 性能降低。若是要關閉 SWAP,能夠採用以下方法。

一、free -m 查詢 SWAP 分區設置:

 

二、使用命令 swapoff 關閉 SWAP,好比:

  1. swapoff /mnt/swap

 

三、修改 /etc/fstab 文件,刪除或註釋相關配置,取消 SWAP 的自動掛載:

 

四、  經過 free -m  確認 SWAP 已經關閉。

 

五、 swappiness 參數調整:

可使用下述方法臨時修改此參數,這裏配置爲 0%:

  1. echo 0 >/proc/sys/vm/swappiness

若須要永久修改此配置,在系統重啓以後也生效的話,能夠修改 /etc/sysctl.conf 文件,並增長如下內容:

  1. # vim /etc/sysctl.conf
  2. vm.swappiness=0
  3. # sysctl -p

Centos 使用 mkswap 格式化文件時報錯的處理方法

問題現象

使用 mkswap 建立 SWAP 時出現相似以下報錯信息:

  1. mkswap: error: swap area needs to be at least 40 KiB

 

問題緣由

指定的 SWAP 文件過小,SWAP 文件至少應該大於 40KB。

解決方法

從新生成更大的文件格式化爲 SWAP 便可。

 

參考資料

https://help.aliyun.com/knowledge_detail/42534.html?spm=5176.11065259.1996646101.searchclickresult.105a3d5boD4ou4

相關文章
相關標籤/搜索