% MEM và VSZ hàng đầu có nghĩa là gì?


15

Tôi đang làm việc trên một hệ thống Linux nhúng (RAM 128 MB) mà không có bất kỳ phân vùng trao đổi nào. Dưới đây là đầu ra hàng đầu của nó:

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 (không hiểu bất kỳ tùy chọn nào ngoài -w trên busybox) hiển thị:

  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

Khi bạn nhìn vào tiến trình 886, bạn sẽ thấy rằng nó sử dụng 112% bộ nhớ khả dụng và có VSZ (kích thước bộ nhớ ảo) là 138MB. Điều đó không có ý nghĩa gì với tôi.

Trong trang đầu đàn ông có ghi:

% MEM - Sử dụng bộ nhớ (RES) Chia sẻ bộ nhớ vật lý hiện có được sử dụng.

Làm thế nào quá trình này có thể tiêu thụ hơn 100% bộ nhớ? Và nếu đó là một bộ nhớ như vậy, tại sao vẫn còn 88564K RAM miễn phí trên hệ thống?

Câu trả lời:


18

Man page bạn tham khảo đến từ procps phiên bản đầu.

Nhưng bạn đang ở trên một hệ thống nhúng, vì vậy bạn có phiên bản bận rộn hàng đầu.

Dường như topboxbox tính toán %MEMnhư VSZ/ MemTotalthay vì RSS/ MemTotal.

Phiên bản mới nhất của busybox gọi cột đó %VSZđể tránh một số nhầm lẫn. cam kết đăng nhập


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.