特定のユーザーのulimit使用量を確認する方法はありますか?起動時に個々のプロセス、または実行時に個々のシェルのulimitを変更できることを認識していますが、ユーザーが制限に達する程度を「監視」できることを願っています。bash
現在の使用率をstatsdに報告するスクリプトを作成する予定です。特に以下を追跡したいと思います。
- ファイルを開く(
ulimit -n
) - 最大ユーザープロセス数(
ulimit -u
) - 保留中の信号(
ulimit -i
)
私が望むのは、パーセント(0〜100)を使用することです。
ベストアンサー1
おそらく、これが最初の質問に役立ちます。
特定のユーザーのプロセスID(PID)がわかっている場合は、次の方法でプロセス固有の制限を取得できます。
cat /proc/<PID>/limits
次のコマンドを使用して、PIDごとに開かれたファイル数を取得できます。
ls -1 /proc/<PID>/fd | wc -l
次に、値をMax open files
2番目のコマンドのオープンファイル記述子の数と比較して、パーセンテージを取得します。