On Tuesday 30 May 2006 13:18, Marian Neubert wrote:
Hallo Leute,
bei einem Server taucht seit einiger Zeit folgendes Phänomen auf: Wenn er seinen zur Verfügung stehenden RAM völlig genutzt hat und er anfängt zu swappen, steigt die CPU-Load auf hohe 2-stellige Werte an und die Maschine wird nahezu unbenutzbar. Der Speicher wurde vor kurzem von 1 auf 2 GB aufgerüstet, da MySQL-Server. Die Lastprobleme traten vorher auch auf.
Klar das bei der nutzung von swap mehr zeit gebraucht wird, laut iostat dümpelt die Platte (ist ein RAID-1-Verbund) aber nur mit 300 - 400kb/s rum. System ist ein Gentoo 3.3.5 mit 2.6.11-er SMP-Kernel.
Ideen? Was gibt's ausser iostat und vmstat noch für programme, um herauszufinden, wo der flaschenhals ist?
Grüße Marian
/usr/bin/time verdächtige_applikation gibt die u.a. die pagefaults aus. Je mehr desto swap. (Nicht shell-builtin time verdächtige_applikation!!!)
Knackpunkt wird sein, daß die Applikation nicht nur andere zur Auslagerung zwingt , sondern die geswappten Daten selber braucht (hohe CPU Last, weniger IO-Problem)
Manchmal machen Applikationen aus unklaren Gründen einfach nur sehr viele Dateien auf (speziell beim Start) oder sind "fork bombs" die aus genauso unklaren Gründen der Meinung sind, nur mit 1000.000 Prozessen gleichzeitig zum Ziel zu kommen. Jeder Prozess braucht Speicher. strace -f und grep sind da Mittel zum Zweck Genauso ist es möglich, daß eine Applikation ein "memory leak" hat. (Es wird dabei mehr Speicher angefordert als (Programmierfehler!) freigegeben.)
Bernhard
(Ich hoffe aber auch, daß die Swappartition schnell ist (hdparm -d1 ?).)