Linux 创建交换(swap)分区
Linux 的交換分區(swap),或者叫內存置換空間(swap space),是磁盤上的一塊區域,可以是一個分區,也可以是一個文件,或者是他們的組合。
交換分區的作用是,當系統物理內存吃緊時,Linux 會將內存中不常訪問的數據保存到 swap 上,這樣系統就有更多的物理內存為各個進程服務,而當系統需要訪問 swap 上存儲的內容時,再將 swap 上的數據加載到內存中,也就是常說的 swap out 和 swap in。
使用 swap 必須要知道它存在的缺點,以便判斷何時使用交換分區。使用交換分區的好處當然就是可以一定程度的緩解內存空間緊張的問題。然而,由于 CPU 所讀取的數據都來自于內存,交換分區則是存放在磁盤上的,磁盤的速度和內存比較起來慢了好幾個數量級,如果不停的讀寫 swap,那么對系統的性能肯定有影響,尤其是當系統內存很吃緊的時候,讀寫 swap 空間發生的頻率會很高,導致系統運行很慢。
交換分區大小的設置建議值:
- 內存小于 4GB 時,推薦不少于 2GB 的 swap 空間
- 內存 4GB~16GB,推薦不少于 4GB 的 swap 空間
- 內存 16GB~64GB,推薦不少于 8GB 的 swap 空間
- 內存 64GB~256GB,推薦不少于 16GB 的 swap 空間
創建交換分區需要有一塊獨立的分區,如果沒有多余的分區時,可以用交換分區文件來代替。創建交換文件:
dd if=/dev/zero of=/swap bs=1MB count=2048或fallocate -l 2G /swap#bs 字節為單位的塊大小 #count 被復制的塊數驗證交換文件大小:
du -sh /swap改變文件的用戶、組以及權限:
chown root:root /swap chmod 600 /swap格式化文件?為 swap 文件系統:
mkswap -L swap /swap掛載交換分區:
swapon /swap查看交換分區:
free -h編輯 /etc/fstab 文件以便?開機自動掛載:
/swap swap swap defaults 0 0卸載交換分區:
swapoff /swap內核參數?vm.swappiness?控制換出運行時內存的相對權重,參數值大小對如何使用 swap 分區有很大聯系。值越大,表示越積極使用 swap 分區,越小表示越積極使用物理內存。一般系統的默認值 swappiness=60,表示內存使用率超過 100-60=40% 時開始使用交換分區。swappiness=0 的時候表示最大限度使用物理內存,然后才是 swap 空間;swappiness=100 的時候表示積極使用 swap 分區,并把內存上的數據及時搬運到 swap 空間(對于 3.5 以后的內核和 RedHat 2.6.32 之后的內核,設置為 0 會禁止使用 swap,從而引發 out of memory,這種情況可以設置為 1)。查看參數值:
cat /proc/sys/vm/swappiness臨時調整該值:
sysctl vm.swappiness=20永久調整需編輯 /etc/sysctl.conf 文件,加入如下內容:
vm.swappiness=20然后加載參數:
sysctl -pswapon?與?swapoff?命令分別用于開啟或關閉交換空間(包括交換文件和交換分區)。如果需要?清空交換空間,可以使用如下方式:
swapoff -a && swapon -a# -a 參數表示包含 /etc/fstab 文件中所有設置為 swap 的設備參考:
- https://yq.aliyun.com/articles/194733
- https://www.cnblogs.com/svenwu/p/9540318.html
- https://blog.csdn.net/andyguan01_2/article/details/89315345
- Linux swap的創建與配置 - pipci - 博客園 (cnblogs.com)
總結
以上是生活随笔為你收集整理的Linux 创建交换(swap)分区的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Nginx之进程间的通信机制-Chann
- 下一篇: Linux DMA 内存拷贝与memcp