首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我怎么知道我的手表是不是用完了?

我怎么知道我的手表是不是用完了?
EN

Ask Ubuntu用户
提问于 2012-06-21 17:28:08
回答 1查看 54.7K关注 0票数 58

我使用一个使用inotify手表的应用程序。我有已设定

代码语言:javascript
运行
复制
fs.inotify.max_user_watches=32768

/etc/sysctl.conf中,但是昨晚应用程序停止了索引,除非我手动运行它,这使我怀疑我已经没有表了。

由于我不知道增加这个数字(它是否消耗更多的RAM?),所以我不知道是否应该增加这个数字,所以我想知道是否有一种方法可以判断它是否正在使用所有这些手表,以及增加它的权衡可能是什么。

EN

回答 1

Ask Ubuntu用户

发布于 2012-06-24 10:13:58

我不知道我是否应该增加这个数字

检查是否达到max_user_watches值的简单方法是,与用户一起从包inotify-tools中使用inotifywatch,并检查是否仍然可以从文件中收集信息。

例如,inotifywatch -v /home/bruno/.profile为我返回:

代码语言:javascript
运行
复制
Establishing watches...
Total of 1 watches.
Finished establishing watches, now collecting statistics.

因此,inotify在创建新手表时没有问题,在这里也没有问题。

如果您已达到inotify手表的最大极限,它将返回以下内容

代码语言:javascript
运行
复制
Failed to watch /home/bruno/.profile; upper limit on inotify watches reached!

如果你看到这样的东西,那么你已经达到了极限,需要增加允许的手表限制。

会消耗更多的内存吗?

是的,确实如此。但是根据这个旧文章,与运行中的桌面的其他方面相比,它的消耗量是最小的。

-内存使用-- inotify数据结构重量轻: inotify手表是40字节inotify设备是68字节inotify事件是272字节所以假设一个设备有8192个手表,这些结构只消耗320 of的内存。在允许一次最多存在8个设备的情况下,每个设备仍然只有2.5MB,每个设备还可以一次排队256个事件,每个设备总计68 MB。如果打开所有设备并具有完整的事件队列,则只有.5 MB。因此,大约3MB的内存是使用在罕见的情况下,所有打开和充分。每个inotify手表都会将一个目录/文件的inode引脚在内存中,每个文件系统inotify的大小不同,但假设它是512 byes。因此,假设全局监视的最大数量是活动的,这将在inode缓存中锁定32 MB的inode。同样,现代系统也不是一个问题。

当然,我假设自从这篇文章被写以来,事情并没有发生很大的变化,但是看看我不担心的数字,增加这个限制不会增加内存的消耗。

有关inotify

的文章

票数 14
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/154255

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档