プロセスが500 MBを超えるRAMを使用することを制限したいと思います。私の知る限り、これは/etc/security/limits.conf内のRSSを使用して行われますが、gnome-panelと呼ばれるプロセスは、618436 kBのVmRSSを使用しているようです。どうすればいいの ?
/etc/security/limits.conf * hard rss 512000
username @ debian:〜$ cat /proc/3002/status Name:gnome-panel State:S(sleeping) Tgid:3002 Pid:3002 PPid:2910 TracerPid:0 Uid:1000 1000 1000 1000 Gid:1000 1000 1000 1000 FDSize:64 グループ:20 24 25 29 44 46112116117 1000 1002 1003 VmPeak:916636 kB VmSize:916636 kB VmLck:0 kB VmHWM:618436 kB VmRSS:618436 kB VmData:601972 kB VmStk:104 kB VmExe:516 kB VmLib:29232 kB VmPTE:1760 kB スレッド:1 SigQ:0/14001 SigPnd:0000000000000000 ShdPnd:0000000000000000 SigBlk:0000000000000000 SigIgn:0000000020001000 SigCgt:0000000180000000 CapInh:0000000000000000 CapPrm:0000000000000000 CapEff:0000000000000000 CapBnd:ffffffffffffffff Cpus_allowed:3 Cpus_allowed_list:0-1 Mems_allowed:00000000,00000001 Me ms_allowed_list:0 voluntary_ctxt_switches:871965 nonvoluntary_ctxt_switches:47553 PaX:PeMRs
username @ debian:〜$ cat /proc/3002/limits Limit Soft Limit Hard Limit Units Max cpu time unlimited unlimited seconds Max file size unlimited unlimited bytes 最大データサイズ無制限無制限バイト 最大スタックサイズ8388608無制限バイト 最大コアファイルサイズ0 0バイト 最大常駐セット524288000 524288000バイト 最大プロセス100 100プロセス 最大オープンファイル1024 1024ファイル 最大ロックメモリ65536 65536バイト 最大アドレススペース無制限無制限バイト 最大fi le locks無制限無制限ロック 最大保留信号14001 14001信号 最大msgqueueサイズ819200 819200バイト 最大Nice優先度0 0 最大リアルタイム優先度0 0 最大リアルタイムタイムアウト無制限無制限私たち
ここを見てこのソリューションを見つけました: http://shortrecipes.blogspot.de/2009/04/limitsconf-virtual-memory-limit.html
あなたの例のために:
* hard as 512000
これはulimit -v 512000
と同等のようで、アカウントにログインした瞬間に適用されます。
limits.conf(5)
manページには次のように書かれています:
rss
maximum resident set size (KB) (Ignored in Linux 2.4.30 and higher)
Limits.confのRSS制限は、カーネル> 2.4.30では機能しません。
Cgroups を使用する必要があります
これをプロセスごとに制限する方法はわかりませんが、 memory resource controller を使用して、プロセスのグループのRSS(およびその他)の合計サイズを制限できます。