it-swarm-eu.dev

Optimální konfigurace jednotky pro SQL Server 2008R2

Mám docela zaneprázdněný databázový server se systémem SQL Server 2008 R2, který má následující nastavení:

  • SATA RAID 1 (2 disky) - OS/programy
  • SAS RAID 10 (4 disky) - Sql databázové soubory (data a logy)
  • SAS RAID 1 (2 disky) - TempDB (data a protokoly)

Za předpokladu, že na tento server nemůžu přidat další jednotky, využil jsem co nejlépe konfiguraci, kterou mám k dispozici? Nebo bych měl zvážit jiné schéma, kde jsou protokoly izolovány například od datových souborů?

Aktualizace:

Pro ty, kteří požadovali další podrobnosti o hardwaru:

  • Jednotky SATA (používané pro oddíl OS/Program) jsou: WD 7200 RPM 3 Gb/s SATA 3,5 palce
  • Jednotky SAS používané v ostatních polích jsou: Seagate 15K RPM 6 Gb/s 3,5 palce SAS
  • Použitý řadič RAID je: port LSI 9260-8i SAS/SATA 6 Gb 8

Aktualizace 2:

Na základě zpětné vazby, kterou jsem obdržel, vypadá to, že mám na výběr z následujících životaschopných možností - odměnu za odměnu někomu, kdo mi může říct, který je pravděpodobně jako nejlepší v prostředí, které jsem nastínil:

  1. Nechte všechno tak, jak je - pravděpodobně nebudu dělat mnohem lépe
  2. Přesuňte mé 2 SAS jednotky RAID 1 do mého stávajícího pole RAID 10, aby bylo složeno celkem ze 6 disků
  3. Přesuňte mé logovací soubory na SAS RAID 1 a/nebo přemístěte TempDB (data nebo logy) zpět do RAID 10
19
DanP

Varianty této otázky se objevují poločasně:

Existují také občasné boje o „osvědčené postupy“ oddělení dat/protokolů.

Bez podrobnější analýzy toho, co tento server dělá, platí stejná rada jako dříve.

  • RAID 1 pro OS
  • RAID 10 (6 disk) pro data/logy/tempdb

Ve zlomku je zřídka jakýkoli bod s tak malým počtem vřeten. Jedno pole s větší kapacitou IOP obvykle ponoří hrčky a hrboly vašeho pracovního vytížení lépe než 2 menší pole.

Jednou z variant, která stojí za testování, je uvedení tempdb na jednotku OS. Učiňte tak pouze v případě, že máte reprezentativní pracovní vytížení, které můžete opakovaně přehrávat, abyste zajistili spravedlivé srovnání konfigurace. Pokud se rozhodnete pro toto uspořádání ve výrobě, ujistěte se, že růst tempdb je omezen, takže nechcete neúmyslně spotřebovat veškerý volný prostor na jednotce OS.

Vzhledem k tomu, že vaše OS disky jsou 7200RPM tácky, byl bych překvapen, kdyby tempdb na OS disku nesl nějaké výhody.

14

Vše záleží na vaší pracovní zátěži, ale pouze 6 jednotek omezuje vaše možnosti. Pokud vaše pracovní zátěž není příliš závislá na tempdb pro věci, jako je řazení, tabulky hash a izolace snímků, pak byste mohli být lépe pomocí jednotek 6 SAS společně v RAID 10). Pokud však znáte nebo máte metriky, které dokazují, že tempdb je intenzivně využíván, pak byste jej měli udržovat odděleně, jak máte.

7
Patrick Keisler

Velmi záleží na tom, co máte na mysli pod pojmem „velmi zaneprázdněný“: různé vzorce pracovní zátěže (psaní těžké nebo ne, hromadné operace běžné nebo ne, úroveň souběžného přístupu, abychom pojmenovali, ale tři z mnoha proměnných) mohou mít drastický účinek na provedení daného uspořádání vřetena.

V případě těžké situace při zápisu může oddělení protokolů od dat způsobit významný rozdíl, protože každý zápis zahrnuje aktualizaci jak protokolu, tak datových souborů, takže zahrnuje značné množství převrácení hlavy, pokud jsou obě sady souborů na stejné sadě vřeten. .

Bez dalšího odkazu na vaše pracovní vytížení (a specifikace těch jednotek a jakéhokoli řadiče, který je mezi nimi a strojem), bych byl ochoten jít na tři svazky: jeden pro OS + programy a tempdb (data), jeden pro hlavní DB data a třetí pro protokoly (tempdb i hlavní DB).

Samozřejmě, pokud jsou vaše pracovní zátěž velmi lehká na operace zápisu, neměli byste trávit příliš mnoho času staráním se oddělením dat a protokolů, protože by to mělo malý rozdíl ve výkonu a věnování celého objemu pro ně by bylo docela zbytečné prostor.

2
David Spillett

Skutečná odpověď závisí na vašich potřebách, ale obecně „dát data a přihlásit se do různých polí“ je důležitější než „dát tempdb na vlastní pole“.

Vzhledem k počtu jednotek, které máte k dispozici, by bylo mým výchozím bodem:

  1. Dva disky, RAID 1 - operační systém, spustitelné soubory, stránkovací soubor.
  2. Čtyři jednotky, RAID 5 - všechny datové soubory (alternativně RAID 1 + 0)
  3. Dvě jednotky, RAID 1 - Všechny soubory protokolu

Co byste měli udělat, je použít SQLIO k testování výkonu různých konfigurací měničů.

2