it-swarm-eu.dev

Je výkon procesoru relevantní pro databázový server?

Toto je čistě teoretická otázka. Řekněme, že mám aplikaci nasazenou na více serverech.

  1. Vyvažovač zatížení,
  2. Více/škálovatelné aplikační servery
  3. A (single) database server (for the moment)

V prvních dvou částech vím, co hledat. Ale co databázový server? Jaký hardware bych měl hledat?

  • Je frekvence CPU relevantní pro databázový server?
  • Jsou relevantní vícejádrové procesory?
  • Je RAM důležitější než CPU?

PS: Předpokládáme, že vybraná databáze je MySQL nebo PostgreSQL.

33
Zenklys

Pro PostgreSQL může být výkon procesoru velmi důležitý, zejména pokud do paměti RAM zapadá poměrně vysoké procento aktivní pracovní sady vašich dat. Většina databází, se kterými jsem pracoval, měla většinu času CPU jako hlavní překážku. (Právě jsem zkontroloval vmstat na serveru hostujícím webové stránky s miliony přístupů denně, které hostovaly více než 5 TB databázového prostoru, a nikdy jsem neviděl více než 2% času čekání na disk, ale viděl jsem vrchol 12% času CPU uživatele.)

Protože PostgreSQL je založeno na procesech, každý jednotlivý proces může běžet jen tak rychle jako jedno jádro, ale ve směsi, jako máme na výše uvedeném serveru, s velkým objemem malých požadavků, je nejdůležitější celkový procesor ve všech jádrech. Při stejném celkovém výkonu procesoru bude PostgreSQL obecně pracovat lépe s menším počtem rychlejších jader než s mnoha pomalejšími jádry.

Až do mezipaměti vysokého procenta aktivní sady dat je přidání RAM obvykle pro buck zobrazí větší třesk než přidání jader. Po dostatečném ukládání do mezipaměti je výhodou další RAM klesá a máte lepší podporu při zvyšování výkonu procesoru).

Pro více informací o tomto tématu, které se týká PostgreSQL, si nemyslím, že existuje lepší zdroj než PostgreSQL 9.0 vysoký výkon od Greg Smith . (Úplné zveřejnění, byl jsem technickým recenzentem knihy, ale nezískávám na základě prodeje žádné finanční výhody.)

29
kgrittn

Přísně z pohledu MySQL je to velmi načtená otázka

Frekvence CPU relevantní pro databázový server?

Zatímco rychlejší procesor a základní deska jsou skvělé, další překážky se mohou dostat do cesty. Mezi tato úzká místa patří:

  • Disk I/O
  • Maximální připojení
  • Latence sítě
  • Výkon dotazu na připojení

Každá malá výhoda pomůže, ale musím říci Ne , protože rychlost CPU se sama o sobě ve výše zmíněných úzkých místech nezlepší. Koneckonců, co dobrého dokáže Formule 1 RaceCar nosit na otevřeném padáku nebo s gorilou 800 liber za volantem?

Jsou relevantní vícejádrové procesory?

To záleží zcela na verzi MySQL, kterou používáte. MySQL 5.1 InnoDB Plugin, MySQL 5.5 a XtraDB serveru Percona Server mají nastavení MUSÍTE PŘÍPRAVNĚ NASTAVIT, abyste InnoDB dostali přístup ke všem jádrům. Skutečná motivace k tomu vyplývá ze skutečnosti, že některé starší verze MySQL LEFT UNCONFIGURED jsou rychlejší než novější verze, jak jsem diskutoval ve svých minulých příspěvcích:

Proto pokud nechcete nakonfigurovat InnoDB pro přístup ke všem procesorům, když máte více jader, nekupuje vás absolutně nic.

Je RAM důležitější než CPU?

Ano, opravdu ano. Konfigurace paměti pro MySQL vyžaduje nastavení

Požadavek příliš málo nebo příliš mnoho jakékoli kombinace těchto věcí a MySQL se vrací, aby vás kousl. Rychlejší procesor s MySQL nesprávně nakonfigurovaným pro RAM) vás MySQL skusí rychleji.

23
RolandoMySQLDBA
  • Ne
  • Ne
  • Ano

Zjednodušeně řečeno, potřebujete RAM a IO výkon (latence + rychlost čtení + rychlost zápisu) pro databáze).

Volba 4 nebo 6 jader nebo 2,5 GHz vs. 3 GHz není ve skutečnosti relevantní (předpokládám, že si nemusíte vybírat mezi P3-450 s 32 GB RAM nebo nejnovější Xeon s 1 GB RAM).

Pokud jste vázáni CPU, máte další problémy (špatný design, špatné indexy, výměna, dedikovaný server atd.)

6
gbn