Caccia alle mailbox “iperattive”

emailstorm

Spesso mi capita di fare troubleshooting o analisi di infrastrutture Exchange che lamentano problemi di performance.

Il percorso parte sempre dall’analisi dell’infrastruttura e nella maggior parte dei casi si ferma in quella zona;

a volte è invece necessario proseguire e spostarsi “in periferia” per capire se c’è qualcosa da quelli parti che merita di essere analizzato, come ad esempio l’attività dei client. Può capitare ad esempio che l’attività “anomala” di alcuni client possa generare problemi all’infrastruttura e impattare a livello di CPU, networking o altro.

L’analisi di questo specifico ambito non è semplicissima ma abbiamo a disposizione una serie di strumenti che ci possono aiutare nel troubleshooting.

Uno di questi è il Microsoft Exchange Server User Monitor (ExMon) che fino al 16 febbraio 2016 era supportato solo fino ad Exchange 2010. Il 16 Febbraio 2016 il team Exchange ha rilasciato la versione per Exchange 2013 e 2016:

https://blogs.technet.microsoft.com/exchange/2016/02/16/exchange-2013-and-2016-exmon-tool-is-now-available/

Un altro strumento utilissimo è la cmdlet powershell Get-StoreUsageStatistics, che si occupa di interrogare alcune metriche che vengono collezionate dall’information store, relativamente alle attività di I/O dei client sui rispettivi mailbox database.

Microsoft Exchange Server User Monitor

ExMon è uno strumento utile per raccogliere dati in tempo reale e fornire le informazioni organizzate nelle seguenti viste:

  • RPC data based on the user
  • RPC data based on the RPC Operation
  • RPC data based on the specific application
  • RPC data based on the Admin Client Type
  • RPC data in the Raw form
  • RPC data in the Admin Raw form
  • RPC data in the Task by client Type
  • RPC data in the Task raw

Per ogni vista è poi possibile ottenere una serie di altre utili e importanti informazioni, come ad esempio:

  • Microsoft Office Outlook® versions and mode
  • Client monitoring data
  • Resource use, such as:
  • CPU usage
  • Server-side processor latency
  • Network bytes
  • RPC Operations, components and Action

Il tool va scaricato e installato sui Mailbox server che si vogliono analizzare.

ExMon è utile per raccogliere collection di dati relativi alle attività client in modo che si possa fare analisi e individuare eventuali fonti di attività anomale.

L’installazione crea la seguente cartella:

image

Per avviare il tool è necessario lanciare l’applicazione ExMonAdvancedUI.exe con diritti elevati:

image

Cliccando sulla voce “Start” inizia la collection.

I dati collezionati vengono salvati nella stessa folder in file formato ETL e possono essere successivamente analizzati.

Vediamolo in azione.

Innanzitutto avviamo la collection dei dati. Quello che sto utilizzando è un ambiente di test sul quale non c’è particolare attività, in fatti se notiamo la colonna “packets” vediamo che i valori si attestano su un valore medio abbastanza “piatto”:

image

La prima cosa che balza all’occhio è che la colonna “UserName” è popolata da alcuni GUID e non da informazioni “in chiaro”; sarebbe bello vedere il nome della mailbox o comunque un’informazione più “parlante”. Tra l’altro il GUID che vediamo non è ne il GUID della mailbox (ExchangeGuid) ne il GUID dell’oggetto AD (Guid) ma si tratta di un GUID che viene anteposto al nome della mailbox all’interno del campo “LegacyExchangeDN”. Non so il perché di questa scelta, alla prima occasione vedrò di scoprirlo. In ogni caso, svelato il mistero del GUID, sarà semplice risalire alla corrispondente mailbox.

A questo punto, per simulare una mailbox “iperattiva” userò un client Outlook dal quale eseguirò uno script che spedirà una “raffica” di mail con un allegato da 2MB.

Vediamo com’è cambiata la situazione da ExMon:

image

Ordinando la colonna “Packets” vediamo che c’è un GUID che ha generato un numero molto elevato di pacchetti.

A questo punto non ci resta che scoprire qual è la mailbox incriminata, cioè quella che all’interno del campo LegacyExchangeDN contiene il GUID che sta generando attività anomala:

Get-Mailbox | ? LegacyExchangeDN -like "*56833d3723b544f88321b3edaa105bd8*"

image

Effettivamente la mailbox incriminata è quella che ho usato per generare la raffica di mail.

Facendo doppio click in corrispondenza del GUID che ha generato traffico verrà aperto un dettaglio delle attività svolte da quella mailbox:

image

Partendo dalla vista iniziale, possiamo anche avere dettagli “by application” e per esempio possiamo capire qual’è l’”applicazione” che ha generato la maggiore attività, nel nostro caso “MSExchangeRPC” ovvero il protocollo utilizzato da Outlook:

image

Facendo doppio click sul protocollo otteniamo dettagli sull’utente che ha generato più attività con questo protocollo:

image

ExMon ci mette a disposizione un gran numero di combinazioni e di viste che ci consentono di analizzare e capire cosa sta accadendo lato client.

Get-StoreUsageStatistics

La sintassi di questa cmdlet è documentata qui ma personalmente utilizzo in modo puntuale i due comandi che riporto di seguito, che provengono dal supporto tecnico Microsoft:

$statistics = Get-StoreUsageStatistics -Database tst04
$statistics | ? {$_.DigestCategory -eq 'timeInServer'} | Sort TimeInServer -Descending | Select -First 25 | FT -a DisplayName,SampleTime,TimeIn*,LogRecord*,RopCount,LDAP*
$statistics | ? {$_.DigestCategory -eq 'LogBytes'} | Sort LogRecordBytes -Descending | Select -First 25 | FT -a DisplayName,SampleTime,TimeIn*,LogRecord*,RopCount,LDAP*

I comandi sopra riportati sono stati condivisi da Andrew Higginbotham nel seguente post, dal quale ho tratto qualche spunto:

http://blog.enowsoftware.com/solutions-engine/bid/187230/Tracking-Down-Overactive-Mailboxes-With-Get-StoreUsageStatistics

La cmdlet Get-StoreUsageStatistics riporta le informazioni relative alla 25 mailbox che hanno generato più attività negli ultimi 10 minuti, campionando i dati a intervalli di 1 minuto.

I due comandi sopra riportati si occupano di estrarre una serie di dati relativi alle 25 mailbox che hanno fatto più attività.

Questo è il risultato dei due comandi nel mio ambiente di test, in condizioni normali.

image

Come si può notare in testa alla classifica ci sono le Health Mailbox e le System Mailbox, con parametri di utilizzo delle risorse molto bassi.

Vediamo ora di ripetere un’estrazione dopo una “tempesta di mail”, esattamente come ho fatto per avere dati significativi con ExMon:

image

image

Come possiamo vedere la mailbox di “Han Solo” è balzata in testa alla classifica, con parametri di utilizzo delle risorsi decisamente significativi.

Anche in questo caso siamo stati in grado di capire quali sono le mailbox che potenzialmente stanno generando alti livelli di utilizzo e hanno quindi un forte impatto sulle performance dell’infrastruttura.

A presto

Roberto