Jul 3, 2009

Alphageeks Event and Video


A two weeks ago, just a few days before the Java Technology Day, I had a great presentation in a very lovely new geeks meetup group named "AlphaGeeks". I presented there the key issues in developing high load systems based on the Internet giants architectures including Sharding, In memory databases and cloud computing. I presented there key concepts that helped us design and implement a 1 billion events per day ad network system to one of our clients.
This presentation was recorded and is available in blog.tv and also here. Please notice that the lecture is in Hebrew.

Keep Performing,
Moshe Kaplan. RockeTier. The Performance Experts.

Jul 1, 2009

Getting out more connections from your Windows server


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
  1. netsh int ipv4 show dynamicport tcp
  2. netsh int ipv4 show dynamicport udp
  3. netsh int ipv6 show dynamicport tcp
  4. netsh int ipv6 show dynamicport udp
  5. netsh int ipv4 set dynamicport tcp start=10000 num=1000
  6. netsh int ipv4 set dynamicport udp start=10000 num=1000
  7. netsh int ipv6 set dynamicport tcp start=10000 num=1000
  8. netsh int ipv4 set dynamicport udp start=10000 num=1000

Keep Performing,


Intense Debate Comments

Ratings and Recommendations