My multi-threaded application makes many simultaneous requests from a web service on the internet. It appears I need to change values in the machine.config file to allow more connections and threads. Snippets I have found so far:
http://channel9.msdn.com/wiki/default.aspx/PerformanceWiki.HowToTuneWebServices"The maxconnection attribute in Machine.config limits the number of concurrent outbound calls.
Note: This setting does not apply to local requests requests that originate from ASP.NET applications on the same server as the Web service. The setting applies to outbound connections from the current computer, for example to ASP.NET applications and Web services calling other remote Web services.
The default setting for maxconnection is 2 per connection group. For desktop applications that call Web services, two connections may be sufficient. For ASP.NET applications that call Web services, two is generally not enough. Change the maxconnection attribute from default of 2 to (12 x #CPUs) as a starting point.
<connectionManagement>
<add address="*" maxconnection="12"/>
</connectionManagement>
"
How do I change this setting in machine.config? The section in my machine.config file looks like this:
<sectionGroup name="system.net" type="System.Net.Configura
tion.NetSe
ctionGroup
, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c56193
4e089">
<section name="authenticationModule
s" type="System.Net.Configura
tion.Authe
nticationM
odulesSect
ion, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c56193
4e089" />
<section name="connectionManagement
" type="System.Net.Configura
tion.Conne
ctionManag
ementSecti
on, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c56193
4e089" />
<section name="defaultProxy" type="System.Net.Configura
tion.Defau
ltProxySec
tion, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c56193
4e089" />
<sectionGroup name="mailSettings" type="System.Net.Configura
tion.MailS
ettingsSec
tionGroup,
System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c56193
4e089">
<section name="smtp" type="System.Net.Configura
tion.SmtpS
ection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c56193
4e089" />
</sectionGroup>
<section name="requestCaching" type="System.Net.Configura
tion.Reque
stCachingS
ection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c56193
4e089" />
<section name="settings" type="System.Net.Configura
tion.Setti
ngsSection
, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c56193
4e089" />
<section name="webRequestModules" type="System.Net.Configura
tion.WebRe
questModul
esSection,
System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c56193
4e089" />
</sectionGroup>
I can see the connectionManagement section but can't work out how to modify it. Other settings I may need to change are:
Configuration setting -- Default value (.NET Framework 1.1) --- Recommended value
maxconnection -- 2 --- 12 * #CPUs
maxIoThreads -- 20 --- 100
maxWorkerThreads -- 20 -- 100
minFreeThreads -- 8 ---88 * #CPUs
minLocalRequestFreeThreads
--- 4 -- - 76 * #CPUs
How do I change these?