ps
VSZ in이 응용 프로그램에 할당된 전체 주소 공간이라는 것을 알고 있으며 때로는 vsize( ps
Linux 매뉴얼 페이지에 언급됨)로 별칭이 지정되지만 VSIZE의 정의는 무엇입니까 top
? iPhone의 최고 출력은 Linux의 최고 출력과 다릅니다.
PID COMMAND %CPU TIME #TH #PRTS #MREGS RPRVT RSHRD RSIZE VSIZE
1875 emma 0.0% 0:30.83 7 139 932 17868K 5328K 29M 181M
root# ps -eo pid,rss,vsz|grep 1875
1875 29324 441324
답변1
Linux 메모리 시스템은 많은 메모리 최적화 유틸리티와 메모리 공유 루틴으로 가득 차 있어 메모리가 어떻게 공유되고 소비되는지에 대한 아이디어를 성가신 접근 방식으로 만듭니다. ps 및 기타 ps 관련 명령의 출력은 파일 시스템의 데이터에 따라 처리됩니다 /proc
. 특히 ps
RSS(상주 메모리 크기)와 VSIZE(가상 메모리 크기)가 모두 중요하지만 VSIZE는 정확한 메모리 사용량을 보여주지 않으며, VSIZE와 rss의 차이점은 실제로 프로그램 실행 중에 할당하려고 의도한 메모리 크기입니다. 초기화 하지만 아직 인용되지 않았을 수도 있습니다. 프로그램에 링크된 라이브러리가 많이 있을 수 있지만 실제 프로그램이 실행될 때 참조되지 않았기 때문에 아직 로드되지 않은 것과 같습니다. RSS는 프로그램에서 실제로 사용하는 전체 메모리를 제공하지만 할당된 메모리의 대부분이 동일한 프로세스의 다른 인스턴스나 다른 프로세스와 공유될 수 있으므로 메모리 소비에 대한 실제 그림을 제공하지 못할 수 있습니다. 아래를 내려다보면 /proc/<processid>/maps
메모리 사용량을 대략적으로 알 수 있지만 때로는 오해의 소지가 있을 수 있습니다. 명령줄에서 사용되며 pmap -x <pid>
전파를 보는 데 유용합니다.
종종 더 나은 유틸리티는 free
및 입니다 vmstat
. free
현재 전체 메모리 소비 세부 정보가 제공되며 vmstat를 사용하여 업데이트 빈도를 확인할 수 있습니다.