Swap分區通常被稱為交換分區,這塊兒分區位於硬盤的某個位置,當系統內存(物理內存)不夠用的時候,如果開啟了交換分區,部分內存里面暫時不用的數據就會Swap out(換出)到這塊兒分區;當系統要使用這部分數據的時候,存儲在Swap分區的數據就會Swap in(換入)到內存當中。
簡而言之,Swap分區就類似於內存的后備內存(只是做了下緩沖)
一、swap的大小設置建議(源自redhat官方):
1. 內存<=2GB, Swap分區設置3倍內存大小
2. 2GB<=內存<=8GB, Swap分區設置2倍內存大小
3. 8GB<=內存<=64GB, Swap分區設置1.5倍且4G以上內存大小
4. 64GB<=內存, Swap分區設置4G以上內存大小
如果你不喜歡記上述條件,那么一般Swap分區設置內存2倍就可以
二、swap分區常用操作
例子:一個4c8g的機器,給其創建一個16g的swap分區。
2.1 創建步驟:
1. 創建swap交換區硬盤存儲用的空白文件。
#這里bs是塊大小,bs*count就是我們要創建的swap空文件大小
dd if=/dev/zero of=/swap bs=1024M count=8
2.使用mkswap格式化文件為swap文件系統
#-f 使用文件作為swap交換區
mkswap -f /swap
3.啟用剛才創建的swap文件
swapon /swap
4.設置開機自動啟用swap文件交換區(否則重啟后swap分區會消失,這里會自動掛載):
vim /etc/fstab,添加如下內容
#啟動即啟用swap
/swap swap swap defaults 0 0
5.關閉swap分區,可以使用swapoff命令關閉swap。
1)關閉swap 分區
swapoff /swap
2)確認swap分區關閉成功
swapoff
6. 調整swap分區大小
1)關閉swap 分區
swapoff /swap
2)確認swap分區關閉成功
swapoff
3) 刪除swap分區
rm -rf /swap
然后按照1~4步驟,重新創建和掛載開啟swap分區即可
7. 確認swap分區是否真的開啟
free -m或則top,能夠看到swap分區的大小。
三、swap分區與性能測試
swap分區一般是在系統內存不足的時候才會發生換入換出,我們知道swap分區是硬盤上的一塊兒區域,所以性能上肯定不如真實的物理內存, 那么在實際的性能測試過程中,我們都要注意哪幾點呢?
1) swap分區開始被使用(top命令觀察)
這時候說明系統的內存不足了,一般的性能測試不建議壓測到大量使用swap分區(自行控制壓測tps),如果大量使用swap分區,我們可能會看到wa(io等待)有些高,這個時候整個機器系統效率不會很高。
2)壓測場景
很多實時性比較高,且耗內存的程序在設計性能測試case的時候,需要分開啟swap分區和不開啟swap分區兩種場景進行測試,這種一般需要和開發溝通測試場景。
3)swap分區的性能
由於swap分區是硬盤的一部分,可想而知,硬盤的檔次也會決定了swap分區的性能,比如ssd的硬盤的的swap分區性能就比普通硬盤要好,所以這個在性能測試上也要考慮真正在生產環境部署的時候我們使用哪類硬盤作為swap分區(包括程序的大量IO性能),以確定一個性能參數。
博主:測試生財(一個不為996而996的測開碼農)
座右銘:專注測試開發與自動化運維,努力讀書思考寫作,為內卷的人生奠定財務自由。
內容范疇:技術提升,職場雜談,事業發展,閱讀寫作,投資理財,健康人生。
csdn:https://blog.csdn.net/ccgshigao
博客園:https://www.cnblogs.com/qa-freeroad/
51cto:https://blog.51cto.com/14900374
微信公眾號:測試生財(定期分享獨家內容和資源)