X-Server? Unter SuSE ES 9

Hallo Linux-Experten,
habe ein Problem mit dem X-Server (meine Vermutung). Weiß aber nicht wo ich
nach der Lösung suchen soll.
Und zwar nach dem Rechnerstart fährt Linux-Server standardgemäß hoch, nach der
Anmeldung wird er deutlich langsamer, und zwar sehr langsam. Jegliches Starten
von sämtlichen Programmen dauert sehr lange. Die graphische Oberfläche braucht
sehr lange bis alles geladen wurde. Ich verwende kde. An Hardware kann es nicht
liegen da der Server noch vor einigen Tagen tadellos lief.
Ich kenne auch leider den Auslöser nicht.
Kann mir jemand einen Ansatz geben wo ich suchen könnte.
Gruß

Hallo,

Kann mir jemand einen Ansatz geben wo ich suchen könnte.

Lass dir mal mit uptime deine Load-Average anzeigen (wie viele Prozesse arbeiten?), und schau mal mit free ob dein Arbeitsspeicher ausreicht, und mit df ob du freien Festplattenplatz hast. Und mit chkrootkit ob dein Rechner ev. Kompromittiert wurde.

HTH,
Moritz

Hallo Moritz,
mit uptime bekomme ich folgende Ausgabe
2:44pm up 3:38 1user, load average 0.21 0.14 0.10
Was heißt das genau?
Mit free scheint der Arbeitsspeicher voll zu sein
Verfügbar: 386716 used: 349964 Woran liegt es?
Swap verfügbar: 771112 used: 12
Die Festplatte ist nur zu 11% belegt.
„chkrootkit“ ist unbekannt.
Danke.
Gruß

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

mit uptime bekomme ich folgende Ausgabe
2:44pm up 3:38 1user, load average 0.21 0.14 0.10
Was heißt das genau?

Das weiß keiner so genau :wink:

Die load average bezeichnet die durschnittliche Auslastung deines Systems. Sie wird in drei Werten ausgedrückt:

  1. die durchschnittliche Auslastung der letzten 15 Minuten (0.21)
  2. die durchschnittliche Auslastung der letzten 5 Minuten (0.14)
  3. die durchschnittliche Auslastung der letzten Minute (0.10)

Eine Load von 1 bedeutet, dass dein System zu 100% ausgelastet ist, also kein Systembestandteil wie Festplatte, RAM oder CPU herumgammelt und auch keiner deiner laufenden Prozesse auf irgendetwas warten muss. Das ist der optimale Zustand.

Eine Load von 1.5 bedeutet demnach eine hundertfünfzigprozentige Auslastung, die laufenden Prozesse müssen also auf etwas warten (worauf auch immer, und eben das weiß eben keiner so genau: es ist aus der load-Anzeige nicht ablesbar).

Die von die angegebene Auslastung besagt, dass deine System eigentlich nix zu tun hat (es ist in den letzten 15 Minuten durchschnittlich zu 21% ausgelastet).

Ansonsten zeigt deine Anzeige oben an, dass es 14:44 Uhr ist, dass ein User eingeloggt ist und dass dein System seit 3 Stunden und 38 Minuten seit dem letzten Systemstart läuft.

Gruß,
Stefan

Hallo Olga,

wieviel Mhz hat die CPU und welche
Änderungen hast Du am Rechner oder
an der Software in der letzten Woche
vorgenommen?

Grüße

CMБ

Hallo,
das ist ein Intel Pentium 4 mit 1.7 GHz CPU.
Der Rechner hängt an einem Switch um zw. 2 Rechner zu switchen (da nur ein
Monitor vorhanden). Man hat an diesem Switch versucht einige Änderungen
vorzunehmen (welche kann ich jetzt nicht mehr nachvollziehen), sie sind dann
aber rückgängig gemacht worden. Und sonst sind keine großartigen Änderungen
vorgenommen worden.
Ob das der Auslöser dafür war, kann ich nicht sagen. Aber das weiß ich
definitiv.
Danke
Gruß

Hallo Olga,

