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