その値を上げても安全ですか?また、値が高すぎるとどうなりますか?
はい、その値を上げても安全です。以下は考えられるコストです [source]:
- 各使用済み inotify ウォッチは 540 バイト (32 ビット システム)、または 1 kB (ダブル - 64 ビット システム) [ソース:1、2] を使用します。
- これはカーネル メモリから取得されます 、交換できません。
- 最大値を 524288 に設定し、すべてを使用すると (ありそうもない)、32 ビット/64 ビットのカーネル メモリを約 256MB/512MB 使用することになります。
- アプリケーションは、inotify ハンドル、ファイル/ディレクトリ パスなどを追跡するために追加のメモリも使用することに注意してください。その量は設計によって異なります。
inotify ウォッチの最大数を確認するには:
cat /proc/sys/fs/inotify/max_user_watches
inotify ウォッチの最大数を設定するには
一時的に:
sudo sysctl fs.inotify.max_user_watches=
を実行 最後にお好みの値を付けてください。
永続的に (詳細情報):
- put
fs.inotify.max_user_watches=524288
あなたのsysctl設定に。システムによっては、次のいずれかの場所にある可能性があります:- Debian/RedHat:
/etc/sysctl.conf
- Arch:新しいファイルを
/etc/sysctl.d/
に入れます 、例えば/etc/sysctl.d/40-max-user-watches.conf
- Debian/RedHat:
- 再起動を避けるために、sysctl 設定を再読み込みすることをお勧めします:
sysctl -p
(Debian/RedHat) またはsysctl --system
(アーチ)
inotify ウォッチの最大数に達しているかどうかを確認します:
tail
を使用 -f
で 古いファイルの (follow) オプション。 tail -f /var/log/dmesg
:- すべて問題なければ、最後の 10 行を表示して一時停止します。 Ctrl-C で中止します。監視していない場合 、次のやや不可解なエラーで失敗します。
tail: cannot watch '/var/log/dmsg': No space left on device
inotify ウォッチの使用状況を確認するには
find /proc/*/fd -lname anon_inode:inotify |
cut -d/ -f3 |
xargs -I '{}' -- ps --no-headers -o '%p %U %c' -p '{}' |
uniq -c |
sort -nr
最初の列は inotify fds の数を示し (ただし監視の数ではありません)、2 番目の列はそのプロセスの PID を示します [ソース:1、2]。