Linux.com

Author Message
Joined: May 01, 2008
Posts: 2
Other Topics
Posted May 01, 2008 at 11:01:37 PM
Subject: interpreting vmstat results

I'm doing some performance evaluation of an in-house app. We're working on figuring how it will scale. I'm hitting the app hard, and trying to figure out what the bottleneck is. here's a sample of output from vmstat while I'm hitting it:

I have a few things that I'd like to figure out. This is on a system with 4 cores. First, the r values suggest to me that there are often lots of processes waiting to run, so it seems like CPU might be the bottleneck. But the idle value for CPU is generally > 50%. This is a fairly IO (network) intensive application, but I don't know how to interpret these results to know for sure whether IO or CPU is an issue. Why might r be high, with lots of CPU cycles to spare?

Back to top Profile Email Website
linuxdynasty
Joined Aug 07, 2007
Posts: 46

Other Topics
Posted: May 02, 2008 2:27:52 PM
Subject: interpreting vmstat results

Instead of using vmstat, why not use sar, it will print out info about cpi/io/disk/mem/net in a nice column format then you can parse the output.

http://linuxdynasty.org

Back to top Profile Email Website
nnnnnnn
Joined May 01, 2008
Posts: 2

Other Topics
Posted: May 02, 2008 6:13:31 PM
Subject: interpreting vmstat results

So I've run sar and looked at the results. Pretty much what I got out of vmstat, plus a couple of things:
- We're doing 20-25 Mbps in + out on eth0. We have 250Mbps available to us.
- Negligible disk activity.

So I'm still stuck with the question, what's my bottleneck? What else should I be looking at?

Back to top Profile Email Website
Shashank Sharma
Joined Jan 01, 1970
Posts: 1213
Location:New Delhi, India

Other Topics
Posted: May 05, 2008 6:45:51 PM
Subject: interpreting vmstat results
Back to top Profile Email Website Yahoo!
Anthony Robbins

Joined May 06, 2008
Posts: 22

Other Topics
Posted: May 06, 2008 3:58:58 PM
Subject: interpreting vmstat results

Looking at your vmstat results there is no disk activity, no swap, the CPU is not maxed so there are probably concurrent processes waiting for the same data.
The classic example is a mysql database being hammered and using table level locking. Is the app using any sort of external database? How is data shared between threads?

Back to top Profile Email Website
Tableless layout Validate XHTML 1.0 Strict Validate CSS Powered by Xaraya