Aug 18, 2009

Shared Cache: The Windows and .Net memcached

Hi again,

In memory databases and cache are must in any large scale system these days (you can ask Facebook architects regarding it). The Linux guys have memcached and there are many other products (with much more features of course) such as Gigaspaces XAP, Oracle Coherence and Scaleout. However, since Microsoft did not release yet the long expected Velocity product (will it ever be in production?), it seems there is a clear winner to the Windows environment: SharedCache. This product is some kind of a memcached porting to native managed .Net code and it is licensed under LGPL!.
SharedCached is already in production in several major sites including theport.com and it is fully documented. The product supports all major requirement from a caching product including:
  1. Partitioning - just like sharding, every server is taking care of part of the data, and the application server are talking with every cache server (unless of course you were wise enough to shard the application servers as well).
  2. Replicated Caching - keeping data in multiple instances, making sure data will always be available and lots of reads will be handled correctly.
I recommend downloading and testing this product and see if it fits your product/service needs,

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

Aug 13, 2009

Cloud Computing and Windows 2008

Hi,

It was a long time since the last post... more working, less talking....

Pain
This time we'll talk about a real pain in the Microsoft camp: why Windows 2008 is rarely supported by cloud providers such as Amazon AWS/EC2, AppNexus and Rackspace Cloud?

One of the few exceptions is Microsoft Azure which is still in CTP and is using a modified Windows 2008 version.

New features, New challenges...
Windows 2008 which has a lot of new features such as safer service shutdown and kernel transaction manager also includes a new activation method (which is probably familiar to those of you who use Vista).

According to my conversation with a leading cloud provider, this new activation method prevents them from generating images with predefined keys. Therefore, they cannot provide on demand Windows 2008 instances. The cloud providers are currently in advanced negotiations with Microsoft and provide only Windows 2003 instances.

The Question
Are there hidden causes behind this Microsoft restriction? or will a solution will be found before Azure RTM? Only time will tell...

Keep Performing,
Moshe Kaplan. RockeTier - The Performance and Cloud Experts.

Jul 3, 2009

Alphageeks Event and Video

Hi,

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

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: 
  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,

Jun 22, 2009

Billion Events per Day, Israel 3rd Java Technology Day, June 22, 2009

We presented today at the Israeli 3rd Java Technology Day, the largest SUN Microsystems/MySQL event in Israel. We presented here the essentials parts of building a real life web/enterprise system that needs to handle the performance needs of 1 billion events per day (a case study from the ad networks billing systems). We presented the adoption rate in the internet, Load Balancers (HAProxy, Apache, Radware, F5, Cisco), Web Servers, In Memory Database (IMDB inc. Memcached, Gigaspaces, Teracotta and Oracle Coherence) and finally Sharding (inc. Veritical, Static Horizontal and dynamic). A great example for a performance boosting architecture.

Feel free to take a look at the presentation:


Jun 16, 2009

Make Your Web Server Do More

Hi All,
This time we at RockeTier want to reveal a small secret, you should choose lighhttpd.
Lighttpd is an optimized web server for high performance environments. It has cpu-load effective management, small memory footprint compared to other web-servers and it was chosen by may Web 2.0 leaders such as meebo, wikipedia and YouTube. It is well optimized to handle AJAX applications and large number of sessions.
Its license is plural (the revised BSD license) and the product gains a significant acceptance in the market.

We also recommend you to take a look at their benchmarks. Somehow most of the players in the market usually do not expose theirs...

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

Jun 2, 2009

Tuning LAMP Architecture

It seems that more and more firms are moving to the LAMP architecture these days. Therefore, there is a buzz regarding Apache, Linux, PHP and MySQL tuning
However, since every technology has it own limitations, the need for extreme architectures that overcome their limitations is on the rise as well (I wrote and presented pretty much regarding Sharding, Cloud Computing, In Memory Databases in last few days).

However, it is always good to get back to basic and remember the small advices from smart people how to tune the products themselves. Therefore, I gathered several recommendations to help you get a little bit more from your own application:
LAMP tunning: I would add to this set of articles that you should make sure that you place all your rich content in a CDN, Amazon S3 or any other alternative and not on your own server.
Some information about Apache tunning and even more about HAProxy tuning (RockeTier software based favorite load balancer).

Keep Performing
Moshe Kaplan. RockeTier. The Cloud and Performance Experts.

ShareThis

Intense Debate Comments

Ratings and Recommendations