내가 맞다면 의 출력은 을 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