为什么将-Xms和-Xmx设置为相同的值?

本文讨论了在生产环境中将JVM的初始堆大小(-Xms)和最大堆大小(-Xmx)设置为相同值的原因。这样做可以避免JVM频繁请求内存导致的性能下降,减少GC频率,并确保应用程序服务器获得所需的全部内存。在开发环境中,由于资源竞争,建议使用较小的-Xms以节省资源。
摘要由CSDN通过智能技术生成

我从许多文献中读到,建议将-Xms-Xmx设置为相同的值。但是没有给出任何原因。

在生产环境中,如果监视GC数据,您会注意到这是相对较短的时间段(通常少于一小时),JVM最终会将堆大小增加到-Xmx设置。每次JVM增加堆大小时,它都必须向操作系统请求额外的内存,这会花费一些时间(因此会增加GC命中时正在处理的所有请求的响应时间)。通常,JVM永远不会放过那种记忆。因此,由于JVM最终将获取-Xmx内存,因此您最好在开始时将其设置为该内存。

另一点是,使用较小的堆大小(以-Xms开头),GC将更频繁地发生。因此,从较大的堆开始,GC发生的频率就不会那么高。

最后,在生产环境中,通常每个操作系统(或每个VM)仅运行一个应用程序服务器。因此,由于应用程序服务器不会与其他应用程序竞争内存,因此您最好预先为其分配内存。

请注意,以上内容仅供生产。它也适用于系统测试环境,因为系统测试环境应尽可能模拟生产。

对于开发,使-Xms-Xmx不同。通常,您在开发中的应用服务器不需要做很多工作,因此它通常会保留-Xms堆设置。此外,由于在开发过程中,应用服务器将与许多其他应用(邮件客户端,文字处理器,IDE,数据库,浏览器等)共享计算机,因此将-Xms设置为较小的大小可以使应用服务器与也在争夺相同资源的其他软件。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值