当我在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
可能是什么原因?
答案 0 :(得分:1)
这是因为我认为Linux内核会分配RAM。这可能是我可能有缺陷的理解,虽然你可以请求一大块RAM,但在虚拟内存子系统对它做任何事情之前(实际上它已被写入),它可能实际上并没有被考虑使用。
因此,您看到的差异是垃圾收集运行的阈值已经改变,因此利用率略有不同。如果你开始在RAM中存储更大的数据集,你会发现更大的差异。