Back pressure

Om Exchange tegen zichzelf te beschermen bevat Exchange een aantal functionaliteiten om problemen te voorkomen. Denk bijvoorbeeld aan het automatisch dismounten van de databases indien er te weinig schijfruimte beschikbaar is en throttlingpolicies (alleen Exchange 2010).

Eén van de andere functionaliteiten is back pressure. Het back pressure mechanisme werkt als volgt:

Wanneer één van de volgende items een bepaald percentage wordt overschreden zal een event log worden gegenereerd en zullen mogelijk functionaliteiten uitgeschakeld worden.

In bovenstaande voorbeeld is de beschikbare ruimte op de schijf waarop de queue database is geplaatst minder dan 95%. Het gevolg hiervan is dat Exchange geen nieuwe berichten meer zal accepteren en een foutmelding zal versturen naar de verzendende mailserver.

Maar hoe bepaald Exchange of een limiet wordt overschreden en welke resources worden gemonitord? Onderstaand een overzicht van resources welke worden gemonitord:

  • vrije ruimte op de disk waarop de message queue database is geplaatst
  • vrije ruimte op de disk waarop de message queue database transaction logs geplaatst zijn
  • het aantal niet verwerkte message queue database transacties die zich in het geheugen bevinden
  • het geheugenverbruik van het EdgeTransport.exe proces
  • het geheugenverbruik van alle andere processen

Exchange kent drie niveau’s toe aan alle resources:

  • normal, het resource verbruik is normaal
  • medium, het resource verbruik is hoger dan normaal, mail van afzenders van authoritative domeinen worden geaccepteerd maar overige connecties worden vertraagd of zelfs niet toegestaan.
  • high, het resource verbruik is abnormaal hoog, het verwerken van berichten zal stop gezet worden en nieuwe connecties worden niet toegestaan

Wanneer je in detail naar de eerdere foutmelding kijkt zie je een aantal componenten genoemd worden. Eén hiervan is version buckets, hiermee worden de database transacties bedoeld welke zich in het geheugen bevinden maar nog niet zijn gecommit in de database. Naast deze parameter zijn er nog twee andere parameters private bytes en physical memory load.

De laatste spreekt voor zich, de hoeveelheid fysiek geheugen welke verbruikt wordt. Wanneer dit boven de 94% komt zal er message dehydriation worden toegepast. Tijdens dit proces worden niet benodigde onderdelen van berichten welke zich in de queue bevinden verwijderd uit het cache geheugen. Berichten worden namelijk in zijn geheel in het cache geheugen geplaatst om een goede performance te kunnen garanderen. Dit heeft echter als negatief effekt dat de latency zal toenemen.

Met de private bytes wordt het geheugen verbruik van het EdgeTransport.exe proces aangegeven. Standaard heeft deze een maximum limiet van 75% van het geheugen. Indien de server echter beschikt over meer dan 1 TB geheugen zal dit als limiet gebruikt worden. Wanneer het geheugen verbruik meer dan normaal is zal het garbage collection proces worden geactiveerd. Dit proces controleert de inhoud van het geheugen op ongebruikte objecten en ruimt deze op zodat het geheugenverbruik dus afneemt.

In onderstaande tabel is een overzicht te zien van de acties die worden uitgevoerd wanneer het verbruik van de resource te hoog is:

[table id=1 /]

Mocht je meer informatie over het back pressure proces will hebben neem dan eens een kijkje op deze site.

Free subscription



You may also like...

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *