load average

Warum Debian und/oder eine seiner Spielarten? Was muss ich vorher wissen? Wo geht es nach der Installation weiter?
Antworten
Benutzeravatar
hupfdule
Beiträge: 1864
Registriert: 09.12.2002 15:04:37
Wohnort: Berlin
Kontaktdaten:

load average

Beitrag von hupfdule » 24.04.2006 10:08:28

Ich muss zugeben, dass mir die Aussagekraft der load average bis heute noch etwas verschlossen geblieben ist. Daher kommt vermutlich auch mein Verwunderung über das Folgende:

Code: Alles auswählen

top - 10:05:07 up 3 days,  1:35,  1 user,  load average: 21.00, 21.00, 21.00
Tasks:  85 total,   1 running,  84 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.0% us,  0.0% sy,  0.0% ni, 100.0% id,  0.0% wa,  0.0% hi,  0.0% si
Mem:    256976k total,   250240k used,     6736k free,    66064k buffers
Swap:   746980k total,       84k used,   746896k free,   120712k cached
Ich habe also eine load average von 21. Das erscheint mir schon mal arg hoch. Was mich verwundert ist, dass dieser Wert offenbar auch nicht wieder sinkt. Obwohl die CPU quasi gar nichts tut.
Ich kann mir vorstellen, dass die hohe load average durch die nächtlichen debmirror Läufe entstehen. Nur wieso steigt der Wert nur und fällt nicht wieder?

Benutzeravatar
meandtheshell
Beiträge: 4054
Registriert: 14.01.2005 17:51:30

Beitrag von meandtheshell » 24.04.2006 11:50:35

http://www.debianforum.de/forum/viewtop ... t=load+top
Nur wieso steigt der Wert nur und fällt nicht wieder?
/Vermutung
Irgendeine deadlock Situation:
- ein Prozess A der auf C zugreift benötigt von B Erlaubnis dazu.
- versucht aber A auf B zuzugreifen ---> deadlock

Das ist einer von vielen möglichen Fällen ... evtl. siehst du zu das du mit den Unhold findest. Soweit ich sehe ist ein zombie process nicht der besagte Unhold.

markus

Benutzeravatar
Snoopy
Beiträge: 4297
Registriert: 17.11.2003 18:26:56
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Rh.- Pflz.

Beitrag von Snoopy » 24.04.2006 11:57:14

Hi

Bzgl load-average zitiere ich immer gerne Patrick Dreker:
pdreker hat geschrieben: Die CPU ist die einzige Bedienung hinter der Fleischtheke im Supermarkt. Die load gibt dann an, wie lang die Warteschlange im Durchschnitt in der letzten Minute, in den letzten 5 Minuten und in den letzten 15 Minuten war.

Code: Alles auswählen

load = 0:
Die Bedienung lagweilt sich, es ist nie jemand da.

Code: Alles auswählen

load = 1:
Immer wenn die Bedienung einen Kunden abgefertigt hat, steht immer genau einer da, der schon wartet. Das ist im Prinzip der Idealfall: Die Bedienung ist immer beschäftigt, und es muss aber nie ein Kunde wirklich warten.

Code: Alles auswählen

load > 1:
Es ist eine längere Warteschlange. 
load = 14 bedeutet z.B., dass die Warteschlange in der letzten Minute im Durchschnitt aus 14 Personen bestand.

Benutzeravatar
hupfdule
Beiträge: 1864
Registriert: 09.12.2002 15:04:37
Wohnort: Berlin
Kontaktdaten:

Beitrag von hupfdule » 24.04.2006 12:14:30

