On Sun, Jun 25, 2000 at 08:35:37PM +0200, Andre Schulze wrote:
kann mir jemand erklären, warum der kernel, wenn er 'out of memory' geht, nicht den prozess killt, der am groessten ist, sondern irgend einen anderen?
Die Strategie, den groessten abzuschiessen, waere oft genauso doof. Auf einem Server mit einem grossen inn oder squid im Produktionsberieb waere ein gekillter dnetc noch zu verschmerzen, oder :) Es war mal so, dass genau der Prozess gekillt wurde, der den Speicher haben wollte als dieser ausging. Keine Ahnung, welche Strategie aktuelle Kernel da haben. Ware interessant, sich das mal wieder anzuschauen.
hintergrund: ich habe einen offensichtlich nicht sehr optimalen sql select an mysql übergeben, von dem es sich nicht mehr erholt hat.
Jun 25 19:10:55 inspiron kernel: VM: killing process rpc.nfsd
die tabelle (67mb) war dabei etwa so gross wie swap (64mb). die kiste hat 32mb physisches ram.
Wieviel Pfennige haben dich die 64MB Swap gekostet? ... Es scheint noch keine sinnvoll funktionierende Lösung fuer diese Problem zu geben, die nicht massenhaft swap benötigt oder pessimistisch bei jedem fork() schon ein ENOMEM liefert, wenn der doppelte Platz fuer den Prozess nicht da ist.
Reinhard