Reservieren Sie Speicher für ein bestimmtes Programm

Reservieren Sie Speicher für ein bestimmtes Programm

Wie kann ich einen Teil des Hauptspeichers für das System reservieren, der ausschließlich für SSH-Prozesse verwendet werden kann?

Jedes Mal, wenn auf meinem Server Anwendungen für maschinelles Lernen ausgeführt werden, ist der Hauptspeicher völlig voll und lässt nicht einmal eine SSH-Verbindung zu. Wir haben einen Server mit 64 GB Hauptspeicher.

Ich möchte, dass 63 GB von allen anderen Benutzern für alle anderen Prozesse verwendet werden können, aber das verbleibende 1 GB soll ausschließlich zum Starten des SSH-Prozesses verwendet werden. Alle Threads dazu wären wirklich eine große Hilfe.

Antwort1

Einige Ansätze, die mir einfallen:

  1. Geben Sie dem SSH-Prozess eine höhere Priorität.

    renice -n -10 -p `pidof sshd`
    

    Mit einer höheren Priorität kann der SSH-Server häufiger in der CPU eingeplant werden. Dadurch ist es weniger wahrscheinlich, dass er auf die Festplatte ausgelagert wird.

  2. Verwenden Sie SystemdsRessourcenkontrolleModul zur Steuerung der Ressourcennutzung Ihres maschinellen Lernprogramms. Sie können „apply“ MemoryMaxauf einen Benutzer-Slice anwenden, sodass alle in dieser Benutzersitzung gestarteten Prozesse nicht mehr Speicher als den angegebenen Wert verwenden können. Der Befehl lautet:

    systemctl set-property MemoryMax=5G user-XXXX.slice
    

    Oder verwenden Sie denselben Trick auf dem SSH-Server mit MemoryLow.

verwandte Informationen