Exchange – Backpressure

Seit Exchange 2007 gibt es dese Schutzfunktion schon in Exchange. Die Idee dahinter ist, bei Überlastung von Ressourcen Funktionen bewusst zu “verlangsamen”, um Komplettausfälle zu vermeiden.
Konkret wird bei Engpässen, was z.B. freien Plattenspeicher angeht, die Annahme von Mails verzögert und im Extremfall auch komplett zu verweigert, um zu verhindern, dass der jeweilige Server komplett überlastet wird.
Wenn die Engpässe behoben werden, nimmt Exchange die “normale” Verarbeitung wieder auf und arbeitet offene Nachrichten ab.

Überwacht werden die folgenden Ressourcen (Quelle MS):

  • DatabaseUsedSpace[%ExchangeInstallPath%TransportRoles\data\Queue]
    • Festplattenauslastung für das Laufwerk, das die Nachrichtenwarteschlangendatenbank enthält.
  • PrivateBytes
    • Der Arbeitsspeicher, der vom EdgeTransport.exe-Prozess verwendet wird.
  • QueueLength[SubmissionQueue]
    • Die Anzahl der Nachrichten in der Übermittlungswarteschlange.
  • SystemMemory
    • Der Speicher, der von allen anderen Prozessen verwendet wird.
  • UsedDiskSpace[%ExchangeInstallPath%TransportRoles\data\Queue]
    • Festplattenauslastung für das Laufwerk, das die Transaktionsprotokolle der Nachrichtenwarteschlangendatenbank enthält.
  • UsedDiskSpace[%ExchangeInstallPath%TransportRoles\data]
    • Festplattenauslastung für das Laufwerk, das für die Inhaltskonvertierung verwendet wird.
  • UsedVersionBuckets[%ExchangeInstallPath%TransportRoles\data\Queue\mail.que]
    • Die Anzahl der nicht committen Nachrichtenwarteschlangen-Datenbanktransaktionen, die im Arbeitsspeicher vorhanden sind.

Es sind im Standard von MS die folgenden Levels definiert:

  • Niedrig oder Normal
    • Die Ressource wird nicht übermäßig verwendet. Der Server nimmt neue Verbindungen und Nachrichten an.
  • Mittel
    • Die Ressource ist etwas überlastet. Die Rückstaufunktion wird in begrenztem Umfang auf den Server angewendet. E-Mail von Absendern in der autoritativen Domäne der Organisation kann übermittelt werden. Je nach der spezifischen ausgelasteten Ressource verwendet der Server jedoch das Teergrubenverfahren, um die Serverantwort zu verzögern, oder weist eingehende MAIL FROM -Befehle von anderen Quellen zurück.
  • Hoch
    • Die Ressource ist stark überlastet. Die Rückstaufunktion wird in vollem Umfang angewendet. Die gesamte Nachrichtenübermittlung wird eingestellt, und der Server weist alle neu eingehenden MAIL FROM -Befehle zurück.

Sollten Sie den Verdacht haben, dass das die Ursache für verzögerte Zustellungen von Mails sein könnte, prüfen Sie das im Eventlog des oder der Exchnage Server. Dort werden je nach Engpass die folgenden Events im application Log zu sehen sein:

  • Event ID 15004: Increase in the utilization level for any resource
  • Event ID 15005: Decrease in the utilization level for any resource
  • Event ID 15006: High utilization for disk space
  • Event ID 15007: High utilization for memory

Die Konfiguration und die aktuelle Auslastung prüfen Sie mit dem folgenden Befehl:

[xml]$bp=Get-ExchangeDiagnosticInfo -Server $Servername -Process EdgeTransport -Component ResourceThrottling; $bp.Diagnostics.Components.ResourceThrottling.ResourceTracker.ResourceMeter

Das Ergebnis sieht im Beispiel folgendermassen aus:

Resource : PrivateBytes
CurrentResourceUse : Low
PreviousResourceUse : Low
PressureTransitions : [PressureTransitions: MediumToHigh=75 HighToMedium=73 LowToMedium=72 MediumToLow=71]
Pressure : 1

Resource : SystemMemory
CurrentResourceUse : Low
PreviousResourceUse : Low
PressureTransitions : [PressureTransitions: MediumToHigh=94 HighToMedium=89 LowToMedium=88 MediumToLow=84]
Pressure : 85

Resource : UsedVersionBuckets[C:\Program Files\Microsoft\Exchange
Server\V15\TransportRoles\data\Queue\mail.que]
CurrentResourceUse : Low
PreviousResourceUse : Low
PressureTransitions : [PressureTransitions: MediumToHigh=1500 HighToMedium=1000 LowToMedium=999 MediumToLow=800]
Pressure : 1

Resource : JetSessions[C:\Program Files\Microsoft\Exchange Server\V15\TransportRoles\data\Queue\mail.que]
CurrentResourceUse : Low
PreviousResourceUse : Low
PressureTransitions : [PressureTransitions: MediumToHigh=1500 HighToMedium=1400 LowToMedium=1000 MediumToLow=900]
Pressure : 11

Resource : CheckpointDepth[C:\Program Files\Microsoft\Exchange
Server\V15\TransportRoles\data\Queue\mail.que]
CurrentResourceUse : Low
PreviousResourceUse : Low
PressureTransitions : [PressureTransitions: MediumToHigh=300 HighToMedium=280 LowToMedium=250 MediumToLow=230]
Pressure : 0

Resource : DatabaseUsedSpace[C:\Program Files\Microsoft\Exchange Server\V15\TransportRoles\data\Queue]
CurrentResourceUse : Low
PreviousResourceUse : Low
PressureTransitions : [PressureTransitions: MediumToHigh=99 HighToMedium=97 LowToMedium=96 MediumToLow=94]
Pressure : 60

Resource : UsedDiskSpace[C:\Program Files\Microsoft\Exchange Server\V15\TransportRoles\data\Queue]
CurrentResourceUse : Low
PreviousResourceUse : Low
PressureTransitions : [PressureTransitions: MediumToHigh=99 HighToMedium=94 LowToMedium=90 MediumToLow=88]
Pressure : 61

Resource : UsedDiskSpace[C:\Program Files\Microsoft\Exchange Server\V15\TransportRoles\data]
CurrentResourceUse : Low
PreviousResourceUse : Low
PressureTransitions : [PressureTransitions: MediumToHigh=99 HighToMedium=94 LowToMedium=90 MediumToLow=88]
Pressure : 61

Eine Anpassung der Schwellwerte ist natürlich möglich. Dazu können Sie in der EdgeTransport.exe.config Datei des Exchangeservers Änderungen vornehmen.
Unter den <appSettings> finden Sie die Schwellwerte und könnten sich hier austoben. Meiner Meinung nach, sollte das aber auf den Standardeinstellungen belassen werden und höchstens im Notfall bei Engpässen und wenn es nicht möglich ist, z.B. den Plattenplatz adhoc zu vergrößern, verändert werden.