내가 찾은 몇 가지 일반적인 속성은 다음과 같습니다.
top(VIRT), smem(VSS), /proc/pid/statm(페이지의 첫 번째 항목), /proc/pid/status(VmSize), ps(VSZ)
top(RES), smem(RSS), /proc/pid/statm(페이지의 두 번째 항목), /proc/pid/status(VmRSS), 모든 Rss 추가: 프로세스 맵의 /proc/pid/smaps 값, 추가 모든 /proc/pid/smaps 프로세스 맵의 Private_.* + Shared_.* 값, ps(RSS)
상단(데이터),보고되지 않은 smem, /proc/pid/statm(페이지의 6번째 항목), /proc/pid/status(VmData),ps는 보고되지 않았습니다
상단 (코드),보고되지 않은 smem, /proc/pid/statm (페이지의 네 번째 항목),/proc/pid/status가 보고되지 않음,ps는 보고되지 않았습니다
탑(SHR),보고되지 않은 smem, /proc/pid/statm (페이지의 세 번째 항목),/proc/pid/status가 보고되지 않음,ps는 보고되지 않았습니다
smem(USS), /proc/pid/smaps 프로세스 맵에 모든 Private_.* 값을 추가합니다.
smem(PSS), /proc/pid/smaps 프로세스 맵에 모든 Pss: 값을 추가합니다.
smem(Swap), /proc/pid/smaps 프로세스 맵에 모든 Swap: 값을 추가합니다.
상단(SWAP) = 상단(VIRT) - 상단(RES)
질문: 위에서 언급한 것처럼 제가 위에서 놓친 다른 관계가 있습니까? 공유할 수 있나요?
답변1
ps, top 및 smem 프로그램은 모두 /proc에서 데이터를 얻습니다. 어쩌면 정확한 세부 정보를 얻기 위해 소스 코드를 보고 싶을 수도 있습니다. 이러한 세부 사항은 수년에 걸쳐 변경되었으며 계속 변경될 수 있습니다.
smem 프로그램은 Python 스크립트입니다. 다음은 smem의 필드 목록입니다.http://selenic.com/repo/smem/file/43b299004079/smem#l271
Linux는 procps 패키지에서 top과 ps를 가져옵니다. 상단의 필드 목록은 다음과 같습니다.http://procps.cvs.sourceforge.net/viewvc/procps/procps/top.c?revision=1.134&view=markup#l1223
ps의 필드 목록은 다음과 같습니다.http://procps.cvs.sourceforge.net/viewvc/procps/procps/ps/output.c?revision=1.65&view=markup#l1286