busybox "top" 출력을 해석하는 방법은 무엇입니까?

busybox "top" 출력을 해석하는 방법은 무엇입니까?

저는 소형 임베디드 ARM 시스템에서 BusyBox를 사용하고 있습니다. "최상위" 출력, 특히 나열된 Python 프로세스를 읽으려고 합니다. 프로세스에서 실제 메모리를 얼마나 사용합니까? 그리고 VSZ는 무엇을 의미하나요? 시스템에는 64MB의 RAM만 있습니다.

메모리: 41444K 사용됨, 20572K 사용 가능, 0K 조각화, 0K 버프, 18728K 캐시
CPU: 3% usr 3% sys 0% nic 92% 유휴 0% io 0% irq 0% Sirq
부하 평균: 0.00 0.04 0.05 1/112 31667
  PID PPID 사용자 통계 VSZ %VSZ %CPU 명령
  777 775 파이썬 S 146m 241% 3% /usr/bin/python -u -- dpdsrv.py

답변1

VSZ(또는 VIRT버전에 따라 top)은 프로세스 주소 공간에 매핑된 메모리 양입니다. 여기에는 프로세스의 실행 가능 라이브러리와 공유 라이브러리, 힙과 스택, 매핑되는 모든 항목이 지원하는 페이지가 포함됩니다.

표시된 출력 예에서 가상 크기는 시스템의 실제 메모리 양보다 크므로 프로세스 주소 공간에 있는 페이지 중 일부(대부분!)가 실제로 RAM에 존재하지 않습니다. 이것은 문제가 되지 않습니다. 많은 프로그램이 많은 코드를 포함하고 많은 공유 라이브러리를 매핑하지만 실제로는 해당 코드의 일부만 사용하거나 적어도 동시에 해당 코드의 일부만 사용하므로 커널이 사용하지 않을 때마다 포기하는 것, 사용하지 않는 부분은 메모리에서 가져오거나 애초에 로드되지 않은 경우에도 마찬가지입니다.

귀하의 버전에는 현재 프로세스 주소 공간의 RAM에 있는 메모리 양을 알려주는 열이 top표시되지 않는 것 같습니다 .RES

관련 정보