상단의 %MEM과 VSZ는 무엇을 의미하나요?

상단의 %MEM과 VSZ는 무엇을 의미하나요?

저는 스왑 파티션 없이 임베디드 Linux 시스템(128MB RAM)을 개발 중입니다. 최고 출력은 다음과 같습니다.

Mem: 37824K used, 88564K free, 0K shrd, 0K buff, 23468K cached
CPU:   0% usr   0% sys   0% nic  60% idle   0% io  38% irq   0% sirq
Load average: 0.00 0.09 0.26 1/50 1081
  PID  PPID USER     STAT   VSZ %MEM CPU %CPU COMMAND
 1010     1 root     S     2464   2%   0   8% -/sbin/getty -L ttyS0 115200 vt10
 1081  1079 root     R     2572   2%   0   1% top
    5     2 root     RW<      0   0%   0   1% [events/0]
 1074   994 root     S     7176   6%   0   0% sshd: root@ttyp0
 1019     1 root     S    13760  11%   0   0% /SecuriWAN/mi
  886     1 root     S     138m 112%   0   0% /usr/bin/rstpd 51234  <== 112% MEM?!?
 1011   994 root     S     7176   6%   0   0% sshd: root@ttyp2
  994     1 root     S     4616   4%   0   0% /usr/sbin/sshd
 1067  1030 root     S     4572   4%   0   0% ssh passive
  932     1 root     S     4056   3%   0   0% /sbin/ntpd -g -c /etc/ntp.conf
 1021     1 root     S     4032   3%   0   0% /SecuriWAN/HwClockSetter
  944     1 root     S     2680   2%   0   0% dbus-daemon --config-file=/etc/db
 1030  1011 root     S     2572   2%   0   0% -sh
 1079  1074 root     S     2572   2%   0   0% -sh
    1     0 root     S     2460   2%   0   0% init
  850     1 root     S     2460   2%   0   0% syslogd -m 0 -s 2000 -b 2 -O /var
  860     1 root     S     2460   2%   0   0% klogd -c 6
  963     1 root     S     2184   2%   0   0% /usr/bin/vsftpd /etc/vsftpd.conf
    3     2 root     SW<      0   0%   0   0% [ksoftirqd/0]
  823     2 root     SWN      0   0%   0   0% [jffs2_gcd_mtd6]

ps (busybox의 -w를 제외한 모든 옵션을 이해하지 못함)는 다음을 보여줍니다.

  PID USER       VSZ STAT COMMAND
    1 root      2460 S    init
    2 root         0 SW<  [kthreadd]
    3 root         0 SW<  [ksoftirqd/0]
    4 root         0 SW<  [watchdog/0]
    5 root         0 SW<  [events/0]
    6 root         0 SW<  [khelper]
   37 root         0 SW<  [kblockd/0]
   90 root         0 SW   [pdflush]
   91 root         0 SW   [pdflush]
   92 root         0 SW<  [kswapd0]
  137 root         0 SW<  [aio/0]
  146 root         0 SW<  [nfsiod]
  761 root         0 SW<  [mtdblockd]
  819 root         0 SW<  [rpciod/0]
  823 root         0 SWN  [jffs2_gcd_mtd6]
  850 root      2460 S    syslogd -m 0 -s 2000 -b 2 -O /var/log/syslog
  860 root      2460 S    klogd -c 6
  886 root      138m S    /usr/bin/rstpd 51234
  945 root      2680 S    dbus-daemon --config-file=/etc/dbus-system.conf --for
  964 root      2184 S    /usr/bin/vsftpd /etc/vsftpd.conf
  984 root      4616 S    /usr/sbin/sshd
  987 root       952 S    /sbin/udhcpd /ftp/dhcpd.conf
 1002 root      4056 S    /sbin/ntpd -g -c /ftp/ntp.conf
 1022 root      2464 S    -/sbin/getty -L ttyS0 115200 vt102
 1023 root      7176 S    sshd: root@ttyp0
 1028 root      2572 S    -sh
 1030 root      2572 R    ps

프로세스 886을 보면 사용 가능한 메모리의 112%를 사용하고 있으며 VSZ(가상 메모리 크기)가 138MB임을 알 수 있습니다. 이것은 나에게 아무런 의미가 없습니다.

존재하다상위 매뉴얼 페이지그것은 말한다:

%MEM — 메모리 사용량(RES) 현재 작업에서 사용하는 사용 가능한 물리적 메모리의 공유입니다.

이 프로세스가 어떻게 메모리를 100% 이상 소비할 수 있습니까? 너무 메모리 집약적이라면 시스템에서 여전히 88564K RAM을 사용할 수 있는 이유는 무엇입니까?

답변1

당신이 참조하는 매뉴얼 페이지는프로세스상위 버전.

하지만 당신은 임베디드 시스템에 있기 때문에바쁜 상자상위 버전.

busybox top은 / 대신 / %MEM로 평가되는 것 같습니다 .VSZMemTotalRSSMemTotal

최신 버전의 busybox는 %VSZ혼란을 피하기 위해 이 열을 호출합니다. 커밋 로그

답변2

rstpd에는 많은 동적 라이브러리가 연결되어 있을 수 있지만 아직 메모리에 로드되지 않았습니다.

바라보다상단의 VSIZE 값이 ps의 VSZ(가상 세트 크기) 값과 다른 이유는 무엇입니까?

ps aux이 과정은 무엇을 보여줍니까?

관련 정보