Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

I'm trying to establish what thresholds my dedicated server should be operating in. The server is an Intel(R) Xeon(R)CPU L5420 @ 2.50GHz with 16GB RAM running RedHat with Apache 2 and MySQL. It has 16 domains on it and a couple of those domains are getting 3000+ unique visitors per day. If I run a "top" command I see the following:

top - 10:18:10 up 428 days, 18:20,  1 user,  load average: 1.71, 1.44, 1.49
Tasks: 211 total,   3 running, 206 sleeping,   0 stopped,   2 zombie
Cpu(s): 23.5%us,  3.8%sy,  0.0%ni, 72.7%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:  16431252k total, 16119648k used,   311604k free,   613340k buffers
Swap:  2096472k total,   108096k used,  1988376k free,  9511536k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
 7440 apache    16   0  434m 111m 7096 S 59.8  0.7   2:56.17 httpd
 8856 apache    17   0  438m 115m 7084 S 54.5  0.7   2:07.94 httpd
10441 apache    17   0  432m 107m 5696 R 35.9  0.7   0:08.18 httpd
 5035 apache    16   0  444m 118m 7708 S 14.0  0.7   5:24.62 httpd
26931 mysql     15   0 2900m 2.6g 5480 S  1.7 16.3  43:56.03 mysqld
10486 root      15   0 12864 1184  828 R  0.7  0.0   0:00.03 top
  742 root      10  -5     0    0    0 S  0.3  0.0 205:45.65 kjournald
 9141 root      15   0  203m 136m 4988 S  0.3  0.9   2:39.58 savscand
 9150 root      15   0  193m 136m 4924 S  0.3  0.9   2:40.54 savscand
    1 root      15   0 10372  556  524 S  0.0  0.0   0:15.75 init
    2 root      RT  -5     0    0    0 S  0.0  0.0   0:02.52 migration/0
    3 root      34  19     0    0    0 S  0.0  0.0   0:00.33 ksoftirqd/0
    4 root      RT  -5     0    0    0 S  0.0  0.0   0:00.00 watchdog/0
    5 root      RT  -5     0    0    0 S  0.0  0.0   0:01.99 migration/1
    6 root      34  19     0    0    0 S  0.0  0.0   0:00.11 ksoftirqd/1
    7 root      RT  -5     0    0    0 S  0.0  0.0   0:00.00 watchdog/1
    8 root      RT  -5     0    0    0 S  0.0  0.0   0:01.87 migration/2
    9 root      34  19     0    0    0 S  0.0  0.0   0:00.10 ksoftirqd/2
   10 root      RT  -5     0    0    0 S  0.0  0.0   0:00.00 watchdog/2
   11 root      RT  -5     0    0    0 S  0.0  0.0   0:01.91 migration/3
   12 root      34  19     0    0    0 S  0.0  0.0   0:00.11 ksoftirqd/3
   13 root      RT  -5     0    0    0 S  0.0  0.0   0:00.00 watchdog/3
   14 root      RT  -5     0    0    0 S  0.0  0.0   0:12.35 migration/4
   15 root      34  19     0    0    0 S  0.0  0.0   0:00.49 ksoftirqd/4
   16 root      RT  -5     0    0    0 S  0.0  0.0   0:00.00 watchdog/4
   17 root      RT  -5     0    0    0 S  0.0  0.0   0:14.29 migration/5
   18 root      34  19     0    0    0 S  0.0  0.0   0:00.42 ksoftirqd/5
   19 root      RT  -5     0    0    0 S  0.0  0.0   0:00.00 watchdog/5
   20 root      RT  -5     0    0    0 S  0.0  0.0   0:13.40 migration/6

My question is, do these figures look normal? Are they too high? Too low? How come CPU usage is way over 100%?

Thanks very much.

share|improve this question
    
I really wish users would comment as to why they have marked a question down. How am I supposed to know what I did wrong and correct it for next time. Fool. –  sulman Nov 6 '12 at 11:08

2 Answers 2

up vote 1 down vote accepted

My question is, do these figures look normal? Are they too high? Too low?

There is no 'normal'. CPU, memory, load and io stats give a good indication of how performance is constrained but they don't give an accurate picture of how your server is performing. If you want to know what the performance of your transactions is, then you eed to measure the speed of your transactions. If you don't have a reverse proxy and you are serving content across the internet, then the time taken to service each request should be dominated by the network time. One way to solve this is to measure the time elapsed to the first byte of the request (but obviously this can be ratehr misleading if the encoding is chunked). Another solution is to use a tool like Yahoo Boomerang which measure page performance rather than request performance (and hence is much better aligned with user-experience) but also captures network throughput information.

(But I agree with Andrei, that keeping the load below the number of CPUs is a good idea)

How come CPU usage is way over 100%?

Because you've got multiple CPUs.

share|improve this answer
    
Thanks symcbean. –  sulman Nov 6 '12 at 11:10

You miss the important LA(load average) parameter: (first line of top). General rule is - keep LA numbers below number of CPU cores, altough there are many more vital parameters.

share|improve this answer
    
Thanks. I have added that information now. Does it all look correct? –  sulman Nov 6 '12 at 10:19

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.