メモリ制限を設定するための limits.conf

メモリ制限を設定するための limits.conf

どのプロセスでも 500 MB を超える RAM の使用を制限したいと思います。私の知る限り、これは /etc/security/limits.conf の RSS を使用して行われますが、gnome-panel というプロセスは 618436 kB の VmRSS を使用しているようです。これはどうしてでしょうか?

制限

* ハードRSS 512000

ユーザー名@debian:~$ cat /proc/3002/status
名前: gnome-panel
状態: S (睡眠中)
タグ: 3002
シリアル番号: 3002
PPid: 2910
トレーサーPid: 0
ユーザーID: 1000 1000 1000 1000
ギルド: 1000 1000 1000 1000
FDサイズ: 64
グループ: 20 24 25 29 44 46 112 116 117 1000 1002 1003
Vmピーク: 916636 KB
VMサイズ: 916636 KB
容量: 0 KB
仮想メモリ: 618436 KB
618436 KB
VMデータ: 601972 KB
仮想マシンサイズ: 104 KB
仮想マシン実行ファイル: 516 KB
VmLib: 29232 KB
VmPTE: 1760 KB
スレッド: 1
シグナルQ: 0/14001
署名: 00000000000000000
消去済み: 00000000000000000
シグナルブロック: 00000000000000000
署名: 0000000020001000
信号コード: 0000000180000000
キャップインヒビター: 00000000000000000
キャッププリム: 00000000000000000
キャップエフェク: 00000000000000000
キャップボンド: ffffffffffffffff
許可されるCPU: 3
CPU 許可リスト: 0-1
許可されたメモリ: 00000000,00000001
許可リスト: 0
自発的 ctxt スイッチ: 871965
非自発的 ctxt スイッチ: 47553
PaX: PeMRs

ユーザー名@debian:~$ cat /proc/3002/limits
制限 ソフト制限 ハード制限 ユニット     
最大CPU時間無制限無制限秒   
最大ファイルサイズ無制限、無制限バイト     
最大データサイズ無制限無制限バイト     
最大スタックサイズ 8388608 無制限バイト     
最大コアファイルサイズ 0 0 バイト     
最大常駐セット 524288000 524288000 バイト     
最大プロセス数 100 100 プロセス
最大オープンファイル数 1024 1024ファイル     
最大ロックメモリ 65536 65536 バイト     
最大アドレス空間無制限無制限バイト     
最大ファイルロック数 無制限 無制限ロック     
保留中の信号の最大数 14001 14001 信号   
最大メッセージキューサイズ 819200 819200 バイト     
最大ナイス優先度 0 0                    
最大リアルタイム優先度 0 0                    
最大リアルタイムタイムアウト 無制限 無制限

答え1

こちらを見てこの解決策を見つけました:http://shortrecipes.blogspot.de/2009/04/limitsconf-virtual-memory-limit.html

たとえば:

* hard as 512000

ulimit -v 512000これは、アカウントにログインした瞬間に適用されると同等のようです。

答え2

limits.conf(5)man ページには次のように書かれています:

rss
  maximum resident set size (KB) (Ignored in Linux 2.4.30 and higher)

答え3

プロセスごとに制限する方法はわかりませんが、プロセスグループのRSS(およびその他の)サイズの合計を制限するには、メモリリソースコントローラ

答え4

limits.conf の RSS 制限は、カーネル 2.4.30 以降では機能しません。

使用する必要がありますCグループ

関連情報