Přepínače v boot sekvenci Exchange serveru

/3GB

Před ukázkou samotné možnosti optimalizace využívání paměti aplikacemi na serverech Microsoft Windows 2000 Advanced Server a vyšších je třeba uvést následující.

Za prvé, pokud používáte na vašem Exchange serveru méně než 1 GB RAM, pak na zbytek článku zapomeňte a vyplňte si pro finanční oddělení žádost o uvolnění financí na rozšíření RAM serveru.

Za druhé, defaultně jsou výše zmíněné servery nastaveny tak, že rezervují 2 GB virtuálního adresního prostoru pro kernel mód (operační systém) a 2 GB pro user mód (aplikace). V případě, že používáteMicrosoft Exchange Server 2003, určitě se vám bude hodit alokace více paměti pro uživatele, kteří mají na storage připojeném k Exchangi přístup do mailboxů nebo veřejných složek. Je totiž zásadně nepřípustné, aby procesu store.exe (databáze Exchange) došla virtuální paměť. Pokud k tomu totiž dojde, alokace paměti nebude úspěšná (i přes to, že fyzické RAM máte dostatek) a nezbyde vám, než restartovat službu Microsoft Exchange Information Store.

Bez použití přepínače /3GB tedy bude hlásit Exchange server „Out of memory„, i když bude mít třeba 2 GB fyzické RAM, jakmile se Store.exe pokusí alokovat více, než defaultní 2 GB virtuální paměti. Task Manager vám v tomto případě k odsledování problémů s pamětí moc nepomůže, protože fyzické paměti bude mít dostatek. Napoví až Performance Monitor, ve kterém se dá vybrat sonda pro sledování pohybu virtuálního adresování.

Úskalí používání tohoto přepínače (kromě sebevražedných pokusů rozběhat tuto fíčuru na < 1 GB serverech) může pramenit z uživatelské „různorodosti“. Četl jsem o problémech, kdy se po aplikaci přepínače a nabootování serveru OS chová, jako by neměl ovladače ke grafické kartě (640x480x4bit). Předpokládaným důvodem může být okolnost, že navíc alokovaný 1 GB bude Exchangi k dispozici na úkor jinému hardwaru (např. grafické kartě).

Metodický zdroj a podrobnější informace lze nalézt např. v kb823440.

V uvedeném kábéčku se vyskytuje zajímavá poznámka:

Parametr /3GB není třeba použít v počítačích se systémem Microsoft Windows Small Business Server 2003. Nedoporučujeme používat parametr /3GB v souboru Boot.ini v počítačích se serverem Exchange, které jsou současně servery globálního katalogu nebo řadiči domény služby Active Directory.“

Předpokládám, že vychází z obecně nedoporučované kombinace Exchange a doménového kontroleru. Exchange totiž pro svůj život potřebuje aktivní služby DC (Active Directory). Koexistence na jednom fyzickém serveru (v rámci jedné instance; v rámci více instancí – virtualizace – problém není) představuje riziko výpadků. Služby Exchange totiž mohou startovat rychleji než Active Directory (anebo DNS, IIS atd.). Jak se chová Exchange, kterému chybí AD? 😉

/USERVA

Tento parametr poskytuje lepší rozlišovací schopnost pro rozdělení paměti přidělené uživatelskému režimu a režimu jádra. Toto chování umožňuje škálovat server pro větší počet uživatelů, aniž by hrozilo vyčerpání systémových prostředků. Microsoftem doporučené nastavení je na hodnotu 3030 (3030 MB rezervuje pro oblast procesů). Je to vlastně dopřesnění switche /3GB, který defaultně nastaví /USERVA na hodnotu 3072. Rozdíl 42 MB mezi defaultní a doporučovanou hodnotou se uplatní pro položky stránkovací tabulky (PTE) – navyšuje paměťovou oblast pro kernel. Z toho vyplývá, že PTE je tvořeno rozdílem mezi /3GB a hodnotou /USERVA.

Více o intervalu hodnot pro /USERVA v níže uvedených metodických odkazech.

Metodický zdroj je v tomto případě, podle mého názoru, lepší v anglické verzi (kb810371), než v české (viz kb823440).

Na vlastní oči:

[Boot Loader]
Timeout=30
Default=multi(0)disk(0)rdisk(0)partition(2)\WINNT
[Operating Systems]
multi(0)disk(0)rdisk(0)partition(2)\WINNT=“Microsoft Windows Server 2003″ /fastdetect /3GB /Userva=3030