プロセスを使い果たさないように launchd でリソース制限を管理する

非常に負荷が高いサーバでは、使用可能なプロセスを使い果たし、サービスを継続して接続を許可するための追加設定が必要になる場合があります。システムがリソース制限に達すると、/var/log/system.log ファイルに次のようなログメッセージが記録される場合があります。

「(com.apple.launchctl.Background): fork() failed, will try again in one second: Resource temporarily unavailable」

この記事はアーカイブ済みで、これ以上更新されることはありません。

 

この問題を解決するには、許可されるプロセスの最大数の上限を上げます。「ターミナル」で次のコマンドを実行して、必要な launchd 設定ファイルを (/etc/launchd.conf に) 作成します。

 

echo "limit maxproc 1000 2000" | sudo tee -a /etc/launchd.conf

 

launchd.conf ファイルの内容についての詳細は、launchd.conf の man page を参照してください。 ファイルが作成されたら、サーバを再起動してファイルを有効にします。 最初は値を 1000 または 2000 に設定するのが適切ですが、サーバの要件に合わせて値を変更する必要があるかもしれません。 目安としては、一度に 50% ずつ増減させます。 プロセス数は、カーネルによってカーネル変数 kern.maxproc および kern.maxprocperuid の値に制限される点に注意してください。 カーネル変数の表示と調整についての詳細は、man sysctl および man sysctl.conf を参照してください。

 

公開日: