我正在查看上面的这些数字:
Mem: 3891192k total, 3659276k used, 231916k free, 25640k buffers
Swap: 4449924k total, 0k used, 4449924k free, 1237416k cached
并努力查看 3659276k 都去了哪里。按内存排序的前几个进程如下:
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
30228 myuser 25 0 2914m 2.2g 9908 S 13.3 59.6 4:59.05 java
26428 root 25 0 97580 17m 8024 S 0.7 0.5 0:35.89 slapd
2897 root 15 0 6344 3512 1920 S 0.0 0.1 0:01.40 snmpd
2771 haldaemo 18 0 5176 3308 2108 S 0.0 0.1 0:00.11 hald
31370 myuser 15 0 3576 2004 1224 S 0.0 0.1 0:00.01 bash
31367 root 16 0 6404 1932 1572 S 0.0 0.0 0:00.02 sshd
2940 root 15 0 3176 1904 1272 S 0.0 0.0 0:00.15 bash
2735 root 19 0 5800 1576 852 S 0.0 0.0 0:00.00 mount.smbfs
2727 root 17 0 5796 1568 852 S 0.0 0.0 0:00.00 mount.smbfs
2738 root 20 0 5796 1568 852 S 0.0 0.0 0:00.00 mount.smbfs
31369 myuser 15 0 6404 1212 852 R 0.0 0.0 0:00.00 sshd
31380 myuser 15 0 2308 1120 876 R 0.0 0.0 0:00.01 top
2750 root 18 0 3824 1116 820 S 0.0 0.0 0:00.06 sshd
2883 root 15 0 2488 1008 820 S 0.0 0.0 0:13.61 vmware-guestd
2772 root 25 0 2868 992 860 S 0.0 0.0 0:00.00 hald-runner
2783 root 15 0 2920 968 852 S 0.0 0.0 0:00.12 hald-addon-stor
2781 myuser 25 0 2112 900 784 S 0.0 0.0 0:00.00 hald-addon-acpi
理论上,表格中的哪些数字应该加起来等于摘要中的数字?
答案1
它将由系统缓存使用。如果您运行该free
命令,您将看到缓冲区/缓存已使用的内容。这没什么好担心的(这是正常的)。这只是内核试图有效使用您的可用内存。
答案2
java:59.6%内存,资源:2.2g
这意味着java
占用了约 60% 的内存(实际上是 2.2g):某些 Java 应用程序中存在内存泄漏。
缓冲区仅占用大约 25MiB: