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