Concetti relativi alla limitazione delle richieste client

 

Si applica a: Exchange Server 2007 SP3, Exchange Server 2007 SP2, Exchange Server 2007 SP1, Exchange Server 2007

Ultima modifica dell'argomento: 2009-04-20

Con il rilascio di Microsoft Exchange Server 2007 è stata messa a disposizione degli amministratori una nuova funzionalità, denominata "Limitazione delle richieste RPC client", che consente di gestire l'esperienza degli utenti finali per quanto concerne le prestazioni. La limitazione delle richieste RPC client è stata introdotta per impedire l'invio di un numero eccessivo di operazioni RPC al secondo al server Exchange da parte dei client, al fine di evitare che si verifichi una riduzione delle prestazioni complessive del server. Queste applicazioni client includono motori di ricerca desktop che effettuano ricerche attraverso tutti gli oggetti contenuti nella cassetta postale di un utente, applicazioni personalizzate scritte per modificare i dati contenuti nella cassette postali di Exchange, prodotti di archiviazione della posta elettronica di tipo aziendale o cassette postali abilitate a CRM con la funzione di contrassegno automatico della posta elettronica abilitata. La limitazione delle richieste client consente a Exchange di identificare e impedire la monopolizzazione del server da parte di pochi utenti. Quando il server Exchange rileva che un client sta provocando un effetto sproporzionato sul server, il server invia al client una richiesta di rinvio dell'operazione (detta "backoff") per ridurre l'effetto negativo sulle prestazioni del server.

Nota

In Microsoft Exchange Server 2003 era presente una chiave del Registro di sistema denominata "Disable MAPI Client Processes" e descritta in È disponibile una funzionalità per disattivare l'accesso MAPI ai programmi per un computer che esegue Exchange Server 2003. Questa chiave del Registro di sistema poteva essere abilitata per impedire a determinati processi di connettersi al servizio Archivio informazioni. Tale chiave del Registro di sistema non è più implementata in Exchange 2007 ed è stata sostituita con il nuovo meccanismo di limitazione delle richieste RPC client.

Come funziona la limitazione delle richieste RPC client

Se la latenza media RPC sul server Exchange 2007 è più alta del normale, gli utenti del server Exchange potrebbero iniziare a notare un considerevole peggioramento delle prestazioni del server. Per garantire un'esperienza utente accettabile, la latenza media RPC deve essere mantenuta a un livello inferiore a 100 millisecondi.

La limitazione delle richieste RPC client utilizza un metodo di calcolo basato sulle latenze medie RPC complessive e le statistiche delle operazioni remote (ROP) per determinare se inviare a un determinato client richieste di backoff al fine di limitare il numero di operazioni che tale client potrà eseguire con il server. Questo metodo calcola il ritardo medio tra le ROP durante tre periodi campione entro un minuto. Questa logica utilizza una media mobile della frequenza ROP per l'ultimo minuto. Una volta determinato, questo valore viene confrontato con la latenza media RPC complessiva. Se questo valore calcolato è inferiore alla latenza media RPC complessiva, al client verranno inviate richieste di backoff.

Importante

Brevi picchi di ROP elevate al secondo non daranno luogo all'invio di richieste di backoff al client a condizione che la latenza media RPC durante l'ultimo minuto sia bassa.

Ad esempio, se la latenza RPC è pari a 25 millisecondi, un client che si comporta correttamente può inviare fino a 40 ROP al secondo (40*25=1000 millisecondi) senza che avvenga una limitazione delle richieste. Se la latenza RPC aumenta a 100 millisecondi e il client tenta di inviare la stessa quantità di ROP, il client inizia a ricevere richieste di backoff dal server. A partire da questo momento, il server consente al client di inviare fino a un massimo di 10 ROP al secondo, fino a quando il campione di latenza media RPC successivo non scende sotto la soglia di 100 millisecondi.

