Onze SBS bak heeft 2 GB ddr geheugen en draait behalve ISA, SQL met 4 GB aan databeest ook nog Exchange voor 67 gebruikers.
Het geheugen zit permanent vol ja, maar dat komt omdat met name Exchange en ISA de aanvankelijk eng uitziende neiging hebben vrolijk hele blokken RAM te grijpen. Op het moment dat ik SQL uit zet gaat er wel wát geheugen af, maar het vrije RAM blijft weinig: Windows probeert dat te gebruiken voor die andere RAM vreters, ISA en Exchange. Het levert in ons geval geen merkbare performance wijziging op als ik SQL dicht gooi.
Als ik me niet vergis is het zo, dat Windows geheugen als "vrij" aanmerkt op het moment dat er helemaal NIETS mee te doen valt: als de totale toewizing van virtueel geheugen dus onder het niveau van aanwezig RAM daalt. Maar, ISA, SQL en Exchange alloceren bij opstarten gelijk hele grote hoeveelheden virtueel geheugen. Dat geheugen zou normaliter op een 512 MB bak geheel uit de swap file komen. Omdat je echter je server een beetje behoorlijk van RAM voorzien hebt, plempt Windows het in het veel snellere RAM. Daardoor lijkt dat vol te zitten. Start je nu echter Doom op op die server (bijvoorbeeld... niet IRL doen, kost je je baan) dan gaat ook Doom in z'n eigen address-space een hele kluit geheugen alloceren en gaat Windows schuiven met reeds bezette pages. De pages die al een poos niet door ISA en SQL en Exchange gebruikt zijn schuift Windows de swapfile in en Doom's veelgebruikte pages krijgen, net als alle pages die veelvuldig benaderd worden, adressen in het physieke geheugen. Sluit je Doom af, dan geft die z'n gebruikte RAM vrij, en kan Widows het weer vullen met andere zaken. Zaken in de swapfile die worden aangeroepen verhuizen naar het RAM geheugen en vijf seconden later is je RAM weer vol.
In het kort komt het er dus op neer dat je bij een server waar software op draait die standaard z'n volle potentiele bereik alloceert ALTIJD "vol" geheugen hebt. Dit is op zich wel goed: het dure RAM wordt maximaal benut, en de langzame swapfile wordt alleen gebruikt voor datgene dat zelden aangeroepen wordt. Je kunt als je écht heel erg haatdragend jegens Windows bent een RAM defragger downloaden. Deze defraggers werken allemaal hetzelfde: je alloceert een ENORM blok geheugen, spuit er even snel wat nullen en éénen doorheen zodat de pages veel aangeroepen worden en dus allemaal in het physieke RAM terecht komen, en maakt dan je gealloceerde geheugen weer leeg, waarna je het vrij geeft aan Windows. Dan worden dus alle bedrijfscritische processen die in je RAM zaten naar de swapfile geduwd (dit is NIET fijn) en heb je ineens een gigabyte RAM vrij. Dit is exact het gedrag dat hierboven met Doom voorgesteld werd.
Als je geen ernstige performance problemen ondervindt, en niet duidelijk kan zien dat Windows de performance sloopt door alles in z'n swapfile te doen, heb je in wezen helemaal geen probleem. Meer geheugen erin rammen is dan alleen maar jammer van de centen.
Als je hier meer over wilt weten moet je even met Google op jacht naar Windows memory management. De samenvatting is op zich niet enorm complex maar ik ben er onvoldoende in thuis om een hele cursus te gaan schrijven