Mám docela zaneprázdněný databázový server se systémem SQL Server 2008 R2, který má následující nastavení:
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:
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:
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.
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.
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.
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.
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:
Co byste měli udělat, je použít SQLIO k testování výkonu různých konfigurací měničů.