La logica per le richieste di backoff è composta da due parti principali. La prima è la modalità con cui il server decide di limitare le richieste del client e la seconda è quando viene deciso di impedire al client di accedere al server. All'interno del servizio Archivio informazioni è presente un registro delle attività client che tiene traccia dell'attività di ciascun utente con un determinato server. Ogni registro dell'attività client è associato a una sessione MAPI di un utente. Se il server decide di limitare le richieste di un client, viene aggiunta una richiesta di backoff alla coda di backoff della sessione per la sessione MAPI di quell'utente. Queste informazioni di backoff vengono quindi utilizzate per determinare se la richiesta del client verrà accettata o rifiutata dal server. Se l'utente ha più cassette postali aperte per una singola sessione MAPI, queste informazioni di backoff verranno applicate a tutte le cassette postali per quella sessione MAPI.

A seconda della versione di Microsoft Office Outlook utilizzata, il server invierà informazioni di backoff diverse al flusso di risposta RPC del client.

  • Per i client Microsoft Office Outlook 2007 viene aggiunta alla coda di backoff dell'utente una richiesta ropBackoff. Questa richiesta contiene informazioni relative al ritardo backoff corrente e l'istruzione, per il client, di posticipare l'invio di richieste aggiuntive al server per un determinato intervallo di tempo. Il client tenterà nuovamente di inviare richieste dopo la scadenza del tempo specificato. Il tempo massimo per questo ritardo di backoff è hardcoded ed è pari a 2000 millisecondi ossia 2 secondi.

    Nota

    Per garantire un'esperienza client ottimale, si consiglia di utilizzare client Outlook 2007 con un server Exchange 2007.

    Nota

    ropBackoff è una nuova funzionalità disponibile in Outlook 2007 e i client Outlook di versione precedente non supportano questa funzione.

  • Per Microsoft Office Outlook 2003 o versioni precedenti viene inviato un codice di stato di RPC_S_SERVER_TOO_BUSY. Il codice di stato emula la risposta che i server Exchange 2003 inviano ai client quando i thread RPC dell'Archivio informazioni sono stati esauriti. Le versioni precedenti sono progettate per rilevare questa eccezione e quindi attendere per un determinato intervallo di tempo prima di ritentare la chiamata, come specificato nella risposta del server al client. Il tempo predefinito per questo ritardo è un secondo. Se il client tenta di inviare la richiesta ogni secondo per la durata di un minuto e continua a ricevere sempre la stessa eccezione, il client rinuncia e disconnette la propria sessione dal server Exchange.

Monitoraggio per condizioni in cui si verifica un numero elevato di operazioni RPC al secondo

Per consentire di rilevare quando avviene il backoff dei client, è possibile monitorare il contatore di prestazioni "MSExchangeIS\Backoff client RPC al secondo" sui server Exchange in cui è installato il ruolo del server Cassette postali per determinare la frequenza con cui si verificano le richieste di backoff.

Contatore Valori previsti per Outlook 2007 Valori previsti per Outlook 2003 e versioni precedenti

MSExchangeIS\Backoff client RPC al secondo

Indica la frequenza con cui il server invia al client la notifica di backoff.

50 per client

1 per client

Per i client Outlook 2007 sottoposti a limitazione delle richieste, il contatore "MSExchangeIS\Backoff client RPC al secondo" dovrebbe indicare circa 50 backoff al secondo per ciascun client. Per Outlook 2003 e versioni precedenti, il valore indicato dovrebbe essere al massimo un backoff al secondo per ciascun client. La differenza nelle frequenze previste è dovuta alla granularità del metodo di backoff utilizzato per i rispettivi client. L'intervallo di backoff più piccolo per Outlook 2003 è di un secondo, mentre per Outlook 2007 è di un millisecondo.

