Ich versuche, zufällige Fehler auf einem kopflosen Server zu diagnostizieren, und eine Sache, die merkwürdig erscheint, ist, dass sie nur unter Speicherdruck auftreten und meine Swap-Größe nicht über 0 steigt.
Wie kann ich meinen Computer zum Tauschen zwingen, um sicherzustellen, dass er ordnungsgemäß funktioniert?
orca ~ # free
total used free shared buffers cached
Mem: 1551140 1472392 78748 0 333920 1046368
-/+ buffers/cache: 92104 1459036
Swap: 1060280 0 1060280
orca ~ # swapon -s
Filename Type Size Used Priority
/dev/sdb2 partition 1060280 0 -1
kern.log
Befinden sich zum Zeitpunkt der Segfaults irgendwelche Meldungen in ? Eine Meldung überoom-killer
weist darauf hin, dass Ihr System nicht über genügend virtuellen Speicher verfügt. Dies kann bedeuten, dass Swap nicht verwendet wird. Ist das ein virtualisierter Server (und welche Art)?segfault at 54 ip b7619ba8 sp bf9c3380 error 4
solche, von denen ich denke, dass es ein Hardware-Problem ist, das schwer aufzuspüren sein wird. Dies ist ein physischer Server mit zwei Athlon MP 2000+ -Prozessoren und 1,5 GB RAM. Es läuft ziemlich stabil, aber während des Kompilierens treten Fehler auf.Antworten:
Ist das Linux? Wenn ja, können Sie Folgendes versuchen:
Verwenden Sie dann entweder ein oder mehrere Programme, die viel RAM verwenden, oder schreiben Sie eine kleine Anwendung, die nur RAM auffrisst. Folgendes wird das tun (Quelle: http://www.linuxatemyram.com/play.html ):
Ich habe sleep (1) hinzugefügt, um Ihnen mehr Zeit zu geben, die Prozesse zu beobachten, während sie RAM verschlingen und tauschen. Der OOM-Killer sollte dies beenden, sobald Sie nicht mehr genügend RAM und SWAP haben, um es dem Programm zu geben. Sie können es mit kompilieren
Wobei filename.c die Datei ist, in der Sie das obige Programm speichern. Dann können Sie es mit ./memeater ausführen.
Ich würde das nicht auf einer Produktionsmaschine machen.
quelle
/proc/self/oom_score_adj
Mitteilung zu verfassen , um sicherzustellen, dass es das wahrscheinlichste Opfer eines OOM-Mörders ist ...<unistd.h>
für den Schlaf enthalten, sonst wirft es eine Warnungwarning: implicit declaration of function ‘sleep’;