Rechner lastet CPU nicht aus, top sortiert nicht richtig


  • Mod

    Ich habe Remotezugriff auf einen Rechner, der sich ganz merkwürdig verhält. Er scheint total überlastet zu sein, aber ich weiß nicht, warum. Wenn ich versuche, rauszufinden warum das so ist, wird alles nur noch merkwürdiger:

    1. Das top-Kommando sortiert nicht nach CPU-Auslastung, sondern nach Prozessnummer (aufsteigend). Selbst wenn ich explizit 'P' drücke. Wenn ich nach etwas anderem sortiere, dann wird richtig sortiert, aber wenn ich dann wieder 'P' drücke, ist es wieder nach Nummer sortiert.
    2. Immerhin kann ich aus der CPU-Gesamtauslastung rauslesen, dass meine eigenen Prozesse laufen, aber nur mit je 75% CPU-Auslastung, obwohl die CPUs sonst nichts zu tun haben. Das Programm macht ein wenig I/O, aber ist normalerweise nicht durch I/O beschränkt sondern (sehr stark!) CPU begrenzt.
    3. Es scheint auch nicht so, dass die I/O hängt. Mein Programm misst die Zeit, die es zum rausschreiben braucht und diese ist im normalem Rahmen. Insgesamt läuft das Programm ganz normal, bloß eben mit 3/4 der üblichen Geschwindigkeit.
    4. Wenn meine Prozesse laufen, ist der Rechner auf anderen Remotekonsolen praktisch unbenutzbar, alle Kommandos (z.B. top) brauchen Minuten bis Stunden zum starten. Die beste Chance wieder an den Rechner zu kommen, ist, darauf zu warten, dass meine Prozesse mit einem "broken pipe" abbrechen, wenn die Remoteverbindung sich wegen zu langsamer Antwort selber aufhängt.
    5. Der Remotenutzer auf dem Rechner ist sehr stark eingeschränkt was maximale Prozesszahl und minimale niceness angeht, aber das sollte ja eigentlich nichts ausmachen, solange die Ressourcen an sich frei sind.

    Hat jemand einen Verdacht, was das sein könnte oder wie ich dem Problem auf die Spur kommen könnte? Einschränkung: Ich bin auf dem Rechner kein Admin und derjenige der Admin ist, ist derzeit nicht erreichbar (und wird es die nächsten Wochen auch nicht sein). Ich würde den Rechner aber ungern neu starten (und das Passwort zurücksetzen), da eventuell noch andere Nutzer den Rechner nutzen und der Admin auch mal wiederkommen wird.

    Ach so: Der Remoterechner ist ein Linuxsystem, vermutlich eine ältere Ubuntudistribution (10.04?), und ziemlich gut bestückt was die Hardware angeht. Mehrere baugleiche Rechner mit vermeintlich gleicher Software funktionieren tadellos.



  • Also die Tatsache, dass Programme auf anderen Konsolen Minuten zum Starten brauchen, deutet doch sehr auf I/O-Überlastung hin. Das ist das typische Verhalten, wenn Executable, Environment usw. nur schleppend von der Platte gelesen werden können.

    Mögliche Ursachen:
    - Swapping (evtl. durch defekte Speicher, die nicht mehr ins System eingebunden sind)
    - Controller falsch konfiguriert (DMA?)
    - ?


  • Mod

    LordJaxom schrieb:

    Also die Tatsache, dass Programme auf anderen Konsolen Minuten zum Starten brauchen, deutet doch sehr auf I/O-Überlastung hin. Das ist das typische Verhalten, wenn Executable, Environment usw. nur schleppend von der Platte gelesen werden können.

    Mögliche Ursachen:
    - Swapping (evtl. durch defekte Speicher, die nicht mehr ins System eingebunden sind)
    - Controller falsch konfiguriert (DMA?)
    - ?

    Meine Rede, aber:

    Mem:   8192480k total,  7995076k used,   197404k free,   669288k buffers
    Swap: 11718648k total,        0k used, 11718648k free,  6549008k cached
    

    Also kann keine Rede von Speichermangel sein (für Windowsnutzer: Da ist zwar auf den ersten Blick nur wenig frei, aber das ist alles vom Plattencache belegt. Der wird bei Bedarf verkleinert und das ist ganz normal so). Und zumindest das Schreiben geht für den einen Prozess recht flott. Vielleicht irgendwas spezifisch für das Lesen? Was könnte das sein? Und wie fügen sich die anderen Phänomene ins Bild?



  • Eine Idee hab ich auch nicht wirklich (nutze selbst seit langem Linux). Aber evtl. hast Du Glück und auf dem Rechner ist "htop" installiert? Vielleicht hilft Dir das weiter weil es IMO übersichtlicher ist als das "Standard" top...
    http://htop.sourceforge.net/

    Edit: wieviele CPUs bzw. Cores hat das System denn? Ich bin nicht so sehr der Profi in Sachen Hardware aber vielleicht ist da irgendwas im argen? Was sagt denn

    cpufreq-info
    

    ?


  • Mod

    schwudde schrieb:

    Eine Idee hab ich auch nicht wirklich (nutze selbst seit langem Linux). Aber evtl. hast Du Glück und auf dem Rechner ist "htop" installiert? Vielleicht hilft Dir das weiter weil es IMO übersichtlicher ist als das "Standard" top...
    http://htop.sourceforge.net/

    Prüfe ich, dauert aber ein paar Stunden 😃

    Edit: wieviele CPUs bzw. Cores hat das System denn? Ich bin nicht so sehr der Profi in Sachen Hardware aber vielleicht ist da irgendwas im argen? Was sagt denn

    cpufreq-info
    

    ?

    8 virtuelle Kerne, 4 physikalische. Bloß einer ist zu 75 % belegt, der Rest nahe 0. cpufreq-info: Siehe oben, dauert etwas.



  • top hat manchmal die widerwärtige Angewohnheit, Prozesse die schon lange laufen nicht mehr anzuzeigen. Benutz mal

    ps -r



  • schau mal bei top oben 😃
    top - 20:01:03 up 3 days, 1:25, 1 user, load average: 0.00, 0.00, 0.00
    Tasks: 69 total, 1 running, 68 sleeping, 0 stopped, 0 zombie
    Cpu(s): 0.0%us, 0.3%sy, 0.0%ni, 99.7%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st

    wa -- iowait
    Amount of time the CPU has been waiting for I/O to complete.

    da siehst du ob der prozessor auf io wartet - in ein paar stunden... 🙂



  • obviously ist deine festplatte im arsch drinne



  • Vielleicht lastet ein anderer Nutzer die I/O-Kapazität des Systems voll aus. Ohne root-Rechte dürfte es aber schwer werden, der Ursache auf die Spur zu kommen.



  • Christoph schrieb:

    Vielleicht lastet ein anderer Nutzer die I/O-Kapazität des Systems voll aus. Ohne root-Rechte dürfte es aber schwer werden, der Ursache auf die Spur zu kommen.

    iotop braucht leider root-Rechte um ordentlich zu laufen.

    Ansonsten könnte es auch daran liegen, dass deine Prozesse in einer cgroup liegen die bei 75% abriegelt um zu verhindern, dass du andere Benutzer aushungerst.


  • Mod

    Linux-Kenner schrieb:

    Ansonsten könnte es auch daran liegen, dass deine Prozesse in einer cgroup liegen die bei 75% abriegelt um zu verhindern, dass du andere Benutzer aushungerst.

    Das sieht zwar irgendwie verdächtig so aus, jedoch wüsste ich nicht, dass dies administrationstechnisch überhaupt möglich ist. Wie?


  • Mod

    Also I/O ist es sehr sicher nicht. Die %wa bei top sind 0.

    Ich habe mal ein paar andere Programme probiert, alle regeln bei exakt 75% (%user + %system) ab. Das kann ja kein Zufall sein.

    Was ist das? Ich habe noch nie von der Möglichkeit gehört, Nutzerprivilegien nach %CPU zu vergeben.




Anmelden zum Antworten