Linuxでulimitコマンドを使用してbashで開始されたプロセスで使用されるメモリを制限したいと思います。ulimitをサポートするためにどのOSメカニズムが使用されているのか疑問に思いました。特に、それはcgroupsに基づいていますか?
4144 次
3 に答える
2
制限を取得および設定するためのLinuxAPIメソッドは、getrlimit(2)およびsetrlimit(2)です。
制限はプロセススペース内で管理されます。子プロセスは、その親の制限を継承します。制限はPOSIX標準の一部であるため、すべてのPOSIX準拠のオペレーティングシステムが制限をサポートします(Linux、BSD、OSX)。
cgroupsはLinux固有であり、Linuxのインストールでは必要ありません。cgroupsで制限を管理できるかどうかはわかりませんが、それは間違いなく非標準です。
于 2012-10-18T01:04:11.557 に答える
2
「ulimit」は基本的に時代錯誤です。リソースが必要な場合は、箱から出してすぐに実際の制限を設定するべきではありません。リソースを制限したい場合は、見積もりを設定するためのより良い方法があります。
ここに良い概要があります:
確認するいくつかのマニュアルページは次のとおりです。
于 2012-10-18T01:16:56.423 に答える
0
DJBのパッケージ の一部であるsoftlimitを使用しています。daemontools
softlimit -m 1048576 nautilus
たとえば、プログラム(nautilus)が1MiBのメモリ使用量を超えることはありません(この場合、プログラムはすぐに失敗します)。
于 2012-10-18T01:25:02.460 に答える