CentOS でマルチプロセスの Python プログラムを実行しています。このプログラムは大量のメモリを必要としません。問題は、64 GB メモリのマシンのメモリがほとんど不足しており、他の計算集約型タスクを実行できないことです。同じ問題を抱えている人はいますか?
更新しました:
%MEM でプロセスをソートした後、出力の一部は次のようになります。
21922 haoyu 20 0 12.457g 1.204g 0 T 0.0 1.9 0:00.02 python
21871 haoyu 20 0 12.433g 1.204g 0 T 0.0 1.9 0:00.02 python
21872 haoyu 20 0 12.433g 1.204g 0 T 0.0 1.9 0:00.02 python
21895 haoyu 20 0 12.433g 1.204g 0 T 0.0 1.9 0:00.02 python
21896 haoyu 20 0 12.433g 1.204g 0 T 0.0 1.9 0:00.01 python
21897 haoyu 20 0 12.433g 1.204g 0 T 0.0 1.9 0:00.03 python
21898 haoyu 20 0 12.433g 1.204g 0 T 0.0 1.9 0:00.01 python
21899 haoyu 20 0 12.433g 1.204g 0 T 0.0 1.9 0:00.02 python
21900 haoyu 20 0 12.433g 1.204g 0 T 0.0 1.9 0:00.01 python
問題は、マルチプロセスの Python プログラムに何らかの間違いがある可能性があります。サブプロセスが正しく閉じられておらず、まだメモリを消費しているようです。それらの多くは CPU を使用してアクティブではないため、オプションなしで top コマンドを適用しても、それらを見ることはできません。
答え1
添付されたイメージでは、プロセス/プログラムはメモリ使用量ではなく CPU 使用量でソートされています。
実行している Python プログラムはメモリの 0.4% しか使用していないようです (CPU は 100%)。おそらく、別のプロセス/プログラムがサーバー上のメモリを使用しています。
メモリ使用量順に並べられたプログラムのリストを生成するコマンドを実行してください:
top -o %MEM -b -n 1 | head -20
プロセス/プログラムの名前の最後の列を確認します。
それは質問に対する答えを与えるはずです、あなたのマシンのメモリを使用しているのは何ですか?。