Rychlý odhad rychlosti disku pomocí zálohy
Dmitry Kuzmenko, 30.05.2019, ib-aid.com
Naše technická podpora pravidelně dostává dotaz (který je také kladen na fórech) - „zdá se, že naše disky jsou pomalé, jak to potvrdit“?
Nejčastěji se tento dotaz objevuje od uživatelů virtuálních strojů, kde DBA nemá přístup k nastavení diskového subsystému nebo dokonce nezná jeho charakteristiky.
Samozřejmě, rychlost disku lze měřit různými nástroji, od jednoduchého CrystalDiskMark po složitější IOMeter. Ale nejčistší výsledky lze získat, když aplikace nepracují s diskem. Jinak se výsledky mohou lišit a při vysokém zatížení může testování snížit výkon systému.
Navíc správci systému mohou zakázat instalaci softwaru třetích stran, i na krátkou dobu.
Nicméně zálohování se obvykle provádí na všech takových systémech (kromě těch, kteří používají zálohovací software na úrovni VM pro zálohování Firebirdu, což je špatně - viz #11 zde v „12 běžných chyb při zálohování databází“).
Zálohování (gbak -b -g) je čtení všech dat z databáze a zápis (sekvenční) těchto dat do záložního souboru. Z pohledu operací čtení/zápisu jde o kombinaci náhodného čtení a sekvenčního zápisu.
Záložní soubor má obvykle velikost 60 %-70 % velikosti databáze. A kvůli verzování a struktuře stránek databáze je čtení více než zápisů.
Protože je záložní soubor obvykle umístěn na jiném fyzickém disku, celková rychlost zálohování bude záviset na rychlosti náhodného čtení databáze a rychlosti sekvenčního zápisu záložního disku. Samozřejmě můžete umístit databázi na HDD a zálohovat na SSD, ale to bude velmi neefektivní, takže předpokládáme, že rychlost záložního disku je téměř stejná jako rychlost disku databáze, ne o mnoho vyšší nebo nižší.
Pro zjednodušení hodnocení rychlosti jsme vzali pouze velikost záložního souboru a vydělili ji časem zálohování. Výsledek bude v „megabajtech za sekundu“. Ale pro vyhodnocení získané hodnoty ve srovnání s jinými systémy je zapotřebí nějaké referenční měření.
Jako referenci jsme vzali průměrný stolní počítač s databází na RAID1 ze 2 SATA3 HDD a zálohou na samostatném SATA3 HDD (rychlost sekvenčního čtení tohoto RAID1 je kolem 180 MB/s a ~150 MB/s pro záložní HDD).
Zde má záloha 31GB databáze velikost 21 GB a zálohování v jednouživatelském režimu (na počítači nikdo nepracuje) trvá 18 minut, rychlost zálohování je 19 megabajtů za sekundu.
Takže, protože se nejedná o výkonný server, ale pouze o stolní počítač (sestavený před 2 nebo 3 lety), můžeme tuto rychlost zálohování použít jako referenci, považovat ji za normální a možná minimální přípustnou pro produkční systémy.
Dále jsme analyzovali rychlost zálohování na 30 různých serverech pod naší správou, kde velikost záložního souboru není menší než 5 gigabajtů.
| Výkon | Rychlost, MB/s | Komentáře a příklady |
|---|
| Rychlý | 50-70 | Byly zde systémy se zálohami od 38 do 150 gigabajtů. Záloha 124 GB databáze za 42 minut - to je rychlé. | | Průměrný | 20-50 | Zde je průměrná rychlost kolem 80 gigabajtů za 30-40 minut. To je normální a náš stolní počítač ukazuje výsledek, který sem může zapadat. | | Pomalý | 10-20 | 463 gigabajtů za 11 hodin, 80 gigabajtů za 2 hodiny, 293 gigabajtů za 5 hodin - to je pomalé, dokonce i náš testovací stolní počítač je rychlejší. | | Extrémně pomalý | Pod 10 | To je jako 8,5 gigabajtů za 1 hodinu. Velmi pomalé. |
Je jasné, že na některých zkoumaných systémech se zálohování neprovádí při nulovém zatížení serveru. Ale v každém případě se provádí při minimálním zatížení serveru.
Jen abychom věděli, jak může nízké zatížení ovlivnit rychlost zálohování, spustili jsme 2 souběžné zálohy na stejném stolním počítači. Obě trvaly 19 minut s rychlostí 18 megabajtů za sekundu. To je 93 % z jednouživatelské zálohy, což není příliš mnoho (7% pokles) pro jednotlivé HDD. Pokud máte SSD, rozdíl si možná ani nevšimnete, i když spustíte 3-4 zálohy současně.
Obecně platí, že rychlost zálohování 20 megabajtů za sekundu a méně může být důvodem k obavám.
V tomto případě je buď záložní disk příliš pomalý, přičemž záloha by měla být provedena co nejrychleji. Nebo je disk databáze příliš pomalý a celkový výkon systému je horší, než by měl být.
Jak zvýšit rychlost zálohování
Mnoho lidí nepoužívá gbak na plnou rychlost a někdy je možné zvýšit rychlost zálohování jediným přepínačem -se service_mgr, aby se použil správce služeb uvnitř enginu Firebirdu.
Doporučený příkazový řádek pro rychlé zálohování je následující, jak pro Firebird 2.5, tak pro Firebird 3.0:
gbak -se localhost:service_mgr -b -g -user USERNAME -pass password Disk:\Path\Database.fdb Disk:\Path\backup.fbk
Další tipy a triky věnované obecnému výkonu: