top 是否读取一些系统文件?

top 是否读取一些系统文件?

如果我是正确的, 的输出free来自 阅读/proc/meminfo

在 的输出中top

  • 内存部分的摘要不是特定于某个进程也来自吗/proc/meminfo

  • 每个进程的内存信息来自哪些系统文件?

谢谢。

答案1

您可以使用它strace来找出程序正在使用哪些文件。例如:

strace -f -o top.log -e trace=file top

然后只需按q退出即可toptop.log已创建一个文件,显示top运行时访问了哪些文件。

本质上,它似乎是/proc/<pid>/{stat,statm}针对所有正在运行的进程的 PID,以及以下文件(/proc/以及所有已删除的库):

主机 ~ # cat top.log | sed 's/.*"\([^"]*\)".*/\1/' | grep -vE '(/proc/|/lib/)' | 排序 | uniq
9375 +++ 以 0 +++ 退出
/dev/空
/etc/ld.so.cache
/etc/ld.so.nohwcap
/etc/ld.so.preload
/etc/当地时间
/etc/nsswitch.conf
/etc/密码
/etc/terminfo
/etc/terminfo/s/screen
/etc/toprc
/lib
/进程
/sys/devices/系统/cpu/在线
顶部
/usr/lib
/usr/share/locale/de_DE/LC_MESSAGES/procps-ng.mo
/usr/share/locale/de_DE.utf8/LC_MESSAGES/procps-ng.mo
/usr/share/locale/de_DE.UTF-8/LC_MESSAGES/procps-ng.mo
/usr/share/locale/de/LC_MESSAGES/procps-ng.mo
/usr/share/locale/de.utf8/LC_MESSAGES/procps-ng.mo
/usr/share/locale/de.UTF-8/LC_MESSAGES/procps-ng.mo
/usr/share/locale/locale.alias
/usr/share/terminfo
/var/运行/utmp
/var/运行/utmpx

相关内容