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.

May 13, 2009

Cloud Slam 09': The Pareto Illusion

A few weeks ago we presented in Cloud Slam 09' cloud services cost analysis, and how it can be minimized using performance boosting. We also discussed in this presentation databases in the cloud and Sharding based on participants questions.
Feel free to take a look at the recorded presentation as well as the abstract, which are available at Cloud Slam site as well.

The Pareto Illusion - Why we end up paying too much for cloud services and what can we do about it? Moshe Kaplan and Ayal Baron

Video of the session:



Presentation Abstract:
Cloud computing is a whole new game: we are no longer talking about equity and CapEx, but regarding OpEx.

So why are you still paying so much every month for your cloud services? How can it be reduced? What are the industry state of art methodologies to gain more out of your cloud service provider? How to do more with same, and how to gain a better ROI for your project? and last but not least, how to help saving our world.

In this presentation we'll discuss how can you make your software more efficient, and how to focus on core components of the system and achieving 80% boost in 20% effort.

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

Apr 30, 2009

Can you monitor Java performance w/o affecting the system itself?

The Conservative Way
Well, the popular way to monitor code performance and detect bottlenecks is using Profilers. However, profilers insert small portions of code into the code base in order to measure each function processing time. For functions that require relatively long time to complete, this issue can be neglected. In other cases, when a function requires a very short time to complete and its called many times, this behavior can lead to wrong conclusions.

Usually in order to overcome this issue, you should carefully tune your measurement period in order to avoid over measurements.



The Alternative Way
We at RockeTier, are discussing several business opportunities with IBM these days. During these discussions, we noticed a great tool by Jinwoo Hwang from IBM. IBM offers an alternative way. Its tool analyzes Windows (yes, they support only Windows) performance log and Java thread dumps and automatically detects Java threads that consume the majority of system resources.
It is even more interesting since this tool supports both system monitoring and Java thread monitoring. Each can be done separately. Therefore, you gain flexibility, detect the problematic code area and focus on it in your debug environment w/o affecting the production system at all.

You can download this tool from the IBM site.

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

ShareThis

Intense Debate Comments

Ratings and Recommendations