Rychlý, svižný a levný: server s dostatečným výkonem pro databázi malé firmy za méně než 1000 USD
(c) Alexey Kovyazin, IBSurgeon, 21. září 2017 (poslední aktualizace - 29. září 2017)
Je snadné získat výkonný server, pokud jste připraveni utratit spoustu $$$: existují přední prodejci jako Dell, HP a mnoho méně známých hardwarových společností, které vám rády prodají výkonný stroj (obvykle s dodáním za 4-6 týdnů).
Peníze jsou však vždy problém, zejména pro malé podniky a startupy, takže existuje velká poptávka po „dostatečně dobrých" levných řešeních. Tento článek popisuje praktický přístup k sestavení „dostatečně dobrého" databázového serveru s dostatečným výkonem pro malou firmu. Obsahuje také výpočty a odkazy na konkrétní produkty, které doporučujeme.
Naše společnost (IBSurgeon) poskytuje databázové konzultační a pečovatelské služby pro databáze Firebird a vidíme mnoho typů serverů (nebo lépe řečeno počítačů používaných jako servery). Velcí zákazníci používají špičkové konfigurace se SAN na SSD, 350+ GB RAM a dvěma špičkovými Xeony na palubě, ale malé a střední podniky používají méně výkonné stroje, protože nepotřebují velký výpočetní výkon a nemají mnoho peněz.
Všimli jsme si, že mnoho serverů jsou ve skutečnosti běžné pracovní stanice, a co je nejzajímavější, fungují docela stabilně celé roky. Existují opravdu exotické věci, jako Windows XP na počítači s 2 GB RAM (počítač postavený v roce 2002!), ale většina z nich jsou jen „dostatečně dobrá" vlastnoručně sestavená hardwarová řešení.
Samozřejmě je to otázka statistiky a nikdo nebude doporučovat používat pracovní stanici jako server, ale otázka zní: kde je rovnováha mezi stabilitou a náklady? Je dobrý přístup použít levný vlastnoručně vyrobený server z hlediska hodnoty za peníze? Co můžeme získat za 1000 USD? Jaká jsou rizika spojená s levným hardwarem?
Kdo může mít zájem o databázový server pod 1000 USD?
Zvažme následující situaci: kancelář s 20-25 pracovníky, lidé pracují 7x5, velikost databáze je kolem 50 GB. Je to typická situace pro malou firmu, která používá nějaké ERP nebo CRM nebo specifickou aplikaci (například automatizační systém pro zubní ordinace) pro aplikace malých podniků založené na Firebirdu.
Představme si, že společnost nemá peněz nazbyt a chce ušetřit co nejvíce, aniž by ztratila spolehlivost, aby dosáhla dostatečně dobrého výkonu. Odpovědná osoba ve společnosti chápe, že veškerý hardware dříve či později selže, a chce snížit související rizika.
Jaký druh serveru potřebují pro databázi Firebird této velikosti a zátěže? Podle Firebird Hardware Guide je nejkritičtějším zdrojem pro databázi diskové I/O, poté RAM a nakonec CPU (zajímavé je, že když zákazníci z SMB nakupují servery od velkých prodejců, často si vybírají servery s výkonnými CPU a pomalými disky, pravděpodobně kvůli marketingovým materiálům, které přeceňují důležitost CPU).
Disky
Rychlé I/O znamená, že potřebujeme SSD disky, protože SSD je král náhodných čtení a zápisů. Samozřejmě, SSD není všelék na databáze, ale poskytuje opravdu vysoký výkon a nyní je správnou volbou pro databáze.
SSD se dodává ve dvou variantách - podnikové a spotřebitelské disky. Klíčový rozdíl mezi nimi je zdroj, zhruba počítaný jako počet I/O operací, které mohou provést.
Například Samsung 850 Pro 256 Gb MZ-7KE256BW - spotřebitelský SSD (založený na technologii MLC), má TBW (celkový počet zapsaných bajtů) 150 petabajtů a DWPD (počet zápisů na disk za den) = 0,16. Nebo jednodušeji, zdroj lze vysvětlit jako 40 GB zápisů každý den po dobu 10 let.
Aktualizace: dostali jsme návrh, že Samsung PM863a (181,59 USD) nebo SM863a (249 USD) jsou spolehlivější než 850 Pro, ale stále cenově dostupné - v podstatě za extra 60 USD můžeme získat lepší stabilitu a určitou ochranu proti elektrickým přepětím.
Je to hodně nebo ne? Máme testovací server se spotřebitelským SSD, kde spouštíme zátěžové testy k simulaci intenzivní práce 100 připojení na 60 GB databázi. Každý den se spustí 3 takové testy, každý na 3 hodiny - to znamená, že tyto testy simulují 9hodinový pracovní den. Testy běží již 2 roky a zbývající zdroj (podle firmwaru) je 54%.
Samozřejmě ~50% zdroje znamená, že disk by měl být vyměněn během příštího roku… Je to tak špatné? Každých několik let se rychlost SSD zvyšuje a ceny klesají: SSD v příkladu má 6 Gb/s a stojí 137 USD, za 2-3 roky budou 12G disky za stejnou cenu.
Cena na Amazonu od 124 USD
Podnikové SSD jsou postaveny na základě jiné technologie (SLC) a mohou přibližně provést 30x více operací než spotřebitelský SSD stejné velikosti. Také stojí přibližně 3x více než spotřebitelské SSD. Otázka zní: opravdu potřebujeme 30x více I/O cyklů pro server malé firmy za 3x cenu?
Pokud hledáme rychlé a cenově dostupné řešení, je velmi atraktivní používat levné spotřebitelské SSD a pravidelně je vyměňovat (a samozřejmě sledovat jejich zdroj pomocí firmwaru).
Rizika spojená s SSD
Jako rozumní lidé chápeme, že spotřebitelský hardware má méně zdrojů a vyšší šanci na selhání, takže musíme tyto šance snížit. Jak to můžeme snížit?
Pro snížení šance náhlého selhání hardwaru je nutné použít 2 SSD pro databázi, spojené do RAID1. RAID1 neznamená, že potřebujeme samostatný RAID řadič, bude dostatečné použít RAID schopnosti moderních čipsetů základních desek - v podstatě jde o jednoduchý RAID řadič bez cache.
Aktualizace: protože levné RAID řadiče na základních deskách nemusí podporovat funkci TRIM u SSD, aby se předešlo degradaci výkonu, doporučuje se nastavit softwarový RAID, který orchestruje simultánní operace na softwarové úrovni.
Pokud nebude cache, jaký bude výkon? Moderní SSD, jako Samsung v příkladu, mají vestavěnou cache a velmi chytré řadiče - takže jsou dostatečně rychlé i bez dedikovaných RAID řadičů.
Samozřejmě je nutné kontrolovat zdraví disků; obvykle firmware poskytuje dostatečně dobrý odhad životnosti disků.
Zálohy
Samozřejmě potřebujeme disky pro zálohy. Nejlepší volbou bude pár SATA disků po 2 TB - například Seagate SkyHawk 2TB Surveillance Hard Drive, s 5900 ot./min.
Cena na Amazonu je 74,99 USD
Potřebujeme 2 HDD, protože disky pro zálohy musí být také v RAID1, aby poskytovaly ochranu proti náhlému selhání hardwaru. Tyto záložní disky mohou být docela pomalé, jejich hlavním účelem je ukládat zálohy a poskytovat odpovídající rychlost sekvenčního čtení/zápisu. Disky s 5900 ot./min jsou pomalejší než 7200 ot./min, ale jsou známé vyšší spolehlivostí. Tato konkrétní řada disků (Seagate SkyHawk) je navržena pro lineární zápisy: to je to, co potřebujeme pro zálohy.
Rizika pro záložní disky
Riziko je stejné jako u SSD a chráníme se před ním stejným způsobem: RAID1 a monitorování. Měla by být malá šance, že oba disky v RAID1 selžou současně.
Systémový disk
Potřebujeme samostatný disk pro operační systém? V nejlevnější konfiguraci - ne, bude dostatečné mít OS a databázi na stejném disku. To mírně urychlí degradaci SSD, ale ne tolik - v našem scénáři by měl rozhodně vydržet 3 roky.
CPU
Pro databázový server Firebird je lepší zvolit CPU s mnoha jádry a co nejnižší frekvencí. Ano, čtete správně - není potřeba vysokofrekvenčních CPU pro databázový server. Firebird (pokud je správně nakonfigurován) používá všechna jádra pro běžnou práci, ale nezatěžuje je na 100%.
Existují výjimky: některé údržbové operace (záloha a obnova), které těží z vysokorychlostního CPU, a špatně napsané SQL dotazy s nesprávným použitím indexů - ty spotřebovávají 100% jádra, ale to je jasná známka toho, že je nutná optimalizace výkonu databáze. Obecně není možné kompenzovat pomalé dotazy špičkovými CPU: i když je CPU 3x rychlejší, pomalý dotaz bude stále pomalý.
Na druhou stranu, mít několik jader může kompenzovat existenci takových CPU náročných dotazů: při počtu uživatelů pod 25 a s 8 jádry není tak velká šance, že všechna jádra budou současně obsazena pomalými dotazy.
A protože hledáme levné řešení, jsme omezeni na desktopové CPU - a bohužel musím říci, na čipy AMD. V podstatě, pokud by Intel mohl poskytnout desktopový procesor s 8 jádry za stejnou cenu nebo mírně vyšší než AMD FX-8320E, mohli bychom použít i Intel, ale v tuto chvíli takovou možnost nevidím.
Tento čip AMD není tak moderní a není tak rychlý, ale má 8 jader a je levný, takže je optimální volbou pro náš rychlý a levný server.
Cena na Amazonu je 108 USD
Rizika spojená s desktopovým CPU
Jaké je potenciální riziko spojené s CPU? U nízkofrekvenčních (tj. nepřetaktovaných) čipů s odpovídajícím chladičem neexistuje téměř žádné riziko. Kdy jste naposledy slyšeli o selhání desktopového CPU - v roce 2003? Samozřejmě, serverové CPU jsou mnohem rychlejší, ale hledáme dostatečně dobré řešení.
Je dobrý nápad monitorovat zatížení CPU a teplotu, aby se předešlo náhodným restartům.
RAM
Potřebné množství RAM závisí na velikosti databáze a počtu uživatelů. V našem scénáři je velikost databáze 50 GB a máme maximálně 30 uživatelů.
Maximální velikost, kterou může Firebird spotřebovat, je velikost databáze (v tomto případě bude plně cacheována v RAM) plus 200-300 MB na uživatele (v případě Firebirdu 2.5 SuperClassic). Takže ideální maximální velikost RAM je 64 GB, ale protože chceme šetřit, a protože máme rychlé SSD, můžeme použít jen 16 GB.
Někteří uživatelé v takovém scénáři pracují dobře i s 8 GB, ale 8 GB je docela těsné: v tomto případě by na stejném serveru neměla být používána žádná jiná aplikace. 16 GB je doporučené minimální optimum.
Cena na Amazonu je 59,99 USD x 2 = 120 USD
Rizika spojená s RAM
RAM je náchylnější k selhání než CPU, ale méně než disky. Podniková RAM má speciální mechanismy ke snížení možnosti chyb, jako jsou paritní kontroly. Jak můžeme odhadnout a snížit riziko selhání paměti?
Za prvé, existují metody kontroly paměťových čipů, a pokud takové testy úspěšně projdou, paměťové čipy budou fungovat mnoho let. Za druhé, když RAM selže, je to obvykle velmi znatelné: počítač buď má modrou obrazovku smrti nebo kernel panic, nebo časté restarty: všechny takové příznaky vyžadují kontrolu a v případě špatných výsledků výměnu RAM.
Základní deska
Základní deska je důležitou součástí každého počítače. Naštěstí jsou moderní základní desky pro desktopy velmi spolehlivé, zejména desky vydané před 4-5 lety - mají všechny potřebné aktualizace a jsou stabilní. A - ano, jsou levné.
Potřebujeme základní desku s podporou RAID, s integrovaným video čipem a s dostatečným počtem SATA konektorů. Něco jako tato:
ASUS M5A78L-M Plus/USB3 DDR3 HDMI DVI USB 3.0 760G MicroATX Motherboard
Cena na Amazonu je 74,99 USD
Má velmi pozitivní recenze a snadno se konfiguruje pro RAID1.
Desktopová skříň
Potřebujeme desktopovou skříň, do které zapojíme všechny komponenty počítače, s dostatečným napájecím zdrojem. Něco jako toto: 76,82 USD http://amzn.to/2ydeYs1
UPS
Jedna věc, která není součástí serveru, ale měla by být vybavena každým počítačem s důležitými daty uvnitř - nepřerušitelný zdroj napájení (UPS).
UPS chrání počítač před výpadky a kolísáním napájení. Podle našich zkušeností je přepětí nebo abnormální ztráta napájení počítače hlavním zdrojem poškození databází.
Něco jako CyberPower CP1200AVR, za 117,97 USD, by mělo být dostatečně dobré.
Celkem
Výsledkem je celková cena všech počítačových komponent a UPS = 855,27 USD - což je dokonce méně než 1000 USD, avšak než se tyto komponenty stanou funkčním počítačem, musí být sestaveny, vybaveny operačním systémem a otestovány.
| Položka | Cena | Počet | Celkem |
|---|---|---|---|
| SSD Samsung 850 Pro 256 Gb MZ-7KE256BW | 124,24 USD | 2 | 248,48 |
| Seagate SkyHawk 2TB Surveillance Hard Drive | 74,99 | 2 | 149,98 |
| CPU AMD FX-8320E | 86,02 USD | 1 | 86,02 |
| RAM Corsair Vengeance 8GB | 61,99 USD | 2 | 123,98 |
| Základní deska ASUS M5A78L-M Plus | 57 USD | 1 | 57 |
| Počítačová skříň | 69,99 USD | 1 | 69,99 |
| CyberPower CP1200AVR | 119,82 USD | 1 | 119,82 |
| Celkem | 855,27 |
Sestavení serveru
Aby bylo možné všechny tyto součásti sestavit do funkčního serveru a nainstalovat na něj operační systém (doporučili bychom některou z distribucí Linuxu, jako je CentOS7+ nebo Ubuntu Server 16+), musí být všechny tyto komponenty správně sestaveny/zapojeny.
Není to obtížné, stačí pouze šroubovák, trocha trpělivosti a čas na pečlivé přečtení instrukcí a zhlédnutí několika videí na YouTube. Před 10 lety byl téměř každý vývojář schopen sestavit počítač z těchto součástí, dnes je to jiné, ale stále to není obtížné.
Co když nechcete server sestavovat?
Existuje zkratka - je možné koupit počítač s podobnou konfigurací, která téměř vyhovuje našim potřebám, a zapojit do něj další komponenty (např. disky).
Doporučil bych podívat se na tento počítač - původně navržený jako herní PC, má 8jádrový procesor a 16 GB RAM a stojí pouze 709 USD.
Bude nutné jej vybavit (otevřít skříň a zapojit) dvojicí SSD disků (+248,48 USD), jedním dalším záložním diskem (+74,99 USD) a samozřejmě UPS (+119,82 USD). Celkem to bude 1153 USD - což je více než cíl 1000 USD, především kvůli grafické kartě a pěkné počítačové skříni. Stále je nutné nakonfigurovat RAID1 (v BIOSu) a samozřejmě nainstalovat serverový OS místo předinstalovaného Windows 10 Home.
Tento přístup lze použít k přeměně výkonného stolního počítače na server - jednoduše přidejte redundantní SSD a záložní disky.
V minulosti mnoho malých a středních podniků a startupů používalo takto vlastnoručně sestavené servery, nyní je trendem používat cloudové virtuální stroje.
Jak si stojí virtuální stroje ve srovnání s vlastnoručně sestaveným serverem?
Samozřejmě, budování a údržba vlastního serveru vyžaduje určité dovednosti (ne tak vysoké, jak by se mohlo zdát), takže mnoho společností se chce zbavit všech hardwarových serverů (a případně propustit správce systému odpovědného za servery).
V dalším článku se budeme zabývat virtuálním strojem v cloudu jako databázovým serverem pro malé a střední podniky.
Další články o výkonu databáze Firebird:
- Průvodce hardwarem pro Firebird
- Ladění 1,7TB databáze Firebird
- Služba optimalizace výkonu Firebird
- 45 způsobů, jak zrychlit databázi Firebird
- Sbírka optimalizovaných konfiguračních souborů Firebird
Kontaktujte nás
Neváhejte se zeptat na jakékoli dotazy: [email protected].
Poděkování
Mnohokrát děkujeme lidem, kteří zaslali návrhy a vylepšení tohoto článku:
- Vlad Khorsun
- Dmitri Kuzmenko
- Pavel Zotov
- Sergey Nikitin
- Emil Mustea