Quando le informazioni di backoff vengono inviate al client, i dati sono composti da due parti. La prima è rappresentata dall'ora in cui il backoff è stato inserito. La seconda parte è rappresentata dalla durata dell'intervallo di backoff. La durata dell'intervallo di backoff è calcolata in base alla seguente formula: (MSExchangeIS\Latenza media RPC * Fattore di limitazione delle richieste RPC)/1000. Per impostazione predefinita, il fattore di limitazione delle richieste RPC è un valore pari a 1000. Ciò significa che il periodo di backoff corrisponde esattamente al valore della latenza media RPC. Il valore di backoff inviato dal server al client è il numero di millisecondi fino alla scadenza dell'intervallo di backoff. Se il client invia un'altra operazione al server prima della scadenza dell'intervallo di backoff specificato, il server restituirà un altro ropBackoff con un valore di ritardo aggiornato. Questo si ripeterà fino a quando l'intervallo di backoff non sarà scaduto, rimuovendo così il ropBackoff dalla coda di backoff dell'utente. Un esempio di ciò che potrebbe essere visualizzato in Performance Monitor è visibile nella seguente grafica:

Monitor delle prestazioni Backoff client RPC

Regolazione nel caso di condizioni in cui si verifica un numero elevato di operazioni RPC al secondo

Nei server Exchange in cui è installato il ruolo del server Cassette postali è disponibile una chiave del Registro di sistema che consente di regolare il calcolo relativo alla limitazione delle richieste. Questa chiave del Registro di sistema è denominata RPC Throttling Factor e si trova sotto la chiave HKLM\System\CurrentControlSet\Services\MSExchangeIS\ParametersSystem.

Nota

Questo valore non è impostato per impostazione predefinita e deve essere aggiunto come valore DWORD sotto la chiave summenzionata.

[HKLM\System\CurrentControlSet\Services\MSExchangeIS\ParametersSystem]

RPC Throttling Factor

DWORD: il valore può essere compreso tra 0 e 5000

Per comprendere come funziona la modifica del valore RPC Throttling Factor, considerare lo scenario in cui si desidera configurare il server in modo che il backoff dei client venga eseguito per un periodo di tempo più lungo, ad esempio 2 x latenza media RPC. A tale scopo è possibile impostare il valore RPC Throttling Factor su 2000. In questo modo il periodo di backoff viene aumentato di un fattore due per ogni sessione MAPI. In questo caso, se il valore della Latenza media RPC era pari a 50 millisecondi, un fattore di 2000 (50 ms * 2000/1000) per la limitazione delle richieste client equivale a 100 millisecondi. Ogni richiesta di backoff verrà quindi estesa da 50 a 100 millisecondi, ossia le richieste MAPI del client al server verranno posticipate di 100 millisecondi. È necessario capire che questa modifica della configurazione può apparire al client come un rallentamento delle prestazioni del server. Tuttavia, se questo client ha un effetto negativo sulle prestazioni complessive del server, l'utilizzo delle risorse sul server Exchange da parte di questo client verrà ridotto. Ciò aumenterà le prestazioni del server percepite dagli altri utenti del server.

Importante

Se questo problema si verifica per numerosi client o addirittura per tutti i client, è opportuno eseguire una verifica sul lato server per individuare la presenza di eventuali colli di bottiglia.

Per garantire un'esperienza ottimale con questo meccanismo di limitazione delle richieste client, è consigliabile disporre come minimo di Outlook 2007 e di Exchange 2007.

È possibile disabilitare completamente la limitazione delle richieste client impostando il valore per la voce RPC Throttling Factor su 0.

Importante

Non è consigliabile disabilitare la limitazione delle richieste client nell'Archivio informazioni, poiché tale modifica consentirebbe a client che funzionano in modo inadeguato di compromettere le prestazioni di un determinato server.

Se si ritiene di dover disabilitare la limitazione delle richieste client, si consiglia di determinare innanzitutto le causa del collo di bottiglia nelle prestazioni del server. Nella maggioranza dei casi l'identificazione e la risoluzione della causa consente di evitare l'invio di richieste di backoff da parte del server.

Ulteriori informazioni

Per informazioni su come risolvere problemi relativi all'elaborazione lenta delle richieste RPC, vedere Risoluzione dei problemi relativi all'elaborazione lenta delle richieste RPC.

Per informazioni su come abilitare il monitoraggio sul lato client, vedere Come abilitare il monitoraggio sul lato client.