Share via


Limitation du client

 

S’applique à : Exchange Server 2007 SP3, Exchange Server 2007 SP2, Exchange Server 2007 SP1, Exchange Server 2007

Dernière rubrique modifiée : 2009-04-20

La version de publication de Microsoft Exchange Server 2007 intègre une nouvelle fonction de limitation du client RPC qui aide les administrateurs à gérer l'expérience de performances de l'utilisateur final. La fonction de limitation de client RPC a été introduite pour empêcher des applications clientes d'envoyer un trop grand nombre d'opérations RPC par seconde au serveur Exchange, susceptibles d'affecter les performances globales du serveur. Ces applications clientes incluent des moteurs de recherche de bureau qui effectuent des recherches dans chaque objet d'une boîte aux lettres d'utilisateur, des applications personnalisées servant à gérer des données situées dans les boîtes aux lettres Exchange, les produits d'archivage de messages de type professionnel ou des boîtes aux lettres avec les fonctions CRM et de balisage automatique du courrier électronique activées. La limitation des clients permet à Exchange de détecter et d'empêcher la monopolisation du serveur par quelques utilisateurs. Quand le serveur Exchange détecte que l'activité d'un client a un effet disproportionné sur le serveur, ce dernier envoie une demande d'interruption au client afin de réduire l'impact sur les performances du serveur.

Notes

Microsoft Exchange Server 2003 intègre une clé de Registre nommée « Disable MAPI Client Processes » décrite dans la page Une fonctionnalité est disponible de désactiver l'accès MAPI de programme à un ordinateur qui exécute Exchange Server 2003. Il est possible d'activer cette clé de Registre pour empêcher certains processus de se connecter au service de banque d'informations. Cette clé de Registre n'est plus implémentée dans Exchange 2007 ; elle a été remplacée par ce nouveau mécanisme de limitation du client RPC.

Fonctionnement de la limitation du client RPC

Si la latence RPC moyenne sur le serveur Exchange 2007 est supérieure à la normale, il se peut que les utilisateurs du serveur Exchange constatent une dégradation sensible du service. La latence RPC moyenne doit rester sous le niveau de 100 millisecondes pour maintenir une expérience acceptable de l'utilisateur final.

La fonction de limitation du client RPC utilise une méthode de calcul basée sur des latences RPC moyennes globales et des statistiques d'opérations distantes (ROP) pour déterminer si un client donné commence à recevoir des demandes d'interruption pour limiter le nombre d'opérations que le client peut effectuer sur le serveur. Cette méthode calcule le retard moyen entre les opérations distantes sur trois périodes d'échantillonnage pour une minute donnée. Cette logique utilise une moyenne mobile de la fréquence d'opération distante pour la dernière minute. Une fois cette valeur déterminée, elle est comparée à la latence RPC moyenne globale. Si la valeur calculée est inférieure à la latence RPC moyenne globale, des demandes d'interruption sont envoyées au client.

importantImportant :
De brefs pics du nombre d'opérations distantes par seconde n'entraînent pas l'envoi de demande d'interruption au client tant que la latence RPC moyenne de la dernière minute est basse.

Par exemple, si la latence RPC est de 25 millisecondes, un client au comportement normal peut envoyer avec succès jusqu'à 40 opérations distantes par seconde (40*25=1000 millisecondes) sans limitation. Si la latence RPC est passée à 100 millisecondes et que le client a tenté d'envoyer le même nombre d'opérations distantes, le client commence à recevoir des demandes d'interruption du serveur. À ce stade, le serveur ne permet pas au client d'envoyer plus de 10 opérations distantes par seconde jusqu'à ce que l'échantillon suivant de latence RPC moyenne indique une valeur de 100 millisecondes.

La logique des demandes d'interruption repose sur deux éléments essentiels. Le premier est la manière dont le serveur décide de limiter le client et le second est la détermination d'empêcher le client d'accéder au serveur. Le service de banque d'informations intègre un journal d'activités du client pour conserver la trace de l'activité de chaque utilisateur par rapport à un serveur donné. Chaque journal d'activités du client est associé à une session MAPI d'utilisateurs. Si le serveur prend la décision de limiter un client, une demande d'interruption est ajoutée à la file d'attente d'interruptions de session pour la session MAPI de cet utilisateur. Ces informations d'interruption sont utilisées pour déterminer si la demande du client est acceptée ou rejetée par le serveur. Si l'utilisateur a plusieurs boîtes aux lettres ouvertes pour une seule session MAPI, ces informations d'interruption s'appliquent à toutes les boîtes aux lettres pour cette session MAPI.

En fonction de la version de Microsoft Office Outlook utilisée, le serveur envoie des informations d'interruption différentes au flux de réponses RPC du client.

  • Pour les clients Microsoft Office Outlook 2007, une demande ropBackoff est ajoutée à la file d'attente d'interruptions de l'utilisateur. Cette demande contient des informations sur le retard d'interruption actuel et indique au client de retarder l'envoi de demandes supplémentaires au serveur pendant une période déterminée. Le client réessaie ensuite d'envoyer des demandes après l'expiration de la période spécifiée. Le temps maximal de cette période d'interruption est codé en dur sur 2000 millisecondes (deux secondes).

    Notes

    Pour optimiser l'expérience du client, il est recommandé d'utiliser des clients Outlook 2007 en relation avec un serveur Exchange 2007.

    Notes

    ropBackoff est une nouvelle fonctionnalité d'Outlook 2007 ; des clients Outlook antérieurs ne prennent pas en charge cette fonction.

  • Pour Microsoft Office Outlook 2003 ou des versions antérieures, un code d'état RPC_S_SERVER_TOO_BUSY est envoyé. Ce code d'état reproduit la réponse que les serveurs Exchange 2003 envoient à des clients en cas d'épuisement des threads RPC de la banque d'informations. Les versions antérieures sont conçues pour capter cette exception, puis attendre un certain temps avant une nouvelle tentative d'appel comme spécifié dans la réponse du serveur au client. Le temps par défaut de ce délai est d'une seconde. Si le client renvoie la demande à chaque seconde pendant une minute et reçoit toujours la même exception, il abandonne la session de connexion à Exchange server.