wieviel Mhz hat die CPU und welche
Änderungen hast Du am Rechner oder
an der Software in der letzten Woche
vorgenommen?

Grüße

CM?

Hi,

mit uptime bekomme ich folgende Ausgabe
2:44pm up 3:38 1user, load average 0.21 0.14 0.10
Was heißt das genau?

Das weiß keiner so genau :wink:

Doch, doch. (Oder bin ich keiner?)

Die load average bezeichnet die durschnittliche Auslastung
deines Systems.

Dieser Wert ist die Anzahl von Prozessoren, die man braeuchte, um allen laufenden Prozessen alle angeforderte Zeit auf einem Prozessor zu geben.

  1. die durchschnittliche Auslastung der letzten 15 Minuten (0.21)

… der letzten Minute…

  1. die durchschnittliche Auslastung der letzten 5 Minuten (0.14)
  2. die durchschnittliche Auslastung der letzten Minute (0.10)

… der letzten 15 Minuten. (Genau andersrum.)

Eine Load von 1 bedeutet, dass dein System zu 100% ausgelastet
ist,

Genau: allen Prozessen konnte genug Zeit auf der CPU reserviert werden.

also kein Systembestandteil wie Festplatte, RAM oder CPU
herumgammelt und auch keiner deiner laufenden Prozesse auf
irgendetwas warten muss.

Bei meinem

while (1);

gammeln RAM und Festplatte ziemlich rum. Trotzdem wird die load hochgehen.

dd if=/dev/hda of=/dev/hdb

wird die load wahrscheinlich wenig beeindrucken (wenn’s DMA an ist), trotzdem werden die Platten roedeln wie Sau.

Das ist der optimale Zustand.

Was immer optimal bedeutet.

Eine Load von 1.5 bedeutet demnach eine
hundertfünfzigprozentige Auslastung, die laufenden Prozesse
müssen also auf etwas warten (worauf auch immer, und eben das
weiß eben keiner so genau: es ist aus der load-Anzeige nicht
ablesbar).

Doch: sie warten auf die CPU. Man muesste irgendwo noch eine halbe CPU einbauen. Vielleicht den hier: http://www.wortfilter.de/kurios/0412/athlon/index.htm

Gruss vom Frank.

Dieser Wert ist die Anzahl von Prozessoren, die man braeuchte,
um allen laufenden Prozessen alle angeforderte Zeit auf einem
Prozessor zu geben.

Hmmm.

… der letzten 15 Minuten. (Genau andersrum.)

Oder so :wink:

Genau: allen Prozessen konnte genug Zeit auf der CPU
reserviert werden.

Meinen wir beide das Gleiche, wenn wir von CPU reden? Die load errechnet sich doch nicht nur aus der Auslastung des Prozessors, wenn ich beispielsweise diesem Fachaufsatz Glauben schenken darf:

http://www.teamquest.com/resources/gunther/ldavg1.shtml

Bei meinem

while (1);

gammeln RAM und Festplatte
ziemlich rum. Trotzdem wird die load hochgehen.

Warum?

dd
if=/dev/hda of=/dev/hdb

wird die load wahrscheinlich
wenig beeindrucken (wenn’s DMA an ist), trotzdem werden die
Platten roedeln wie Sau.

Warum?

Doch: sie warten auf die CPU.

Und warauf wartet dann die CPU? Ich habe hier zum Beispiel einen hässlichen Webserver, der 4 GB RAM hat und zwei XEONS. Es laufen knapp 110 httpd auf dem Ding, top meldet mir eine Auslastung von 5.2 und gleichzeitig idlen die CPUs bei 58,2% vor sich hin.

Die Maschine ist schwer beschäftigt, sagt top. Aber durch was? RAMdisk-Zugriffe? Netzwerk? RAM? Vielleicht klemmt ein Lüfter und der Kasten muss sich jetzt ganz besonders anstrengen… schon gut. Es ist ganz deutlich: die Prozesse warten auf etwas, und wenn es nur die CPU ist, dann wartet halt die CPU auf irgendwas. Aber auf was?

