最近看到monit使用的CPU有时候会突然的增加,通过perf查看,可以看到是下面这个函数调用占用的比较高。
Overhead Comma Shared Object Symbol
- 29.72% monit [kernel.kallsyms] [k] __d_lookup
- __d_lookup
- 29.65% d_lookup
proc_fill_cache `
proc_readfd_common
iterate_dir
ksys_getdents64
__ia32_sys_getdents64
do_fast_syscall_32
entry_SYSENTER_compat
代码进入的时间是:
https://bitbucket.org/tildeslash/monit/commits/cb30233aadf1f6e7b7a66df687c08eb8d002be47
这个功能缺少一个总开关,如果不需要,其实没有必要运行这个功能,徒增CPU的使用。
https://mmonit.com/monit/changes/
New: Linux: Support for monitoring a process's filedescriptor usage. Thank