
Ich versuche herauszufinden, in welchen Grenzen mein dedizierter Server betrieben werden sollte. Der Server ist ein Intel(R) Xeon(R)CPU L5420 @ 2,50 GHz mit 16 GB RAM und läuft mit RedHat, Apache 2 und MySQL. Er hat 16 Domänen und einige dieser Domänen haben mehr als 3000 Einzelbesucher pro Tag. Wenn ich einen „top“-Befehl ausführe, sehe ich Folgendes:
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
Meine Frage ist: Sehen diese Zahlen normal aus? Sind sie zu hoch? Zu niedrig? Wie kommt es, dass die CPU-Auslastung weit über 100 % liegt?
Vielen Dank.
Antwort1
Meine Frage ist: Sehen diese Zahlen normal aus? Sind sie zu hoch? Zu niedrig?
Es gibt kein „normal“. CPU-, Speicher-, Last- und IO-Statistiken geben einen guten Hinweis darauf, wie die Leistung isteingeschränktaber sie geben kein genaues Bild von der Leistung Ihres Servers. Wenn Sie wissen möchten, wie hoch die Leistung Ihrer Transaktionen ist, müssen Sie die Geschwindigkeit Ihrer Transaktionen messen. Wenn Sie keinen Reverse-Proxy haben und Inhalte über das Internet bereitstellen, dann die Zeit, die für die Bearbeitung jeder Anfrage benötigt wirdsollenvon der Netzwerkzeit dominiert werden. Eine Möglichkeit, dies zu lösen, besteht darin, die bis zum ersten Byte der Anfrage verstrichene Zeit zu messen (was jedoch offensichtlich ziemlich irreführend sein kann, wenn die Kodierung in Blöcke unterteilt ist). Eine andere Lösung besteht darin, ein Tool wie Yahoo Boomerang zu verwenden, das die Seitenleistung und nicht die Anfrageleistung misst (und daher viel besser auf die Benutzererfahrung abgestimmt ist), aber auch Informationen zum Netzwerkdurchsatz erfasst.
(Aber ich stimme mit Andrei überein, dass es eine gute Idee ist, die Last unter der Anzahl der CPUs zu halten.)
Wie kommt es, dass die CPU-Auslastung weit über 100 % liegt?
Weil Sie mehrere CPUs haben.
Antwort2
Sie vermissen den wichtigen Parameter LA (Lastdurchschnitt): (erste Zeile oben). Die allgemeine Regel lautet: Halten Sie die LA-Zahlen unter der Anzahl der CPU-Kerne, obwohl es noch viele weitere wichtige Parameter gibt.