Aha, danke dir.
Hab den Unhold scheinbar gefunden:
lsof hat geschrieben: check_nrp 21356 nagios cwd DIR 3,1 4096 2 /
check_nrp 21356 nagios rtd DIR 3,1 4096 2 /
check_nrp 21356 nagios txt unknown /proc/21356/exe (readlink: No such file or directory)
check_nrp 21356 nagios 0r CHR 1,3 1166 /dev/null
check_nrp 21356 nagios 1w FIFO 0,5 710721 pipe
check_nrp 21356 nagios 2w CHR 1,3 1166 /dev/null
check_nrp 21356 nagios 7w FIFO 0,5 51609 pipe
check_nrp 22539 nagios cwd DIR 3,1 4096 2 /
check_nrp 22539 nagios rtd DIR 3,1 4096 2 /
check_nrp 22539 nagios txt unknown /proc/22539/exe (readlink: No such file or directory)
check_nrp 22539 nagios 0r CHR 1,3 1166 /dev/null
check_nrp 22539 nagios 1w FIFO 0,5 717475 pipe
check_nrp 22539 nagios 2w CHR 1,3 1166 /dev/null
check_nrp 22539 nagios 7w FIFO 0,5 51609 pipe
check_nrp 23929 nagios cwd DIR 3,1 4096 2 /
check_nrp 23929 nagios rtd DIR 3,1 4096 2 /
check_nrp 23929 nagios txt unknown /proc/23929/exe (readlink: No such file or directory)
check_nrp 23929 nagios 0r CHR 1,3 1166 /dev/null
check_nrp 23929 nagios 1w FIFO 0,5 251860 pipe
check_nrp 23929 nagios 2w CHR 1,3 1166 /dev/null
check_nrp 23929 nagios 7w FIFO 0,5 51609 pipe
check_nrp 26727 nagios cwd DIR 3,1 4096 2 /
check_nrp 26727 nagios rtd DIR 3,1 4096 2 /
check_nrp 26727 nagios txt unknown /proc/26727/exe (readlink: No such file or directory)
check_nrp 26727 nagios 0r CHR 1,3 1166 /dev/null
check_nrp 26727 nagios 1w FIFO 0,5 580760 pipe
check_nrp 26727 nagios 2w CHR 1,3 1166 /dev/null
check_nrp 26727 nagios 7w FIFO 0,5 51609 pipe
check_nrp 28065 nagios cwd DIR 3,1 4096 2 /
check_nrp 28065 nagios rtd DIR 3,1 4096 2 /
check_nrp 28065 nagios txt unknown /proc/28065/exe (readlink: No such file or directory)
check_nrp 28065 nagios 0r CHR 1,3 1166 /dev/null
check_nrp 28065 nagios 1w FIFO 0,5 587203 pipe
check_nrp 28065 nagios 2w CHR 1,3 1166 /dev/null
check_nrp 28065 nagios 7w FIFO 0,5 51609 pipe
check_pin 29083 nagios cwd DIR 3,1 4096 2 /
check_pin 29083 nagios rtd DIR 3,1 4096 2 /
...
Besonders die Zeile

Code: Alles auswählen

check_nrp 28065      nagios  txt   unknown                               /proc/28065/exe (readlink: No such file or directory)
scheint mir hier interessant. Und tatsächlich, die entsprechenden exe-Links zeigen ins nirgendwo:

Code: Alles auswählen

# ls -l /proc/28065/exe
ls: cannot read symbolic link /proc/28065/exe: No such file or directory
lrwxrwxrwx 1 root root 0 Apr 24 11:54 /proc/28065/exe
Die entsprechenden Prozesse hängen auch noch herum, lassen sich jedoch nicht einmal mit kill -9 beenden:

Code: Alles auswählen

