根据Java Performance Tuning, Profiling, and Memory Management文章
- 除非您遇到暂停问题,否则请尽量为虚拟机授予尽可能多的内存
- 将-Xms和-Xmx设置为相同的值...但请确保应用程序行为
- 确保在增加处理器数量时增加内存,因为分配可以并行化
- 别忘了调整Perm一代
根据Make Sense of Memory Management and Key Memory Measurements
- 缓存内存保存在当前会话期间已被提取到内存中但现在不再使用的数据或程序代码。如有必要,Windows内存管理器将刷新缓存内存的内容,为新传唤的数据腾出空间。
- 空闲内存代表不包含任何数据或程序代码的RAM,可立即免费使用。
- 提交计费(也称为提交大小)是程序在当前会话中触摸(提交)的虚拟内存总量,包括已从物理内存分页到磁盘支持的页面文件的内存。任务管理器的“性能”选项卡上的“内存和物理内存”计数器表示所有进程和内核的此值的总和。提交费用限制是可用的物理RAM和页面文件的总量 - 换句话说,即最大虚拟内存。
因此,您的系统可以拥有比Free memory
更多的内容,因为它可以从缓存池和虚拟池中分配其他页面,因此可以为JMeter提供5 GB的空间。
但是你需要密切关注JVM堆的使用和垃圾收集活动(这可以使用ie JVisualVM完成),好像你设置了太高的堆,JMeter将不会真正使用它,JVM将花费更多的时间来做垃圾收集,如果页面文件被广泛使用,您的JMeter引擎将无法正常运行,因为磁盘IO比RAM操作慢得多。
有关调整JMeter以获得高负载的更多信息,请参阅9 Easy Solutions for a JMeter Load Test “Out of Memory” Failure文章。
这里会发生的是系统将交换内存以运行Java程序。
它可能会起作用,但会对你的Jmeter的性能产生非常不利的影响。
因此,根据经验,您应该绝对避免任何java程序的交换