编译作业后内存使用率仍然很高

编译作业后内存使用率仍然很高

我正在运行一个具有 1Gb RAM 的小型 Linux 虚拟机。
这是一个相当典型的 LAMP 设置,正常使用时大约占用 16% 的内存。

昨天我用盒子编译东西,内存上升到 60% 并且没有下降。
内存排序“top”除了 Mysql 和 Apache 之外不显示任何其他内容:

top - 09:41:33 up 4 days,  6:41,  1 user,  load average: 0.00, 0.00, 0.00
Tasks:  41 total,   1 running,  40 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem:   1048576 total,   640072 used,   408504 free,        0 buffers
KiB Swap:   131072 total,        0 used,   131072 free,   533872 cached

  PID USER      PR  NI  VIRT  RES  SHR S  %CPU %MEM    TIME+  COMMAND
 2042 mysql     20   0  385m  41m 7324 S   0.0  4.1   9:25.35 mysqld
 1680 bind      20   0  117m  21m 2468 S   0.0  2.1   0:03.07 named
 2155 root      20   0  191m  10m 4988 S   0.0  1.1   1:07.43 apache2
12507 www-data  20   0  192m 9740 3032 S   0.0  0.9   0:00.50 apache2
12505 www-data  20   0  192m 9728 3020 S   0.0  0.9   0:00.19 apache2
12481 www-data  20   0  192m 9652 2940 S   0.0  0.9   0:01.47 apache2
12508 www-data  20   0  192m 9648 2940 S   0.0  0.9   0:00.73 apache2
12499 www-data  20   0  192m 9640 2932 S   0.0  0.9   0:00.24 apache2
12509 www-data  20   0  192m 9636 2928 S   0.0  0.9   0:00.26 apache2
12564 www-data  20   0  192m 9624 2924 S   0.0  0.9   0:01.07 apache2
12563 www-data  20   0  192m 9600 2928 S   0.0  0.9   0:00.33 apache2
14624 www-data  20   0  191m 7492 1296 S   0.0  0.7   0:00.30 apache2
14629 www-data  20   0  191m 7352 1248 S   0.0  0.7   0:00.24 apache2

失踪的400兆到哪里去了?
这是我应该担心的事情还是只是等待我安排的每周重新启动?

为了清楚起见,“东西”是 Google Protocol Buffer,它不使用任何守护进程。

答案1

“丢失”的内存用作缓存(在top以交换开头的行末尾的输出中提到)。您可以使用free不同的形式来查看它:

$ free
             total       used       free     shared    buffers     cached
Mem:       1048576     640072     408504          0          0     533872
-/+ buffers/cache:    106200      942376
Swap:       131072          0     131072

相关内容