Egy hasznos tárolási teszt a műveletméretet, a hozzáférési mintát, a párhuzamosságot és a tartóssági követelményeket az alkalmazáshoz igazítja. Rögzítse a tesztkörülményeket és a késleltetés eloszlását, majd erősítse meg az eredményt alkalmazásmérésekkel.
Kezdje tárolási kérdéssel, ne pontszámmal
Döntse el, mit kell megtudnia, mielőtt benchmarkot futtat. Lehet, hogy lassú adatbázis-commiteket, fájlelosztási átviteli teljesítményt vagy sok kis fájlt létrehozó buildfolyamatot vizsgál. Ezek a munkaterhelések nem ugyanazt kérik a lemeztől. Egy nagy szekvenciális másolás lenyűgözőnek tűnhet, miközben keveset mond arról a késleltetésről, amelyet egy kis véletlenszerű olvasásokat végző szolgáltatás tapasztal.
A NVMe-t nem felejtő adathordozókhoz és hatékony párhuzamos I/O-hoz tervezték, de a protokoll neve nem írja le egy hosztolt tárolási útvonal minden részét. A virtualizáció, a fájlrendszer, az erőforrás-versengés és az alkalmazás továbbra is számít. Írjon fel olyan teszthipotézist, mint hogy a tárolási késleltetés lassít-e egy adott műveletet, ahelyett hogy olyan számot próbálna előállítani, amely bizonyítja, hogy a teljes szerver gyors.
Írja le a munkaterhelést reprodukálható módon
Rögzítse a műveletméretet, a szekvenciális vagy véletlenszerű mintát, az olvasás-írás arányt, a feladatok számát és a várakozási sor mélységét. Adja meg az adatkészlet méretét és a teszt időtartamát. Az fio dokumentációja elmagyarázza ezeket a munkaterhelés-vezérlőket és a rendelkezésre álló I/O-motorokat. Előfordulhat, hogy a szándékolt mélységet nem minden motor vagy beállítás éri el, ezért a kért konfiguráció mellett a jelentett viselkedést is olvassa.
Tartson másolatot a teszt leírásáról az eredmény mellett. Jegyezze fel az operációs rendszert, a fájlrendszert, a csatolási beállításokat, a szolgáltatásaktivitást és a rendelkezésre álló kapacitást. Ha konfigurációkat hasonlít össze, egyszerre egy releváns feltételt változtasson. Egy eltérő hozzáférési mintájú vagy párhuzamosságú tesztet nem lehet tisztességesen úgy bemutatni, mintha csak a tárolási adathordozó változott volna.
| Alkalmazásminta | Leírandó teszt dimenzió | Vizsgálandó eredmény |
|---|---|---|
| Nagy fájl kézbesítése | Szekvenciális olvasások és párhuzamos kliensek | Fenntartott átviteli teljesítmény és CPU használat |
| Rekordkeresés | Kis véletlenszerű olvasások és reprezentatív párhuzamosság | Késleltetés eloszlása és befejezett műveletek |
| Tartós tranzakció | Írási és szinkronizálási követelmények | Commithez kapcsolódó késleltetés, nem csak a pufferelt írási sebesség |
| Build vagy kicsomagolás | Vegyes kis fájlos műveletek | Végponttól végpontig tartó feladat időtartama és I/O várakozások |
Szabályozza a gyorsítótárazást anélkül, hogy úgy tenne, mintha nem számítana
Egy memóriába illő adatkészlet az első menet után nagyrészt a gyorsítótár viselkedését mérheti. Ez hasznos lehet, ha az alkalmazás általában ugyanabból a gyorsítótárból profitál, de nem szabad nyers eszközteljesítményként címkézni. Szándékosan válassza meg, hogy a teszt egy meleg alkalmazási útvonalat, egy hidegebb adatkészletet vagy az operációs rendszer pufferelési hatását csökkenteni hivatott I/O-módot vizsgál-e.
A közvetlen I/O támogatása és igazítása a platformtól és a motortól függ. Az sem fejezi ki automatikusan az alkalmazás tartóssági követelményeit, és nem szüntet meg minden gyorsítótárat a veremben. Világosan adja meg a választott módot, és kerülje a pufferelt teszt összehasonlítását egy puffer nélküli teszttel, mintha ugyanazt a munkát képviselnék. Ahol ez segíti az értelmezést, tartsa külön a bemelegítési és a mért időszakokat.
A késleltetési farokértékeket a teljesítmény mellett olvassa
Az átlagos késleltetés elrejtheti a valós kéréseket befolyásoló lassú műveleteket. Vizsgálja meg a jelentett percentiliseket és a mögöttük lévő minták számát. Egy magas percentilis azt a határt írja le, amely alá a megfigyelt műveletek megadott hányada esett abban a tesztben; ez nem állandó szolgáltatási garancia. A rövid vagy nem reprezentatív futások korlátozott bizonyítékot adnak a forgalmas termelési időszakokról.
A nagyobb várakozási sor mélysége javíthatja a befejezett átviteli teljesítményt, miközben növeli a várakozási időt. Ez a kompromisszum megfelelhet a kötegelt feldolgozásnak, és árthat egy interaktív szolgáltatásnak. Hasonlítsa össze az eredményeket az alkalmazáshoz hasonló párhuzamosság mellett, és egyidejűleg figyelje a CPU-t és az I/O nyomást. Álljon le, mielőtt a teszt szükségtelen zavart okozna a környezetet megosztó másik munkaterhelésnek.
Tartsa a tesztet engedélyezettnek és nem destruktívnak
Használjon dedikált tesztkönyvtárat vagy előkészített eldobható kötetet, elegendő szabad hellyel és egyértelmű tisztítási tervvel. Soha ne irányítson írási benchmarkot ellenőrizetlen nyers eszközre vagy termelési adatkészletre. A kezdés előtt ellenőrizze az eszköz célját és írási viselkedését, és kezdje korlátozott futással. A szintetikus I/O kapacitást fogyaszthat és zavarhatja a szolgáltatásokat, még akkor is, ha nem ír felül hasznos fájlokat.
Termeléshez hasonló értékeléshez egyeztessen karbantartási ablakot, és tartsa meg az alkalmazásfigyelést. Lehetőleg kitalált adatokat használjon. Ne következtessen a tárolási megbízhatóságra egy sebességtesztből: az integritásellenőrzések, a biztonsági mentések és a helyreállítás külön feladatok. Egy benchmarkot teljesítő eszköznek továbbra is szüksége van helyreállítási stratégiára törlés, szoftverhibák vagy a gép elvesztése esetére.
Zárja le a kört alkalmazási bizonyítékokkal
Tegyük fel, hogy egy jelentéskészítő szolgáltatás idejének nagy részét véletlenszerű olvasásokra várva tölti. A csapat egy reprezentatív olvasási mintát tesztel, majd megismétli a tényleges jelentést összehasonlítható adatokon. Ha a jelentés javul, miközben a többi munkája stabil marad, az eredmény alátámasztja a tárolási hipotézist. Ha nem, vizsgálja a lekérdezéstervezést, a memóriát vagy egy másik függőséget a szélesebb szintetikus tesztek ismétlése helyett.
A Pulse NVMe és a kiválasztott dedikált konfigurációk a NVMe tárolót a SwissOctet katalógusban sorolják fel. A címkéik specifikációk, nem közzétett alkalmazás-benchmarkok. Használjon ellenőrzött módszert a leszállított környezet értékelésére, és őrizze meg a feltételeket az eredményekkel együtt. A döntés erősebb lesz, ha a tárolási mérés és a felhasználó számára látható eredmény ugyanarra a kérdésre válaszol.
Az Ön gyakorlati ellenőrzőlistája.
- Először határozza meg az alkalmazáskérdést.
- Rögzítse a mintát, a blokkméretet, a párhuzamosságot és az időtartamot.
- Adja meg a gyorsítótár- és I/O-mód feltételezéseket.
- Vizsgálja meg a késleltetési percentiliseket és az átviteli teljesítményt is.
- Használjon ellenőrzött eldobható célpontot és korlátozott kezdeti terhelést.
- Erősítse meg az eredményt egy alkalmazásteszttel.
A fontos részletek.
Elég egy szekvenciális másolás az adatbázis-tárolás összehasonlításához?+
Általában nem. Az adatbázis-hozzáférés kis véletlenszerű olvasásokat, írásokat és szinkronizálást foglalhat magában. Modellezze a releváns mintát, és ellenőrizze a tényleges alkalmazást.
Bizonyítja a közvetlen I/O a tartós írásokat?+
Nem. A pufferelés és a tartósság külön kérdések. Igazodjon az alkalmazás által megkövetelt szinkronizálási viselkedéshez.
Közzétehetek egy tesztet garantált csomagsebességként?+
Nem. Tegye közzé a feltételeit és hatókörét. Egy futás mért eredménye nem szolgáltatásszintű vagy jövőbeli teljesítménygarancia.
Menjen a forráshoz.
Ezek a hivatkozások támogatják az útmutató műszaki fogalmait. Kövesse az aktuális dokumentációt, mielőtt éles rendszert módosítana.
- fio: Rugalmas I/O-teszter dokumentációja fio.readthedocs.io
- NVM Express: Specifikáció áttekintése és GYIK nvmexpress.org
- Linux kernel: Pressure Stall Information docs.kernel.org
Szerkesztői útmutatás: SwissOctet. A példák tájékoztató jellegűek. A szolgáltatási specifikációkat, az elérhető opciókat és a szerződéses feltételeket külön kell ellenőrizni.