我不明白设置的最佳方法fs.inotify.max_user_watches有sysctl。事实上,除了我需要设置特定进程可以查看的文件数量这一事实之外,我对这里发生的事情并不了解。
我相信我可以通过运行以下命令查看最大用户数:
cat /proc/sys/fs/inotify/max_user_watches
Run Code Online (Sandbox Code Playgroud)
我的理解是,有些人建议/proc/sys/fs/inotify/max_user_watches通过/etc/sysctl.conf在编辑器中打开并将其添加到其中来进行更改:
fs.inotify.max_user_watches=524288
Run Code Online (Sandbox Code Playgroud)
然后运行sudo sysctl -p- 大概 - 处理对文件所做的更改。
其他人建议运行这样的命令:
sudo sysctl -w fs.inotify.max_user_instances=1024
sudo sysctl -w fs.inotify.max_user_watches=12288
Run Code Online (Sandbox Code Playgroud)
我知道这-w代表 write,但是正在写什么,写在哪里?只是这个命令改变了/proc/.../max_user_watches吗?
上面概述的两种方法中哪一种最好?我知道524288和12288是不同的数字,但是我不明白运行-p和-w.
Ste*_*itt 43
sysctl -w将内核参数值写入 下的相应键/proc/sys:
sudo sysctl -w fs.inotify.max_user_watches=12288
Run Code Online (Sandbox Code Playgroud)
写12288来/proc/sys/fs/inotify/max_user_watches。(这不是等价的,正是这样;感兴趣的读者可以strace自己看看。)
sysctl -p
Run Code Online (Sandbox Code Playgroud)
从文件中加载设置/etc/sysctl.conf(默认)或在-p.
除了它们写入的参数和值的不同来源之外,这两种方法之间的区别在于,-w仅在下次重新启动之前更改参数,而/etc/sysctl.conf每次系统启动时都会再次应用存储在其中的值。我通常的方法是使用-w来测试值,然后一旦我确定新设置没问题,就将它们写入/etc/sysctl.conf或下的文件/etc/sysctl.d(通常是/etc/sysctl.d/local.conf)。
见sysctl和sysctl.conf手册页(man sysctl和man sysctl.conf对细节您的系统上)。
小智 7
find /proc/*/fd -lname anon_inode:inotify |
cut -d/ -f3 |
xargs -I '{}' -- ps --no-headers -o '%p %U %c' -p '{}' |
uniq -c |
sort -nr
Run Code Online (Sandbox Code Playgroud)
查看使用的 inotify 计数。
| 归档时间: |
|
| 查看次数: |
50311 次 |
| 最近记录: |