# ps aux|grep nagios 
nagios   15056  0.0  0.0      0     0 ?        DN   Apr22   0:00 [check_ssh]
nagios   15420  0.0  0.0      0     0 ?        DN   Apr22   0:00 [check_nrpe]
nagios   16330  0.0  0.0      0     0 ?        DN   Apr22   0:00 [check_nrpe]
nagios   23929  0.0  0.0      0     0 ?        DN   Apr22   0:00 [check_nrpe]
nagios   32153  0.0  0.0      0     0 ?        DN   Apr22   0:00 [check_nrpe]
nagios    4396  0.0  0.0      0     0 ?        DN   Apr22   0:00 [check_nrpe]
nagios   11339  0.0  0.0      0     0 ?        DN   Apr22   0:00 [nagios2]
nagios   12585  0.0  0.0      0     0 ?        DN   Apr22   0:00 [check_nrpe]
nagios    2703  0.0  0.0      0     0 ?        DN   Apr23   0:00 [check_nrpe]
nagios    9681  0.0  0.0      0     0 ?        DN   Apr23   0:00 [check_nrpe]
nagios   12237  0.0  0.0      0     0 ?        DN   Apr23   0:00 [check_nrpe]
nagios   14304  0.0  0.0      0     0 ?        DN   Apr23   0:00 [check_nrpe]
nagios   15607  0.0  0.0      0     0 ?        DN   Apr23   0:00 [check_nrpe]
nagios   17314  0.0  0.0      0     0 ?        DN   Apr23   0:00 [check_nrpe]
nagios   26727  0.0  0.0      0     0 ?        DN   Apr23   0:00 [check_nrpe]
nagios   28065  0.0  0.0      0     0 ?        DN   Apr23   0:00 [check_nrpe]
nagios   31058  0.0  0.0      0     0 ?        DN   Apr23   0:00 [check_nrpe]
nagios   21356  0.0  0.0      0     0 ?        DN   03:12   0:00 [check_nrpe]
nagios   22539  0.0  0.0      0     0 ?        DN   03:44   0:00 [check_nrpe]
nagios   29083  0.0  0.0      0     0 ?        DN   06:42   0:00 [check_ping]
Nun stellen sich mir wieder zwei Fragen:

1. Wieso zeigen die exe-Links ins Nirvana?
2. Warum kann ich die Prozesse nicht einmal abschießen?

nepos
Beiträge: 5238
Registriert: 05.01.2005 10:08:12

Beitrag von nepos » 24.04.2006 12:40:36

Hm, als root mit

Code: Alles auswählen

kill -9 <PID>
solltest du die Prozesse sehr wohl abschiessen koennen.
Wobei immer noch die Frage bleibt, wieso diese Prozesse haengen...

Benutzeravatar
hupfdule
Beiträge: 1864
Registriert: 09.12.2002 15:04:37
Wohnort: Berlin
Kontaktdaten:

Beitrag von hupfdule » 24.04.2006 12:48:53

nepos hat geschrieben:Hm, als root mit

Code: Alles auswählen

kill -9 <PID>
solltest du die Prozesse sehr wohl abschiessen koennen.
Eben nicht. Das ist es ja:

Code: Alles auswählen

# ps -p 15420
  PID TTY          TIME CMD
15420 ?        00:00:00 check_nrpe
# kill -9 15420
# ps -p 15420
  PID TTY          TIME CMD
15420 ?        00:00:00 check_nrpe
Wobei immer noch die Frage bleibt, wieso diese Prozesse haengen...
Das auch. Ich vermute, es ist das Problem, das Markus angesprochen hat. Sie wollen auf die Datei /proc/<pid>/exe zugreifen, die aber nicht existiert. Also kann der Prozess nicht weiter. Deswegen finde ich es besonders interessant, warum dieser Link tot ist.

123456
Beiträge: 6126
Registriert: 08.03.2003 14:07:24

Beitrag von 123456 » 24.04.2006 12:59:48

hupfdule hat geschrieben:
nepos hat geschrieben:Hm, als root mit

Code: Alles auswählen

kill -9 <PID>
solltest du die Prozesse sehr wohl abschiessen koennen.
Eben nicht. Das ist es ja:
ein netter kleiner Zombie:
http://aplawrence.com/SCOFAQ/FAQ_scotec6cantkill.html

Benutzeravatar
hupfdule
Beiträge: 1864
Registriert: 09.12.2002 15:04:37
Wohnort: Berlin
Kontaktdaten:

Beitrag von hupfdule » 24.04.2006 13:08:12

Ein Zombie eher nicht, wird auch nicht als Zombie gelistet. Die erste Erklärung deines Links passt dagegen:
A process can be sleeping in kernel code. [...] The process doesn't ignore your signal- it just never gets it.
OK, das ist mir im Moment eher wurscht. Viel dramatischer ist das Problem mit dem exe-Link. Hat dazu jemand eine Idee?

Antworten