Hi,
One of our clients is doing a lot of processing with his servers, managing to count large number of impressions every second. Still every server of whom had a minor CPU utilization (not crossing the 15% limit).
He wanted to do more! We as well...
The obvious suspect was the network: The servers were doing a lot of traffic (X0Mb/s per each server) and in peak hours even dropping connections.
The solution was updating the MaxUserPort registry value in the Windows Registry to more reasonable value which fits the client banner network system behavior. This value controls the number of concurrent TCP session the server can handle. This can be very relevant in application server who are working with back end servers such as databases. See more at David Wang blog.
Update 1: If you are using IIS, you probably using ASP.NET. In case, take a look at this Technet article to better configure the web.config.
The MS recommended configuration values are:
- "Set the values of the maxWorkerThreads parameter and the maxIoThreads parameter to 100.
- Set the value of the maxconnection parameter to 12*N (where N is the number of CPU cores that you have).
- Set the values of the minFreeThreads parameter to 88*N and the minLocalRequestFreeThreads parameter to76*N.
- Set the value of minWorkerThreads to 50. Remember, minWorkerThreads is not in the configuration file by default. You must add it."
UPDATE: if you are using Windows 2008, you should use an updated API:
- netsh int ipv4 show dynamicport tcp
- netsh int ipv4 show dynamicport udp
- netsh int ipv6 show dynamicport tcp
- netsh int ipv6 show dynamicport udp
- netsh int ipv4 set dynamicport tcp start=10000 num=1000
- netsh int ipv4 set dynamicport udp start=10000 num=1000
- netsh int ipv6 set dynamicport tcp start=10000 num=1000
- netsh int ipv4 set dynamicport udp start=10000 num=1000
Keep Performing,
No comments:
Post a Comment