特定のプログラムにメモリを割り当てる

特定のプログラムにメモリを割り当てる

メインメモリの一部をシステム専用にして SSH プロセス専用にするにはどうすればよいでしょうか?

私のサーバーが機械学習アプリケーションを実行するたびに、メイン メモリが完全にいっぱいになり、誰も ssh を実行できなくなります。私たちは 64 GB のメイン メモリを搭載したサーバーを持っています。

63 GB は他のすべてのユーザーが他のすべてのプロセスに使用できるようにし、残りの 1 GB は SSH プロセスの開始専用にしたいと考えています。これに関するスレッドがあれば、非常に助かります。

答え1

私が考えられるいくつかのアプローチは次のとおりです:

  1. SSH プロセスに高い優先度を与えます。

    renice -n -10 -p `pidof sshd`
    

    優先度を高くすると、ssh サーバーを CPU で頻繁にスケジュールできるため、ディスクにスワップオフされる可能性が低くなります。

  2. Systemdを使用するリソース管理機械学習プログラムのリソース使用量を制御するモジュール。MemoryMaxユーザー スライスに適用して、そのユーザー セッションで開始されたすべてのプロセスが指定された値を超えるメモリを使用できないようにすることができます。コマンドは次のとおりです。

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

    または、 の ssh サーバーで同じトリックを使用することもできますMemoryLow

関連情報