トップはいくつかのシステムファイルを読みますか?

トップはいくつかのシステムファイルを読みますか?

私が正しい場合の出力はをfree読むことから来ます/proc/meminfo

topの出力から

  • 特定のプロセスに特有のメモリセクションの要約もありませんか/proc/meminfo

  • 各プロセスのメモリ情報はどのシステムファイルから得られますか?

ありがとうございます。

答え1

straceこれを使用して、プログラムがどのファイルを使用しているかを判断できます。たとえば、

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

それからちょうどq終了を押してくださいtop。実行時にどのファイルにアクセスしたかをtop.log示すファイルが作成されました。top

/proc/<pid>/{stat,statm}デフォルトでは、これは実行中のすべてのプロセスと次のファイル(/proc/および削除されたライブラリ)のPIDをターゲットにしているようです。

ホスト〜#cat top.log | sed 's/.*"\([^"]*\)".*/\1/' | grep -vE '(/proc/|/lib/)' | sort| ユニーク
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/画面
/etc/toprc
/lib
/プロセス
/sys/devices/system/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/run/utmpx

関連情報