Java Linux服务器有可用内存,但不提供给Tomcat实例

Java Linux服务器有可用内存,但不提供给Tomcat实例,java,linux,tomcat,memory,Java,Linux,Tomcat,Memory,以下是my Linux box上免费命令的输出: free -m total used free shared buffers cached Mem: 15043 7734 7309 0 66 2394 -/+ buffers/cache: 5273 9770 Swap: 0

以下是my Linux box上免费命令的输出:

    free -m
             total       used       free     shared    buffers     cached
Mem:         15043       7734       7309          0         66       2394
-/+ buffers/cache:       5273       9770
Swap:            0          0          0
正如您所看到的,大约有7G的可用内存。另一个7.8Gig主要由Tomcat使用。但是,我使用以下选项启动了tomcat:

-Xms13G -Xmx13G
因此,我预计Tomcat将获得13G的内存,但正如您所看到的,总使用内存只有7G左右。我不知道如何强制解决这个问题,以便给Tomcat实例13或至少12 gig的内存


如果有人能向我解释为什么会发生这种情况或提供解决方案,我将不胜感激

你的意思是tomcat得到了13g,但它仍然没有使用它?试着连接JVisualVM并查看最大堆,看看你的java参数是否真的传播到了tomcat java进程。@Jigar Joshi:不,我的意思是tomcat得到了7G,有时甚至达到了9G。问题是,使用-Xms13G-Xmx13G标志,JVM应该从启动时起就被分配13Gig;制作这些旗帜的全部目的都是为了让它们具有相同的价值。@Amir Afghani:谢谢你推荐VisualVM。我连接了它,VisualVM说JVM确实有13Gig的堆。Linux报告7gig是免费的,这似乎是错误的。似乎Linux认为堆中未被使用的部分是免费的,尽管它已经将其提供给了jvm。