Surveillance des conditions de nombre élevé d'opérations RPC par seconde

Pour aider à détecter le moment où des clients sont interrompus, il est possible de suivre le compteur de performances « MSExchangeIS\Interruption client RPC/s » sur des serveurs Exchange sur lesquels le rôle serveur de boîtes aux lettres est installé pour déterminer la fréquence à laquelle les demandes d'interruption se produisent.

Compteur Valeurs attendues par Outlook 2007 Valeurs attendues par Outlook 2003 et les versions précédentes

MSExchangeIS\Interruption client RPC/s

Fréquence d'envoi de notification d'interruption du serveur au client.

50 par client

1 par client

Pour les clients Outlook 2007 limités, vous pouvez vous attendre à ce que le compteur « MSExchangeIS\Interruption client RPC/s » indique environ 50 interruptions par seconde pour chaque client. Pour Outlook 2003 et les versions antérieures, vous devez vous attendre, au plus, à une interruption par seconde pour chaque client. La différence des fréquences prévues résulte de la granularité de la méthode d'interruption utilisée pour les clients concernés. La période d'interruption la plus courte pour Outlook 2003 est d'une seconde, tandis que la période d'interruption la plus courte pour Outlook 2007 est d'une milliseconde.

Lors de l'envoi d'informations d'interruption au client, les données contiennent deux parties. La première partie indique l'heure d'insertion de l'interruption. La deuxième partie indique la durée de l'interruption. La durée de l'interruption est calculée sur la base de la formule suivante : (MSExchangeIS\Latence RPC moyenne * Facteur de limitation RPC)/1000. Par défaut, la valeur du facteur de limitation RPC est 1000. Cela signifie que la durée de l'interruption correspond précisément à la valeur de latence RPC moyenne. La valeur d'interruption que le serveur envoie au client indique le nombre der millisecondes jusqu'à l'expiration de la durée de l'interruption. Si le client envoie une autre opération au serveur avant l'expiration de la durée de l'interruption spécifiée, le serveur renvoie une autre valeur de durée ropBackoff actualisée. Cela continue à se produire jusqu'à ce que la durée de l'interruption expire, supprimant ainsi la valeur ropBackoff de la file d'attente d'interruptions de l'utilisateur. Le graphique suivant présente un exemple de ce à quoi ceci ressemble dans l'Analyseur de performances :

Analyseur de performances - Interruption client RPC

Réglage des conditions de nombre élevé d'opérations RPC par seconde

Sur les serveurs Exchange sur lesquels le rôle serveur de boîtes aux lettres est installé, une clé de Registre permet de régler le calcule de limitation. Cette clé de Registre appelée Facteur de limitation RPC se trouve sous la clé HKLM\System\CurrentControlSet\Services\MSExchangeIS\ParametersSystem.

Notes

Cette valeur n'est pas définie par défaut et doit être ajoutée comme valeur DWORD sous la clé mentionnée précédemment.

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

Facteur de limitation RPC

DWORD : peut varier de 0 * 5000

Pour comprendre la manière dont la modification du facteur de limitation RPC fonctionne, envisagez un scénario où vous voulez configurer le serveur pour interrompre des clients pendant plus longtemps, par exemple 2 x la latence RPC moyenne. Vous le pouvez en définissant le facteur de limitation sur une valeur de 2000. Celle-ci double la période d'interruption de chaque session MAPI. Dans ce cas, si la latence RPC moyenne était de 50 millisecondes, un facteur de limitation de 2000 (50 ms * 2000/1000) équivaut à 100 millisecondes. Chaque demande d'interruption est étendue à 100 millisecondes au lieu des 50 millisecondes par défaut, ralentissant ainsi les demandes des clients MAPI supplémentaires adressées au serveur de 100 millisecondes. Vous devez comprendre qu'un tel changement de configuration peut apparaître comme un ralentissement des performances du serveur pour le client. Toutefois, a un effet négatif sur les performances du serveur, l'utilisation des ressources sur le serveur Exchange par ce client est réduite. Cela améliore les performances du serveur perçues par tous les utilisateurs du serveur.

importantImportant :
Si ce problème se produit pour un grand nombre ou la totalité des clients sur le serveur, il convient de mener une investigation côté serveur pour détecter les goulots d'étranglement possibles.

Pour bénéficier d'une expérience optimale de ce mécanisme de limitation, il est recommandé de disposer d'Outlook 2007 et d'Exchange 2007.

Vous pouvez purement et simplement supprimer la limitation en définissant son facteur sur la valeur 0.

importantImportant :
Il est déconseillé de désactiver la limitation du client dans la banque d'informations. Cette modification permet à des clients dont le comportement est défaillant de dégrader les performances de tout serveur.

Si vous pensez que vous pouvez devoir désactiver une limitation de client, il est recommandé de commencer par déterminer la cause du goulot d'étranglement des performances sur le serveur. Le plus souvent, l'identification et la résolution de la cause suppriment la nécessité pour le serveur d'envoyer des demandes d'interruption aux clients.

Pour plus d'informations

Pour plus d'informations sur le dépannage de problèmes de traitement lent de demande RPC, consultez la rubrique Dépannage des problèmes de traitement lent de demande RPC.

Pour plus d'informations sur l'activation du contrôle côté client, consultez la rubrique Comment activer Contrôle côté client.