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