Hoe schat je op een snelle, ietwat onorthodoxe manier het aantal gebruikersverbindingen met IIS-sites op Windows Server?
Heb je je ooit afgevraagd hoeveel gebruikers er daadwerkelijk verbonden zijn met je IIS-webserver zonder ingewikkelde logbestanden of tools te hoeven analyseren? Dan is dit artikel wellicht precies wat je zoekt. Je wilt de huidige belasting in de gaten houden – hoeveel mensen er op dit moment je websites bezoeken – zodat je updates kunt plannen, vertragingen kunt diagnosticeren of gewoon kunt inschatten of je server overbelast raakt. Het goede nieuws is dat Windows ingebouwde tools heeft waarmee je deze aantallen in realtime of met scripts kunt bekijken, en het is niet zo moeilijk als je het eenmaal door hebt.
Met Performance Monitor of PowerShell krijg je een redelijk beeld van hoeveel sessies of verbindingen actief zijn. Dit is geen supernauwkeurige belastingstest, maar voor snelle schattingen is het meestal voldoende. Als je bijvoorbeeld de teller voor actieve verbindingen ziet oplopen, dan zijn er inderdaad veel mensen aan het browsen. Blijft deze stabiel of laag, dan is het verkeer waarschijnlijk gering. Aan de andere kant kunnen Windows of IIS soms inconsistent zijn, dus het is de moeite waard om op verschillende tijdstippen te controleren of scripts in te stellen als je dit regelmatig doet.
Hoe u IIS-gebruikersverbindingen in Windows Server kunt herstellen of bewaken
Methode 1: Gebruik Prestatiemeter om de huidige gebruikerssessies te bekijken.
Dit is de eenvoudigste manier om een live overzicht van actieve sessies te krijgen. Je kent Perfmon waarschijnlijk al – start het door het perfmonin het uitvoervenster ( Windows-toets + R ) of in een opdrachtprompt te typen. Ga na het openen naar Hulpprogramma’s voor bewaking -> Prestatiebewaking. Het ziet er in eerste instantie wat minimalistisch uit, maar het mooie is dat je tellers kunt toevoegen die daadwerkelijke IIS-verbindingen bijhouden.
Om de tellers toe te voegen, klikt u op de groene knop ‘Toevoegen’ (of drukt u op Ctrl + N) en er verschijnt een lijst. Zoek en vouw de sectie ‘Webservice’ uit — deze vindt u meestal onder ‘Prestatietellers’. U wilt er een paar toevoegen:
- Huidige anonieme gebruikers — voor bezoekers die niet inloggen en alleen anoniem browsen;
- Huidige niet-anonieme gebruikers — voor ingelogde gebruikers of gebruikers met inloggegevens;
- Huidige verbindingen — uw totale aantal actieve verbindingen met IIS.
Wanneer u een teller selecteert, kunt u ook kiezen naar welke IIS-site(s) deze verwijst, via een keuzelijst met opties zoals _Totaal of individuele sitenamen. Klik op Toevoegen >> en vervolgens op OK. Deze configuratie toont u realtime grafieken van verbindingen, en als u op een specifieke teller klikt, kunt u de huidige, minimale, maximale en gemiddelde waarde over tijd bekijken. Erg handig voor een snelle controle. Houd er rekening mee dat de tellers in sommige configuraties de eerste paar minuten traag kunnen worden bijgewerkt of zich vreemd kunnen gedragen – dit is vrij normaal bij prestatietellers; ze lijken soms wat haperingen te vertonen.
Methode 2: Gebruik PowerShell om snel verbindingsstatistieken te verkrijgen
Deze optie is wat flexibeler als je liever scripts gebruikt. PowerShell heeft een Get-Countercmdlet waarmee je dezelfde tellers als Performance Monitor kunt uitlezen, maar die het automatiseren vereenvoudigt. Om te zien welke tellers voor webservices beschikbaar zijn, voer je het volgende commando uit:
(Get-Counter -ListSet 'Web Service').Counter
Dit geeft een lijst met tellers voor uw IIS-server weer, waaronder het aantal verbindingen, verzonden/ontvangen bytes, enz. Om het huidige aantal actieve verbindingen in totaal te bekijken, voert u het volgende commando uit:
Get-Counter -Counter "\Web Service(_total)\Current Connections"
Deze opdracht geeft doorgaans zowel het totale aantal verbindingen met alle sites als gedetailleerde informatie per site weer, afhankelijk van de IIS-configuratie. Om de numerieke waarde te zien, voegt u | Select-Object -ExpandProperty CounterSamples toe en selecteert u de CookedValue. Probeer bijvoorbeeld:
((Get-Counter -Counter 'Web Service(_total)\Current Connections') | Select-Object -ExpandProperty CounterSamples).CookedValue
Dit toont een getal: hoeveel actieve verbindingen er op dit moment zijn. Wilt u de verbindingen van meerdere sites tegelijk bekijken? U kunt de module WebAdministration laden en een klein script schrijven zoals dit:
Import-Module WebAdministration Function Get-CurrentConnections($Site) { Get-Counter "Web Service($Site)\Current Connections" -ComputerName $env:COMPUTERNAME } $IISsites = (Get-ChildItem IIS:\Sites).Name $Results = @() foreach ($site in $IISsites) { $Connections = Get-CurrentConnections $site $Results += [PSCustomObject] { Site = $site Connections = $Connections. CookedValue } } $Results | Out-GridView
Dit kleine script haalt de actuele verbindingsaantallen op voor alle IIS-sites en toont een eenvoudige tabelweergave. Het is niet erg gedetailleerd, maar voldoende voor snelle controles. Ik weet niet waarom, maar op sommige machines duurt het even voordat de tellers worden bijgewerkt of worden verouderde gegevens weergegeven – verwacht dus geen perfecte nauwkeurigheid, maar een ruwe schatting.
Bonus: Simuleer een lichte belasting om de verbindingen te testen.
Als je wilt zien hoe de tellers veranderen wanneer de belasting toeneemt, open dan meerdere browsertabbladen of voer een script uit zoals dit:
$Counter = 20 for ($i=1; $i -le $Counter; $i++) { Start-Process "http://localhost:9666/" }
Hierdoor worden meerdere verzoeken verzonden, waardoor het aantal verbindingen toeneemt. Ga vervolgens terug naar Prestatiemeter of PowerShell en controleer of de aantallen dienovereenkomstig zijn gestegen. Soms kan het even duren voordat Windows of IIS nieuwe verbindingen registreert, vooral bij zware belasting, dus raak niet in paniek als het niet direct gebeurt.
Samenvatting
- Gebruik Prestatiemeter om de realtime verbindingstellers van IIS in de gaten te houden.
- Gebruik PowerShell-opdrachten om controles te scripten of rapporten te automatiseren.
- Schrijf voor meerdere websites een script om gegevens op te halen en op een gebruiksvriendelijke manier weer te geven.
Samenvatting
Kortom: het bijhouden van gebruikerssessies in IIS is geen hogere wiskunde, maar het is niet altijd meteen duidelijk. Prestatiemeters en PowerShell zijn hierbij je beste vrienden; ze bieden snel inzicht zonder dat je in logbestanden hoeft te duiken of complexe tools hoeft te gebruiken. Houd er wel rekening mee dat tellers soms wat onbetrouwbaar kunnen zijn of achterlopen op het werkelijke verkeer, dus vertrouw er niet op voor supernauwkeurige analyses – het is eerder een ruwe schatting. Over het algemeen is deze methode goed genoeg voor de meeste snelle controles en planningen. Hopelijk bespaart dit iemand een paar uur, of biedt het in ieder geval een goed uitgangspunt. Ik hoop dat dit helpt.