저는 스왑 파티션 없이 임베디드 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
답변2
rstpd에는 많은 동적 라이브러리가 연결되어 있을 수 있지만 아직 메모리에 로드되지 않았습니다.
바라보다상단의 VSIZE 값이 ps의 VSZ(가상 세트 크기) 값과 다른 이유는 무엇입니까?
ps aux
이 과정은 무엇을 보여줍니까?