fs.inotify.max_user_watches
私はこれを設定する最良の方法を理解していませんsysctl
。実際、私は特定のプロセスが見ることができるファイルの数を設定する必要があるという事実を除いて、ここで何が起こっているのかよく理解していません。
以下を実行すると、最大ユーザー数を表示できると思います。
cat /proc/sys/fs/inotify/max_user_watches
私が理解したのは、一部の人はエディタで開き、次の項目を追加して変更を提案すること/proc/sys/fs/inotify/max_user_watches
です/etc/sysctl.conf
。
fs.inotify.max_user_watches=524288
sudo sysctl -p
その後、ファイルへの変更を処理するために実行されます。
他の人は、次のコマンドを実行することを提案しました。
sudo sysctl -w fs.inotify.max_user_instances=1024
sudo sysctl -w fs.inotify.max_user_watches=12288
「write」という意味なのは分かるが-w
、何が書かれてどこにありますか?ただ順序が変わったのでしょうか/proc/.../max_user_watches
?
上記の2つの方法のどれが最善ですか? 524288と12288が異なる数字であることはわかりますが、-p
走るものと走る効果の違いが何であるかはわかりません-w
。
答え1
sysctl -w
以下の適切なキーにカーネルパラメータ値を書き込みます/proc/sys
。
sudo sysctl -w fs.inotify.max_user_watches=12288
書いてください。12288
(/proc/sys/fs/inotify/max_user_watches
これは同等ではありません。ただそうです。興味のある読者はstrace
自分で確認できます。)
sysctl -p
ファイル/etc/sysctl.conf
(デフォルト)またはで設定を読み込みます-p
。
パラメータのソースと書き込まれた値が異なることに加えて、2つの方法の違いは、パラメータは次の再起動-w
まで変更され、保存された値は/etc/sysctl.conf
システムが起動するたびに再適用されることです。私の一般的なアプローチは、次のように-w
値をテストすることです。/etc/sysctl.conf
/etc/sysctl.d
/etc/sysctl.d/local.conf
よりsysctl
そしてsysctl.conf
詳細については、マニュアルページ(man sysctl
およびman sysctl.conf
システム)を参照してください。
答え2
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の数を確認してください。