Mit diesem Problem schlage ich mich jetzt schon eine Weile herum, und es fällt mir schwer, eine brauchbare Erklärung für die hohe load zu finden.

Stefan

Genau: allen Prozessen konnte genug Zeit auf der CPU
reserviert werden.

Meinen wir beide das Gleiche, wenn wir von CPU reden?

Diese komischen Dinger mit viel Silizum und den kurzen Beinchen…

Die load errechnet sich doch nicht nur aus der Auslastung des
Prozessors,

IMHO: doch.

wenn ich beispielsweise diesem Fachaufsatz Glauben schenken darf:

http://www.teamquest.com/resources/gunther/ldavg1.shtml

Wenn ich den richtig verstanden hab zaehlen die doch nur die Prozesse, welche alle gerne auf eine CPU wollen. Das sollte ziemlich identisch mit der Anzahl der CPUs sein, die man braeuchte, um allen Prozessen (die gerade wollen) eine zu geben, oder?

while (1);
Trotzdem wird die load hochgehen.

Warum?

Na, ich weiss nicht, ob Endlosschleifen wirklich so viel auf der CPU machen, oder ob das Ding spitz kriegt, dass das nichts bringt. Vielleicht wird das ja zu einem sleep ‚wegoptimiert‘. Fakt ist, dass rechenintensive Prozesse mehr Last verursachen als Prozesse, die ueberwiegend auf IO warten.

dd if=/dev/hda of=/dev/hdb

wird die load wahrscheinlich
wenig beeindrucken [snip].

Warum?

Weil’s da nichts zu rechnen gibt. CPU sagt Platte, dass sie doch bitte die naechsten paar MB in den RAM schaufeln soll und geht dann ins Freibad.

Und warauf wartet dann die CPU? Ich habe hier zum Beispiel
einen hässlichen Webserver, der 4 GB RAM hat und zwei XEONS.
Es laufen knapp 110 httpd auf dem Ding, top meldet mir eine
Auslastung von 5.2 und gleichzeitig idlen die CPUs bei 58,2%
vor sich hin.

Hm, keine Ahnung, vielleicht ist das Teil durch’s context switching ueberfordert. Bei ein paar 100 Prozessen sollte das aber nicht passieren. Das sind auch eher RAM-Zugriffe, als idle sollten die aber nicht durchgehen. Genaugenommen weiss ich aber auch nicht, was top da eigentlich anzeigt. Ich weiss aber, wenn ich auf meinem Single-Prozessor 200 cpuburns starte, krieg ich eine Last von ziemlich genau 200 (und einen Fvwm, der sich wie ein KDE verhaelt). Cpuburn stellt jedoch eher den Laborfall nach, da es _nur_ rechnet und keine IO macht.

Gruss vom Frank.

ymmd (owT)

aber, wenn ich auf meinem Single-Prozessor 200 cpuburns
starte, krieg ich eine Last von ziemlich genau 200 (und einen
Fvwm, der sich wie ein KDE verhaelt).

*bg*

Hallo,

2:44pm up 3:38 1user, load average 0.21 0.14 0.10
Was heißt das genau?

Das weiß keiner so genau :wink:

Äh?

Die load average bezeichnet die durschnittliche Auslastung
deines Systems.

Dieser Wert ist die Anzahl von Prozessoren, die man braeuchte,
um allen laufenden Prozessen alle angeforderte Zeit auf einem
Prozessor zu geben.

Nein. Ich kann Problemlos eine Load von 10 erzeugen und dabei 50% CPU-idle haben.

„Load“ zeigt nur an, wieviel Prozesse gerade „runnable“ sind.

Gruß,

Sebastian

Hallo,

Dieser Wert ist die Anzahl von Prozessoren, die man braeuchte,
um allen laufenden Prozessen alle angeforderte Zeit auf einem
Prozessor zu geben.

Nein. Ich kann Problemlos eine Load von 10 erzeugen und dabei
50% CPU-idle haben.

 **13:31:13 up 12:21, 12 users, load average: 16.70, 17.38, 10.98  
