私が正しい場合の出力はを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