Firebird Performance Newsletter: Issue 1
Rozhodli jsme se spustit víceméně pravidelný „Firebird performance newsletter“, věnovaný testům výkonu, tipům, trikům, vylepšením konfigurace atd.
V prvním vydání najdete následující:
- Porovnání výkonu zápisu Firebird 4 vs Firebird 3,
- Výběr nejlepší instance AWS EC2 pro maximální výkon zápisu Firebird,
- Nejnovější výsledky z testu INSERT/UPDATE/DELETE
Firebird 4 vs Firebird 3: Dobré zprávy pro všechny!
Od roku 2019, kdy jsme zveřejnili první sbírku výsledků z jednoduchého testu INSERT/UPDATE/DELETE, nám mnoho lidí zaslalo výsledky ze svých serverů Firebird a my jsme je přidali do tabulky a příslušného grafu.
Tento test je jednoduchý, ale výkonný nástroj pro měření a porovnávání výkonu různých konfigurací hardware+Firebird, který umožňuje rychle potvrdit nebo vyvrátit problém s hardwarem nebo konfigurací.
Nedávno jsme tento test použili k porovnání výkonu INSERT/UPDATE/DELETE mezi Firebird 4.0 (verze 4.0.0.2394, několik buildů před vydáním) a 3.0 (verze 3.0.8.33426, snapshot, předběžná verze připravovaného 3.0.8, která je stabilní jako menší vydání, podle Firebird auto-testů).
Testovací prostředí bylo Intel i3-10100F 3.60GHz s SSD Samsung SSD 870QVO a RAM diskem (qSoft), s různými velikostmi RAM (16, 32, 64) a Page Buffers.
Níže je graf a zde je XLS tabulka s výsledky.

Jak vidíte, za stejných podmínek a se stejnou konfigurací je Firebird 4 přibližně o 10 % rychlejší než 3.0.8 při operacích zápisu. To je rozhodně dobrá zpráva a další známka toho, že je čas se blíže podívat na připravované vydání a začít s přípravami na migraci.
Samozřejmě nejlepším přístupem bude spustit stejný test na vlastním serveru a přesvědčit se o skutečném zlepšení osobně.
Podívejte se, jak na to »
Výběr nejlepší instance AWS EC2 pro maximální výkon zápisu Firebird
Stále více společností uvažuje o „přechodu do cloudu“ a Amazon Web Service Elastic Cloud je jednou z nejoblíbenějších „cloudových destinací“.
AWS však nabízí mnoho různých typů instancí - jak vybrat tu nejlepší? Samozřejmě, udělat testy!
Provedli jsme jednoduché testy INSERT/UPDATE/DELETE pro 20 typů instancí a našli jsme několik skutečně dobrých možností pro Firebird.
Upozorňujeme - všechny ceny ve výpočtech a grafech níže jsou pro oblast Frankfurt AWS EC2, jsou převzaty tak, jak jsou z aws.amazon.com, bez jakýchkoli slev, mohou podléhat dalším daním a mohou se v průběhu času měnit - proto prosím nepovažujte níže uvedené ceny za konečné ani za přesný nákupní průvodce.
Zde je celkový graf a XLS tabulka s výsledky:

Pro jednoduchost jsme vytvořili sloupec Operations, který je v podstatě součtem Inserts+Updates+Deletes, a použili jsme jej jako jednotnou metriku výkonu zápisu:

Jak vidíte, následující 3 typy instancí jsou lídry ve výkonu (z pohledu operací zápisu Firebird):
| Instance | Hodinová cena pro Linux | Operace/za sekundu |
|---|
| z1d.xlarge | USD$0.45 | 45834 | | m5dn.2xlarge | USD$0.648 | 45198 | | m5d.2xlarge | USD$0.544 | 44150 |
Zajímavé je, že lídři nejsou nejdražší typy instancí! Samozřejmě musíme mít na paměti, že test je jednovláknový (a nevyužívá výhody počtu jader) a nevyžaduje velké množství RAM (protože databáze má pouze 3,6 GB), ale pro aplikace, které potřebují rychle zpracovat špičkové operace zápisu, vypadají tyto instance skutečně optimálně.
Navzdory tomu, že tyto typy instancí nejsou nejdražší (mezi testovanými), jsou stále dost drahé na to, abyste dvakrát přemýšleli o rozpočtu, a protože jednou z inzerovaných výhod cloudu je flexibilita, dává smysl začít s levnějšími typy VM instancí, které by mohly být dostatečně dobré pro obsluhu vaší databáze Firebird, že?
Abychom zjistili optimální typy instancí z hlediska cena/výkon, vytvořili jsme v naší tabulce další sloupec: „Operations per 1 USD“.
Znamená to přesně to, co říká - kolik operací zápisu si můžete koupit za 1 USD.
Vzorec je následující:
Operations_Per_Second * 3600 sekund za hodinu / Cena za hodinu

Jak vidíte, z tohoto pohledu jsou lídři jiní:
| Instance | Hodinová cena pro Linux | Operace za 1 USD | Operace za sekundu |
|---|---|---|---|
| c5d.xlarge | USD$0,222 | 579062087 | 35709 |
| c5ad.xlarge | USD$0,2 | 565024995 | 31390 |
| m5dn.xlarge | USD$0,324 | 446037216 | 40143 |
Velmi zajímavá je #3, m5dn.xlarge se špičkovým výkonem ~40K za sekundu - je docela blízko výkonnostnímu lídrovi z1d.xlarge s 45834 operacemi za sekundu, ale výrazně levnější.
Obecně naše zkušenosti s AWS EC2 ukazují, že jde o stabilní a vyspělé prostředí s mnoha dobrými funkcemi zabezpečení/zálohování/vysoké dostupnosti atd., ale jako každá komplexní platforma vyžaduje zkušenosti (nebo externí odbornost), aby bylo možné provést správnou volbu a neplatit přemrštěné účty za aplikace s nefantastickou zátěží.
Nejnovější výsledky z testu INSERT/UPDATE/DELETE
Jak vidíte, jednoduchý test může být užitečný nejen jako srovnání mezi hardwarem a Firebird, ale může vám také ušetřit pár dolarů.
Zveřejnili jsme graf s nedávno shromážděnými výsledky a XLS tabulku, se kterou si můžete hrát, takže si ji můžete sami prohlédnout zde.
Níže jsou 3 zřejmé závěry:
- NVME disky skutečně válí, takže pokud potřebujete výkonný server Firebird, pořiďte NVME pro databáze.
- Vysoká frekvence CPU je velmi důležitá pro vysoký výkon databází Firebird. Dodavatelé vás často tlačí k nákupu vícejádrových procesorů s nižší frekvencí (<3 GHz), ale to nemusí být nejlepší volba pro Firebird a méně jader s vyšší frekvencí může dát lepší výsledek.
- Pokud je profil zatížení vaší databáze silně orientovaný na zápis, zkuste snížit Page Buffers: experimentujte s DefaultDbCachePages jako 50K, 100K, 250K atd. Bylo by skvělé, kdybyste s námi sdíleli výsledky!
Neváhejte prozkoumat výsledky testů a ptejte se na jakékoli otázky nebo posílejte návrhy.
V příštích vydáních „Firebird Performance Newsletter“
Ve 2. vydání ukážeme, jak nakonfigurovat několik instancí SuperClassic pro obsluhu jedné databáze (mimo jiné to může být užitečné pro rozdělení zátěže mezi několik síťových portů). Plány pro další vydání jsou velké: chyby v konfiguraci, testy šifrovaných databází, pokročilé srovnání výkonu Firebird 4 s Firebird 3, optimalizace indexů atd.
Pokud máte zájem a chcete dostávat upozornění na nová vydání, připojte se k nám na FirebirdSQL Telegram Channel.
Kontaktujte nás
Obraťte se na nás s jakýmikoli dotazy a návrhy: Alexey Kovyazin: [email protected].