Vermeiden Sie das Töten von SSH im Arbeitsspeicher

2938
Riki137

Wenn mein Server über genügend Arbeitsspeicher verfügt, werden in der Regel mehrere Anwendungen beendet. Wie kann ich verhindern, dass SSH getötet wird? Normalerweise ist mein SSH, wenn dieser Out-of-Memory-Fehler auftritt, folgendermaßen defekt:

I connect to ssh server. Enter username Enter password 

und dann warte ich

ich warte

und warte...

und waaaaaaaaaaait ..

und dann:

Connection timed out. 

Gibt es eine Möglichkeit, dies zu verhindern? Wie kann ich die Priorität des Prozesses erhöhen?

2

1 Antwort auf die Frage

10
Michael Mior

Führen Sie den folgenden Befehl als root aus. Sie möchten dies wahrscheinlich irgendwo in ein Init-Skript einfügen.

echo -17 > /proc/`pidof sshd`/oom_adj 

Aktualisieren:

Um sicherzustellen, dass der Haupt-Daemon-Prozess derjenige ist, der angepasst wird, können Sie diesen Befehl verwenden. Das Obige wird wahrscheinlich fehlschlagen, wenn Sie offene SSH-Sitzungen haben, also keine so gute Wahl :(

echo -17 > /proc/`cat /var/run/sshd.pid`/oom_adj 

-17 ist der aktuelle Wert für OOM_DISABLEin /usr/include/linux/oom.h. Weitere Informationen zum Linux-OOM-Killer finden Sie hier .

Danke, aber "root @ *****: ~ # pidof sshd" kehrt in 30330 24682 19633 19582 516 zurück. Ich schätze, es wird fehlschlagen. Riki137 vor 13 Jahren 0
Ja, das würde scheitern. Sie können durch "pidof -s" ersetzen, um nur eine PID zurückzugeben. Siehe meine aktualisierte Antwort für eine bessere Option. Michael Mior vor 13 Jahren 1
Ich hoffe, dass Sie mehr Stimmen bekommen werden :) Riki137 vor 13 Jahren 0
@ Riki137 Danke! Froh, dass ich helfen konnte :) Michael Mior vor 13 Jahren 1
Zu welcher Zeit sollte es beim Start ausgeführt werden? > "Sie möchten dies wahrscheinlich irgendwo in ein Init-Skript einfügen." Sarge Borsch vor 9 Jahren 0
Ist es in Ordnung, diese Zeile direkt in `/ etc / init / ssh.conf` einzufügen? Sarge Borsch vor 9 Jahren 0
@SargeBorsch Dies ist keine SSH-Konfigurationsoption, daher bin ich nicht sicher, wo Sie sie hinzufügen möchten. Dies sollte funktionieren, wenn Sie es zum Beispiel in `/ etc / rc.local` platzieren. Oder Sie können Ihr SSH-Init-Skript dazu ändern. Michael Mior vor 9 Jahren 0