Come regolare le impostazioni di machine.config per migliorare le prestazioni

Modificare le impostazioni nei file di configurazione in ASP.Net può fornire un bel miglioramento delle prestazioni. Questi file includono machine.config e web.config.

Il file web.config è specifico dell'applicazione e viene creato per impostazione predefinita quando si crea un'applicazione Web o un sito Web in Visual Studio. Si noti che esiste un altro file di configurazione denominato aspnet.config, disponibile da ASP.Net 2.0 in poi. Questo file è disponibile nella radice della cartella .Net Framework nel sistema. Il file di configurazione della macchina, nel frattempo, è denominato machine.config e risiede nella directory% runtime install path% \ Config.

Mentre le impostazioni nel file web.config si applicano solo all'applicazione, le impostazioni presenti nel file machine.config sono applicabili a tutta la macchina. Notare che il file machine.config viene installato quando si installa .Net Framework nel sistema. È possibile avere un solo file machine.config nel sistema (uno solo per sistema) e risiede nella directory \ WINDOWS \ Microsoft.Net \ Framework \ vXXXX \ CONFIG.

Va notato che le impostazioni definite nel file machine.config vengono sovrascritte da quelle definite nel file web.config nell'applicazione. Un'applicazione può avere più file web.config. Per inciso, il file web.config eredita le impostazioni definite in machine.config.

Impostazioni machine.config consigliate

In questa sezione esploreremo le impostazioni che possono essere applicate al file machine.config per migliorare le prestazioni. Notare che i valori predefiniti e consigliati sono stati specificati per ciascuna impostazione.

maxconnection

È possibile modificare le impostazioni di system.Net nel file machine.config per consentire all'applicazione di servire più richieste simultanee. Il valore predefinito è 2 mentre il valore consigliato è 12 per CPU.

   

       

   

Di seguito sono riportate le impostazioni consigliate per la sezione del modello di processo nel file machine.config per ottenere vantaggi in termini di prestazioni. È possibile modificare le impostazioni nel modello di processo nel file machine.config per controllare i thread di lavoro, i thread di I / O, ecc. Si noti che un thread è la più piccola unità di esecuzione all'interno di un processo.

memoryLimit

Questa impostazione viene utilizzata per specificare la percentuale della memoria di sistema totale che il processo utilizzerà. Il valore predefinito è 40. Il valore consigliato per questa impostazione dipende da molti fattori. Tali considerazioni includono (ma non sono limitate a) quanto segue:

  • Se l'applicazione è installata in una scatola isolata
  • Presenza di perdite di memoria nell'applicazione

maxWorkerThreads

Questa impostazione viene utilizzata per definire il numero massimo di thread di lavoro disponibili nel pool di thread in un determinato momento. Un pool di thread comprende un numero di thread o una raccolta di thread per essere precisi e può essere utilizzato per eseguire diverse attività in background. L'MSDN afferma: "Un pool di thread è una raccolta di thread di lavoro che eseguono in modo efficiente callback asincroni per conto dell'applicazione. Il pool di thread viene utilizzato principalmente per ridurre il numero di thread dell'applicazione e fornire la gestione dei thread di lavoro."

Il valore predefinito di maxWorkerThreads è 20 per CPU e il valore consigliato è 100.

minWorkerThreads

Questa impostazione determina il numero minimo di thread di lavoro disponibili nel pool di thread per soddisfare una richiesta in ingresso. Il valore predefinito è 1 mentre il valore consigliato è maxWorkerThreads / 2. Quindi, se hai definito maxWorkerThreads come 100 nel tuo file machine.config, devi specificare 50 come minWorkerThreads.

maxIOThreads

Questa impostazione viene utilizzata per definire il numero massimo di thread assegnati per l'esecuzione di operazioni di input / output (I / O). Tali operazioni includono operazioni di database, chiamate a servizi Web, accesso al file system, ecc. Il valore predefinito è 20 per CPU mentre è consigliato un valore di 100.

minIOThreads

Viene utilizzato per definire il numero minimo di thread di I / O disponibili nel pool di thread in un determinato momento. Il valore predefinito è 1 mentre il valore consigliato è maxIOThreads / 2. Quindi, se hai definito maxIOThreads come 100 nel tuo file machine.config, dovresti menzionare 50 come minIOThreads.

Metterli tutti insieme

Mettiamo ora al lavoro tutte queste impostazioni. L'elenco di codice seguente illustra le impostazioni tipiche in un file machine.config in base alle impostazioni consigliate descritte in precedenza nell'articolo.

 

        

            

        

    

    

        

             maxWorkerThreads = "100"

             maxIoThreads = "100"

             minWorkerThreads = "50"

             minIoThreads = "50"

         />