ulimit制限を超えました。

ulimit制限を超えました。

次のコマンドを実行します。

ulimit -a

それが提供する出力は次のとおりです。

core file size          (blocks, -c) 0 
data seg size           (kbytes, -d) unlimited 
scheduling priority             (-e) 0 
file size               (blocks, -f) unlimited 
pending signals              (-i) 14881 
max locked memory       (kbytes, -l) 64 
max memory size     (kbytes, -m) unlimited 
open files                      (-n) 1024 
pipe size            (512 bytes, -p) 8 
POSIX message queues     (bytes, -q) 819200 
real-time priority              (-r) 0 
stack size              (kbytes, -s) 8192 
cpu time               (seconds, -t) unlimited 
max user processes              (-u) 14881 
virtual memory          (kbytes, -v) unlimited 
file locks                      (-x) unlimited

問題はこの制限に達するとどうなりますか?制限に達し、今、いくつかの措置を講じる必要があることをどのように知ることができますか?

たとえば、max-user-processes が 819200 に達すると、新しいプロセスが起動しないという意味ですか?それとも、システムはほとんどのアイドルプロセスを正常に終了し、いくつかのスペースを解放しますか?それとも別のものかもしれませんか?

記載されている数字/制限によってシステムパフォーマンスにオーバーヘッドが追加されますか?

ベストアンサー1

アプリケーションに代わってリソースを割り当てると、アプリケーションのリソース制限を超えるとリソース割り当てが失敗します。 「最大ユーザープロセス」値がNで、特定のユーザーに対してN個のプロセスが実行されている場合、fork()システムコール(または関連)への呼び出しは失敗します。 「オープンファイル」の値がMで、M個のオープンファイルがある場合open()(または関連)、システムコールへの呼び出しは失敗します。

これらの値は、システムが常にこれらの値を監視するため、システムパフォーマンスにオーバーヘッドを追加しません。

おすすめ記事