Condividi tramite


Vari suggerimenti sulle prestazioni RPC

In questa sezione vengono illustrati vari suggerimenti sulle prestazioni per lo sviluppo di server RPC ad alte prestazioni. In questa sezione vengono forniti molti suggerimenti che fanno riferimento al client RPC. Lo sviluppo di un client RPC consente al server RPC di eseguire meno lavoro.

Usare Kerberos

Se viene usata la sicurezza, usare Kerberos. Sul lato server Kerberos non richiede l'accesso al KDC. In questo modo il carico di lavoro viene spostato dal server al client, che offre prestazioni migliori.

Usare il rilevamento delle identità statiche

Se viene usata la sicurezza, provare a usare il rilevamento delle identità statiche. Il rilevamento delle identità statiche è più economico in termini di utilizzo delle risorse rispetto al rilevamento dinamico delle identità. Se l'identità del client cambia e il server non deve essere a conoscenza della modifica, usare il rilevamento dinamico anziché creare un handle di associazione diverso per ogni identità. Tuttavia, se l'identità è la stessa, assicurarsi che RPC sia a conoscenza di tale fatto per evitare di eseguire controlli RPC per l'identità modificata ogni volta.

Usare la funzione RpcGetAuthorizationContextForClient

Se è necessario controllare l'accesso in Windows XP, usare la funzione RpcGetAuthorizationContextForClient . I contesti Authz risultanti consentono controlli di accesso molto rapidi, che vengono memorizzati nella cache in modo efficiente dal tempo di esecuzione RPC.

Non modificare il token a meno che non sia necessario

Se viene usato il rilevamento dinamico delle identità, non modificare il token di thread/processo, a meno che non sia assolutamente necessario. Anche se è stata modificata in precedenza per le impostazioni, il token spesso è sufficientemente diverso dal sistema di sicurezza per attivare la creazione di un nuovo contesto di sicurezza.

Prendere in considerazione la serializzazione in modalità mista per handle di contesto

La modalità di serializzazione predefinita per l'handle di contesto viene serializzata (esclusiva). Prendere in considerazione l'esecuzione di tutte le chiamate che non modificano lo stato dell'handle di contesto in modalità di serializzazione condivisa. Per altre informazioni, vedere RpcSsContextLockExclusive .