Home > Linux > Wann ist der Server ausgelastet?

Wann ist der Server ausgelastet?

21. Juli 2008

Ich hatte heute eine kurze Diskussion darüber, woran man erkennt, das ein Server ausgelastet ist. Liegt es an der CPU-Auslastung? Load von 1 per CPU? Interrupts? Context Switche? IOWait? Averade Service Time? Swap? Vorschläge sind erbeten.

, ,

  1. 21. Juli 2008, 21:00 | #1

    Die einfachste Methode wäre wohl per “uptime”, nicht sehr aussagekräftig aber es funktioniert meistens.

  2. Usul
    21. Juli 2008, 21:44 | #2

    Das ist so eine richtige Metafrage. Was heißt denn überhaupt “ausgelastet”? Das ist doch je nach Anwendung anders, ein Number-Cruncher ist halt bei 100% CPU (je Kern) ausgelastet, eine Fileserver z. B. bei der Sättigung der Netzwerkschnittstelle, wenn es gut läuft. Oder wenn die Festplatten am Anschlag sind, so dass die Netzwerkkarte gar nicht gesättigt werden kann. Am Universellsten ist eigentlich immer noch der Load-Wert, aber verallgemeinern kann man das glaub nicht.

  3. 21. Juli 2008, 21:50 | #3

    @Usul: Genau deswegen Frage ich ja. Je mehr Möglichkeiten, desto mehr Lösungs-Ansätze.

  4. 21. Juli 2008, 22:31 | #4

    Kommt sicher auf die Arbeitslast an. Aber man kann natürlich die wichtigsten Indikatoren für CPU, Memory und IO ansehen:

    - IO - average servive time ist ein guter Warn Indikator (<12ms)
    - Memory - swap aktivität
    - CPU - idle-time mehr CPU kann genutzt werden

    Die Frage ist dann nur, welcher Art Durchschnittsberechnung man verwendet. Auch hier kann man dann wieder 2 Verfahren kombinieren. Wenn der 5mins Durchschnitt über einer konservativen Schwelle liegt und der 1mins Durchschnitt über einem Akzeptablen Maximum.

    Ansonten bleibt natürlich immer noch die Lehrbuchmethode: End-to-End PErformance messen und mit den SLO abgleichen. Leztere sind aber meistens nicht sehr realistisch…

    Gruss
    Bernd

  5. 21. Juli 2008, 22:42 | #5

    “Ist der Server ausgelastet?” ist viel zu schwammig dahergeschwätzt. Was ist “Auslastung”, was ist “Überlastung”? Liegt “Auslastung” vielleicht schon dann vor, wenn nur ein einziger Nutzprozeß läuft und der Rechner nicht mehr 100% idelt? Ohne klare Sprachregelung kommst Du hier nicht weiter.

  6. 22. Juli 2008, 01:17 | #6

    Ich wuerd’ grundsaetzlich erstmal fuer IOWait stimmen.

  7. 22. Juli 2008, 06:13 | #7

    Ich tendiere zu einer Mischung aus run-Queue, IOWait und CPU-Last.

  8. SvenS
    22. Juli 2008, 08:03 | #8

    Unabhängig welchen Indikator man verwendet halte ich mich an folgendes:

    Wenn die produktionskritische Ressource dauerhaft über 50% ausgelastet ist und regelmäßig Peaks bis auf über 80% Auslastung hat, dann ist es höchste Zeit etwas zu unternehmen.

    Wie oben schon gesagt kann das bei jedem Server etwas anderes sein. CPU, Speicher, IO-Auslastung oder auch alles zusammen oder einzelen Kombinationen.

    Ach ja und wenn ein Server anfängt zu swappen, dann ist es sowieso schon zu spät.

  9. prodigy7
    22. Juli 2008, 08:41 | #9

    Wenn du nicht mehr via SSH auf die Maschine kommst - DANN ist die ausgelastet ;-)

  10. 22. Juli 2008, 10:56 | #10

    Gute Frage, nicht einfach zu beantworten. :)

    Bevor man sagen kann ob und zu wie viel ein Server belastet ist, muss jemand definieren was die “Normalität” ist und ab wann eine Abweichung von diesem Zustand zu Auswirkungen führt, die die ‘Average Service Time’ beeinflusst. Discuss.

  11. 22. Juli 2008, 16:54 | #11

    Ich war extra so Vage eben weil es viele Wege gibt sich der Sache zu nähern. Mich interessiert halt wie Ihr an so ein Problem herangeht.

  12. 22. Juli 2008, 17:30 | #12

    Das ist ja schön und gut. Aber was meinst Du mit “ausgelastet”? Zu “ausgelastet” gehört eigentlich noch eine Größenangabe, wie z.B. “nicht ausgelastet”, “zur Hälfte ausgelastet” oder “voll ausgelastet”.

    Meine Faustregel sieht so aus, daß ein Server am Optimum läuft, wenn das Load Average der Anzahl der Prozessoren entspricht. :-)

  13. 22. Juli 2008, 18:33 | #13

    Diese Faustregel wird im allgemeinen auch an vielen Stellen im Netz empfohlen, sagt aber natürlich über bestimmte Details überhaupt nichts aus…
    Da sollte man dann schon wissen ob man einen Fileserver aufgesetzt hat oder nur mal wieder die 10^-99999. Stelle von Pi berechnen will.

  14. 22. Juli 2008, 19:29 | #14

    @martin: Ich meinte ‘voll ausgelastet’. Das mit der Load ist in der Tat ein gutes Indiz.

    @Dr Tod: D.h. wenn eine Rescource (CPU, Prozessor-Zeit, RAM, Disk/Net-IO) voll belegt ist, ist der Server voll ausgelastet?

  15. 22. Juli 2008, 20:18 | #15

    @joern ich bezog mich auf load Average/ Anzahl Prozessoren >= 1
    An dieser Stelle ist auf keinen Fall eine Ressource unbedingt komplett ausgelastet, es kann jedoch vorkommen.

  16. 22. Juli 2008, 20:26 | #16

    Also Load von 1/CPU(Kern) reicht sicher nicht aus. Als Daumenregel funktionieren für reine Webserver mit Massen an Prozessen doch eher eine Load Average von ca. 3-5/CPU(Kern). Meist sind eher Swap und der darausfolgende IO die wirklich begrenzenden Dinge.

  17. 22. Juli 2008, 20:26 | #17

    Meiner Meinung nach ist ein System dann voll ausgelastet, wenn die darauf eingesetzte Software nicht mehr innerhalb einer akzeptablen Zeit antwortet oder gar ein Prozess andere so in Mitleidenschaft zieht, dass diese nicht mehr ordentlich reagieren (wie z.B. der von prodigy7 genannten sshd, wenn der Web-Häuptling mal spinnt ;) ).

    Auch ich würde den Load i.d.R. als Bezugsgröße nehmen. Aber spätestens wenn eine Karre anfängt zu swappen, ist der Load auch nur noch sekundär.

    Also kann imho nur eine gemeinsame Betrachtung aller verfügbaren Ressourcen den Aufschluss bringen, ob ein System “voll ausgelastet” ist, oder nicht - bei mir wird daher “vmstat 2″ immer wieder abgesetzt, der betrachtet die wichtigsten Kerngrößen und verrät eigentlich immer, an welcher Stelle man denn wohl zuerst anpacken sollte, um einen Server wieder in Schwung zu bringen.

    Gruß
    Stefan

  18. 24. Juli 2008, 08:36 | #18

    Ich denke, dass die Aussage von Joern schon am ehesten zutrifft:

    Wenn einer der Punkte (CPU, Prozessor-Zeit, RAM, Disk/Net-IO) sich im Maximalbereich bewegt ist der Server ausgelastet. Er kann nicht noch mehr arbeit übernehmen. Jede weitere Zumutung wird dann evtl. mit zu langen Antwortzeiten bestraft…

    My 2 cents…

  1. Bisher keine Trackbacks
Kommentare sind geschlossen