How to know where is bottleneck of file server performance?

Hello,

I have a Linux file server. I feel it is slow and want to improve the performance. Before I upgrade the hardware, i want to know what is exact bottleneck, CPU, Memory, Disk, or network?

I know there are vmstat, iostat, etc. But I feel it is not so helpful. For example, iostat shows how many block read/write per seconds, but I don't know how big the number is too big! For vmstat, it shows how many percent is idle. But 50% idle is buy or not busy? My version of vmstat cannot show the percentage CPU spending on waiting for IO.

Anyone can give some information about some good open source software to analysis CPU, memory, disk and network?
cajinAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

TheWeakestLinkCommented:
One of the things affecting file I/O performance is disk throughput.  Have you tried using hdparm to optimise this?  Look at http://linux.oreillynet.com/lpt/a/linux/2000/06/29/hdparm.html to get a start.

For a file server, CPU performance is probably not going to make a huge difference, if it's not really old and slow, and if you can assume DMA is used, so I wouldn't concentrate on CPU idle time first.  
If it's old hardware, and uses PIO instead of DMA, there is another discussion right there - just upgrade..

You didn't tell us about the machine spec, which makes it difficult to comment fully.

Paul
0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
jgilligan1Commented:
Try top, this can give a nice performance view and it pretty easy to read.

uptime is good for getting a feel for how busy the server is at a moment in time, throwing this into a crontab over time would give a good register of how busy the CPU is.

Regards,

Joe G.
0
jgilligan1Commented:
There are a small class of tools which are inhierent in Unix


gtop/top - Shows / updates process stack and other information in more or less real-time.
iostat - this shows system disk I/O performance overall
uptime - this shows overall CPU Queue wait times in a weighted average.
ps -efxl - this is a whole process stack which can show you (similarly to top) what is going on on a system in some detail, this would show ALL processes at a moment in time vs, top which tends to show just the top/most busy processes.

Regards,

Joe G.

0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Linux

From novice to tech pro — start learning today.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.