web-dev-qa-db-ja.com

エラーの処理方法:システムで開いているファイルが多すぎますか?

私はcronと出力を実行していて、自分のIDに来て、出力として以下を取得しています。

/ bin/sh:/ usr/bin/php:システムで開いているファイルが多すぎます

Cronは5分ごとに実行されます。

チェックしました/var/logs/cronおよびcronは5分ごとに実行されます。

サーバー上でサイトは正常に機能しています。

3
Alok

これは、PHPまたは別のアプリケーションのいずれかでシステムのファイルハンドルが不足していることを意味します。必ず 閉じる 開いているファイルをファイルハンドルから解放してください。

実行中のすべてのプログラムのハンドルの数に、(rootとして)使用します。

for p in $(ps -A -o pid); do
    nh=$(ls /proc/$p/fd  2>/dev/null | wc -l) &&
    exe=$(readlink -f /proc/$p/exe  2>/dev/null) &&
    echo "$p ($exe): $nh"
done

より詳細な出力を得るには、lsofを使用します。

/etc/security/limits.conf (これは /proc/sys/fs/file-max に変更されます)を変更して、可能なシステムファイルハンドルの数を増やし、現在の数を減らすこともできます。 ulimit -nとのターミナルセッション。

7
phihag