2017-01-06 24 views
0

プロセスがCentOSでできる最大のメモリを制限したい。プロセスが、利用可能なすべてのメモリ、またはシステム内の他のプロセスに影響を与えるほとんどのメモリを使用して終了するシナリオがあります。したがって、私はこれがどのように制限されるのかを知りたい。プロセスがCentosで使用できる最大メモリを制限する方法は?

また、プロセスのメモリ使用を制限しているサンプルプログラムを提供し、役立つ次のシナリオを示すことができます。

  1. 設定された範囲内でメモリが要求された場合に成功しました。
  2. 要求されたメモリが制限値を超えた場合、メモリ割り当てに失敗しました。あなたはulimit` `を見てしたい

-Thanks

+2

。 – alk

+0

@alkが述べたように、[this](http://ss64.com/bash/ulimit.html)を参照してください。 –

+0

Ulimitはシステム全体の制限を設定します。しかし、私は特定のプロセスのメモリ使用量を制限したかったのです。この場合の私の選択肢は何ですか? –

答えて

0
ulimit can be used to limit memory utilization (among other things) 

Here is an example of setting memory usage so low that /bin/ls (which is larger than /bin/cat) no longer works, but /bin/cat still works. 

$ ls -lh /bin/ls /bin/cat 
-rwxr-xr-x 1 root root 25K May 24 2008 /bin/cat 
-rwxr-xr-x 1 root root 88K May 24 2008 /bin/ls 
$ date > test.txt 
$ ulimit -d 10000 -m 10000 -v 10000 
$ /bin/ls date.txt 
/bin/ls: error while loading shared libraries: libc.so.6: failed to map segment from shared object: Cannot allocate memory 
$ /bin/cat date.txt 
Thu Mar 26 11:51:16 PDT 2009 
$ 

Note: If I set the limits to 1000 kilobytes, neither program works, because they load libraries, which increase their size. above 1000 KB. 

-d data segment size 

-m max memory size 

-v virtual memory size 

Run ulimit -a to see all the resource caps ulimits can set. 
関連する問題