138 processes: 136 sleeping, 2 running, 0 zombie, 0 stopped  
CPU states: 11.6% user, 5.0% system, 0.0% nice, 83.5% idle  
Mem: 515240K total, 313144K used, 202096K free, 83912K buffers  
Swap: 997848K total, 80896K used, 916952K free, 42660K cached**  

 PID USER PRI NI SIZE RSS SHARE STAT %CPU %MEM TIME COMMAND
 3417 niehaus 15 0 2452 2156 1964 R 7.9 0.4 0:51 xterm
 757 root 6 -10 78584 32M 10296 S 

Hallo,

Hi,

[load average]

Nein. Ich kann Problemlos eine Load von 10 erzeugen und dabei
50% CPU-idle haben.

Cool, da haben wir jetzt drei (mehr oder minder) unterschiedliche Meinungen. Wir sollten eine Arztpraxis aufmachen.

„Load“ zeigt nur an, wieviel Prozesse gerade „runnable“ sind.

Magst Du noch erklaeren, was „runable“ von „will rechnen“ unterscheidet?

Gruss vom Frank.

Hallo,

Nein. Ich kann Problemlos eine Load von 10 erzeugen und dabei
50% CPU-idle haben.

Unabhängig von der Definition der Load trifft dein Argument nicht ganz zu: die 50% CPU-idle sind ein Momentanwert, die Load >10 ein zeitlich gemittelteter Wert. Wenn bei mir jede Menge Prozesse laufen und ich beende sie dann kann ich eine beliebig hohe Load bei beliebig viel CPU-idle haben.

Grüße,
Moritz

Hi,

[load average]

Nein. Ich kann Problemlos eine Load von 10 erzeugen und dabei
50% CPU-idle haben.

Cool, da haben wir jetzt drei (mehr oder minder)
unterschiedliche Meinungen. Wir sollten eine Arztpraxis
aufmachen.

Wem sagst Du das?

„Load“ zeigt nur an, wieviel Prozesse gerade „runnable“ sind.

Scheiße. Das steht zwar so in der man page zu „top“, scheint aber falsch zu sein.

Magst Du noch erklaeren, was „runable“ von „will rechnen“
unterscheidet?

Nein, letztlich war die Aussage aber auch fürs Klo. Nach „Gübeln über Groogle“ oder so habe ich einen brauchbaren Hinweis gefunden.

http://groups.google.com/groups?hl=de&lr=&selm=slrng…

Ich habe gerade keinen 2.6.x am Start, aber im 2.4.x ist das recht ähnlich noch enthalten.

HTH,

Sebastian

Hallo,

Nein. Ich kann Problemlos eine Load von 10 erzeugen und dabei
50% CPU-idle haben.

Unabhängig von der Definition der Load trifft dein Argument
nicht ganz zu: die 50% CPU-idle sind ein Momentanwert, die
Load >10 ein zeitlich gemittelteter Wert.

Gib mir einen Shell-Accoungt und ich hänge Deine Kiste mit hoher Load und hohem CPU idle für ein Stüdnchen weg :smile:

Wenn bei mir jede
Menge Prozesse laufen und ich beende sie dann

laufen sie nicht mehr?

kann ich eine
beliebig hohe Load bei beliebig viel CPU-idle haben.

Gildet nich[tm].

Gruß,

Sebastian

Hallo,

http://groups.google.com/groups?hl=de&lr=&selm=slrng…

Ich habe gerade keinen 2.6.x am Start, aber im 2.4.x ist das
recht ähnlich noch enthalten.

Das scheint Licht ins Dunkle zu bringen. Ich hab mir mal kernel/timer.c bei einem 2.6.9er angeschaut. Da gibt es die Stelle:

static unsigned long count\_active\_tasks(void)
{
 return (nr\_running() + nr\_uninterruptible()) \* FIXED\_1;
}

Es sind also auf jeden Fall die laufenden und die Ununterbrechlichen.
Ich schau mir den Rest mal genauer an, so ganz klar ist den Leuten wohl zum Teil auch nicht was berechnet werden soll - ist jedenfalls mein Eindruck *g*.

Grüße,
Moritz