Prostor pro aplikace ve fyzické paměti rozdělen na dva důležité bloky: stránkovaný a nestránkovaný, velikost těchto bloků se dá upravit a tak optimalizovat rychlost aplikací.
Prostor pro aplikace ve fyzické paměti rozdělen na dva důležité bloky: stránkovaný a nestránkovaný, velikost těchto bloků se dá upravit a tak optimalizovat rychlost aplikací.
Omezení nestránkované operační paměti pro aplikace
V klíči:
HKEY_LOCAL_MACHINE\Systém \CurrentControlSet\Control \Session Manager\Memory Management
se nacházi definice nestránkované operační paměti pro jednotlivé aplikace. Název proměnné je NonPagedPoolQuota. Je typu REG_DWORD a udává se v rozsahu 1–128 MB.
Toto nastavení zřídí maximální omezující velikost v paměti určenou jako nestránkovaný prostor - nonpaged pool, který může být přidělen libovolnému procesu. Velikost se udává v MB. Když bude proces požadovat více prostoru bez virtuálního překlápění na disk, bude tento požadavek zrušen. Nestránkovaný prostor - nonpaged pool je oblast systémové paměti, rezervovaná se speciálním příznakem, jenž udává, že musí zůstat ve fyzické paměti. Běžně je zde definována nula, která nechává velikost této oblasti na systémovém výpočtu. Ten vychází především z velikosti dostupné fyzické paměti a z objemu stránek potřebných pro systém. Mechanizmus je trochu podobný stanovení prostoru pro I/O operace. Změna této hodnoty může velice ovlivnit provozní charakteristiky Windows NT Serveru, proto opatrně s její editací.
Maximální hranice pro nestránkované bloky paměti
Proměnná NonPagedPoolQuota ovlivňuje její maximální přidělení pro jednu aplikaci. Ovšem existuje i omezující hranice pro všechny tyto požadavky všech pracujících aplikací. Tedy definice celkové velikosti nestránkovaného prostoru paměti. Najdeme ji v
HKEY_LOCAL_MACHINE\SYSTEM \CurrentControlSet\Control \Session Manager\Memory Management.
Zde přidáme proměnnou NonPagedPoolSize s datovým typem REG_DWORD. Hodnotou je opět rozsah byte, odkazující na systémový výpočet, závislý na objemu fyzické paměti. Standardní je nula. Tak nastavíme celkovou velikost nonpaged pool v bytech. Absolutním maximem je zabrat až 80 procent fyzické paměti. Samozřejmě tento objem nebude stále alokován, ale bude jen omezujícím faktorem, kdyby součet všech najednou požadovaných NonPagedPoolQuota od aplikací přesáhl tuto mez. V tom případě by se další aplikační požadavky zrušily.
Celkový prostor stránkování
Jak vyplynulo z předchozích řádek, je prostor pro aplikace ve fyzické paměti rozdělen na dva důležité bloky:
Nestránkovaný prostor - nonpaged pool je oblast systémové paměti Windows NT Serveru, rezervovaná se speciálním příznakem. Ten způsobí, že tyto stránky musí vždy zůstat ve fyzické paměti a nelze je tedy odložit na disk do stránkových rámů v souborech Pagefile.sys.
Stránkovaný prostor - paged pool je naopak oblast systémové paměti běžného typu, která se plynule Virtual Memory Managerem odkládá na disk do stránkových rámů nebo se vrací zpět do stránek fyzické paměti.
Obě tyto oblasti lze v klíči:
HKEY_LOCAL_MACHINE\SYSTEM \CurrentControlSet\Control \Session Manager\Memory Management
nastavovat jak do maxima celkové velikosti (Size), tak i do maximální hranice přidělené pro jeden proces (Quota). Poslední proměnnou, kterou nám zbývá popsat je PagedPoolSize, typu REG_DWORD.
Udává celkovou nejvyšší velikost prostoru fyzické paměti, který lze stránkovat. Má rozsah od 0 do 128 MB. Standardem je hexadecimálně: 0x3000000 (tedy 32 MB). Zadáme-li nulu, bude velikost automaticky stanovena systémem podle velikosti RAM. PagedPoolSize souvisí i s proměnnou RegistrySizeLimit v HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control. Tento prostor pro registrační databázi musí být totiž vždy v paměti k dispozici.