Wenn ich richtig liege, free
kommt die Ausgabe von vom Lesen /proc/meminfo
.
In der Ausgabe von top
,
ist die Zusammenfassung des Speicherteils nicht spezifisch für einen Prozess, der auch von stammt
/proc/meminfo
?Aus welchen Systemdateien stammen die Speicherinformationen für die einzelnen Prozesse?
Danke.
Antwort1
Sie können damit strace
herausfinden, welche Dateien ein Programm verwendet. Beispiel:
strace -f -o top.log -e trace=file top
Drücken Sie dann einfach q
auf „Beenden“ . Es wird top
eine Datei erstellt, die zeigt, auf welche Dateien während der Ausführung zugegriffen wurde.top.log
top
Im Wesentlichen scheint es sich dabei /proc/<pid>/{stat,statm}
um die PIDs aller laufenden Prozesse und die folgenden Dateien ( /proc/
und alle entfernten Bibliotheken) zu handeln:
Host ~ # cat top.log | sed 's/.*"\([^"]*\)".*/\1/' | grep -vE '(/proc/|/lib/)' | sortieren | uniq 9375 +++ beendet mit 0 +++ /dev/null /etc/ld.so.cache /etc/ld.so.nohwcap /etc/ld.so.preload /etc/Ortszeit /etc/nsswitch.conf /etc/passwd /etc/terminfo /etc/terminfo/s/Bildschirm /etc/toprc /lib /proc /sys/geräte/system/cpu/online Spitze /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/run/utmp /var/run/utmpx