如何避免Swap分區對NVMe設備造成過度損耗
NVMe是固態存儲時代的下一個階段,它提高了SSD和網絡上其他存儲設備的性能。如今,越來越多的服務器開始支持NVMe,IT人員是時候考慮Swap分區(交換區)的使用問題,來***限度地利用這些系統了。
在研究NVMe磁盤上Swap分區的使用之前,我們需要了解什么是Swap分區,以及為什么最初要在SSD上避免使用它。然后,本文將探索在NVMe上使用Swap分區的問題。
Photo by Fancycrave.com from Pexels
對Swap分區的需求
Swap分區就像火災保險,它是你永遠不想用到的東西,但必須隨時可用。在按照你希望的方式運行的系統上,應該有足夠的內存來加載程序和緩存數據。如果你的系統有足夠的RAM,那么就不會有問題。
當系統沒有足夠的RAM時,Swap分區就會發揮作用。硬盤上專門的特定區域充當額外的RAM,作為交換區。
Linux系統可能需要交換區的原因有很多。可能是RAM不足,也可能是因為一些服務器級別的應用程序(如Oracle數據庫或SAP)需要一定的交換空間。除此之外,還有一些例外情況,例如,你的應用程序服務器存在內存泄漏。在這種情況下,您可能會面臨內存耗盡、應用程序停止工作和客戶不滿意的風險。
Swap分區和SSD
在傳統的機械硬盤上,Swap分區的使用從來都不是一個問題。但是,如果你使用的SSD的閃存RAM單元的壽命是有限的,情況就不同了。閃存上的每一次寫入都會磨損內存單元,并且在某個時候,它會停止工作。
SSD設備的預期壽命用TB寫入(TBW)值表示,這個值表示在SSD損壞之前能夠寫入多少字節。SSD設備的TBW值通常在產品規格中被列為持久參數。磁盤的TBW值取決于其質量,低端消費級SSD可能在低到20 TBW時就開始出現故障,而企業級/服務器級SSD通常可以達到1000 TBW以上。限制Swap分區的使用可以縮減SSD上寫操作的數量。
Swap分區在NVMe上的使用
普通SSD設備和NVMe設備之間的主要區別在于它們連接到系統總線的方式。在物理級別上,這兩種設備類型都使用閃存單元來寫入數據,這意味著SSD和NVMe之間的TBW沒有根本區別。但對于在NVMe設備上使用Swap分區來說,這意味著什么呢?這意味著適用于非NVMe SSD的規則也適用于NVMe SSD。
我要們明確一點:如果內存不足,并且Swap分區一直在使用,那么***將其放在硬盤驅動器上。但這種情況不適用于典型的Linux系統,大多數使用Linux的服務器和工作站可以很好地處理所安裝的物理RAM。
不過,如果這些系統上的Linux內核開始將內存頁交換到磁盤,那么查看正在進行交換的是活動內存頁還是非活動內存頁就非常重要。非活動內存頁是已經分配過一次,以后不會再使用的內存頁。如果你的系統只交換非活動內存頁,那么無需擔心,也沒有理由避免在SSD或NVMe驅動器上使用Swap分區。這是因為非活動內存頁通常在換出后保持在原來的位置,這意味著只有非活動頁被換出時寫入交換的數據量要低得多。
查明系統是否正在積極使用Swap分區的***方法是運行vmstat命令,該命令提供了系統范圍內的性能視圖,包括進程、Swap使用情況、內存、分頁和CPU活動。
例如,如果你運行vmstat 2 100命令,它將以2秒的間隔顯示100次系統使用Swap的信息。你需要仔細看看Swap In和Swap Out結果的SI和SO列。vmstat輸出的***行是長期總結,可以忽略。在命令生成輸出時,你要監視這些列的其余部分中發生的情況。如果你沒有看到任何重要的活動,那就沒什么好擔心的。如果你確實看到了明顯的活動,那么你的SSD設備正在慢慢損耗,你***考慮向系統中增加更多RAM。
原文作者:Sander van Vugt 來源:Tech Target





















