0

当我在 tomcat 上增加 -Xms 值时,内存使用量(来自free -m命令)不会相应改变。下面的示例显示,将其值增加200MB只会影响内存使用~85MB

...usr/lib/jvm/jre/bin/java - Xms128m -Xmx128m -XX:PermSize=128m -XX:MaxPermSize=128m...

$ free -m
             total       used       free     shared    buffers     cached
Mem:           594        341        253          0          7        104
-/+ buffers/cache:        229        365
Swap:            0          0          0

.../usr/lib/jvm/jre/bin/java -Xms328m -Xmx328m -XX:PermSize=128m -XX:MaxPermSize=128m...

$ free -m
             total       used       free     shared    buffers     cached
Mem:           594        426        167          0          7        104
-/+ buffers/cache:        314        279
Swap:            0          0 

可能是什么原因?

4

1 回答 1

1

这是因为我想象 Linux 内核如何分配 RAM。我的理解可能有缺陷,虽然您可以请求一大块 RAM,但在虚拟内存子系统对其进行处理(即它实际上已被写入)之前,它实际上可能不会被视为已使用。

因此,您看到的不同之处在于垃圾收集运行的阈值发生了变化,因此利用率略有不同。如果您开始在 RAM 中存储更大的数据集,您会注意到更大的差异。

于 2013-03-23T21:42:15.673 回答