当我增加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
可能是什么原因?
最佳答案
这是因为我想象Linux内核如何分配RAM。我的理解可能是有缺陷的,尽管您可以请求大量的RAM,但直到虚拟内存子系统对其进行某些操作(即实际上已将其写入)后,它才可能真正被占用。
因此,您看到的区别是垃圾收集运行的阈值已更改,因此利用率存在细微差异。如果您开始在RAM中存储更大的数据集,则会发现更大的差异。