sheeta16
作者sheeta16·2011-03-01 11:45
开发工程师·NN

JVM调优设置

字数 1602阅读 3700评论 0赞 1

JVM 最大堆大小限制

在为应用服务器设置堆大小时,要记住:确保系统有足够的物理空间,以便将所有进程装入物理内存,并满足操作系统需要。如果分配的内存大于系统的物理内存,就会发生分页,从而导致糟糕的性能。

我将堆大小的最小值和最大值设置为相同的值,对于在 IBM JDK 上运行的生产系统来说,这可能不是最佳选择。在我的评测中,系统承受负载的时间很短(大约 3 小时),并且运行的 portlet 的内存需求不大。如果使用内存需求较大的 portlet,或者要持续运行,那么通过将初始堆大小设置为 320 MB 可能会减少堆碎片。

对堆大小进行调优之后,要监视系统,以确保没有发生分页。如前所述,换页会导致糟糕的性能。

如何设置参数:

在 WebSphere Administrative Console 中,选择 Servers -> Application Servers -> WebSphere Portal -> Server Infrastructure: Java and Process Management -> Process Definition -> Java Virtual Machine
可以在下面两个地方更改堆大小:
- Initial Heap Size
- Maximum Heap Size

JVM 堆大内存页

该设置可以与 IBM JVM 一起使用,以使用大内存页分配堆空间。为支持大内存页,AIX 操作系统必须进行配置。使用大内存页可以减少跟踪堆所需的 CPU 开销。通过这样的调优,我的评测吞吐率提高了 10%。

如何设置参数:

  1. 在 WebSphere Administrative Console 中,选择 Servers -> Application Servers -> WebSphere Portal -> Server Infrastructure: Java and Process Management -> Process Definition -> Java Virtual Machine -> Generic JVM Argument
    添加: -Xlp
  2. 在 WebSphere Administrative Console 中,选择 Servers -> Application Servers -> WebSphere Portal -> Server Infrastructure: Java and Process Management -> Process Definition -> Custom Properties -> New -> EXTSHM=OFF
    (注意:当 EXTSHM 开启时,会阻止大内存页的使用。)
  3. 停止 Portal 服务器
  4. 配置 AIX,以支持大内存页。我使用以下步骤分配 1856 MB 的 RAM 作为大内存页(16MB)。之所以选择这个大小,是因为这些系统中有 4GB 的物理内存。对于采用不同物理内存大小的系统,这些值应有所调整。
    vmo -r -o lgpg_regions=116 -o lgpg_size=16777216
    bosboot -a
    reboot -q
    vmo -p -o v_pinshm=1
    chuser capabilities=CAP_BYPASS_RAC_VMM,CAP_PROPAGATE $USER
  5. 重新启动 Portal Server。要确认是否正在使用大内存页,运行 AIX 命令 vmstat -l 1 5 并查看 “alp” 列,它是当前使用的活动大内存页。如果正在使用大内存页,那么它应该是一个非 0 值。

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

1

添加新评论0 条评论

Ctrl+Enter 发表

作者其他文章

相关文章

相关问题

相关资料

X社区推广