最大化 AIX 上的 Java 功能,第 3 部分: 更多就是更好ITeyemingxing - 千亿集团

最大化 AIX 上的 Java 功能,第 3 部分: 更多就是更好ITeyemingxing

2018-10-22 09:44:13 | 作者: 振强 | 标签: 部分,功能,运用 | 浏览: 7519

这是由五部分组成的有关 AIX 上的 Java 功能优化的系列中的第三篇文章。强烈主张您在进一步持续之前阅览本系列中的(假如您还没有这样做的话)。

本文集中于触及各种类型的内存结构(Java 堆、本机堆、仓库)的优化,并研讨用于优化体系以进行巨细调整的办法。

您应该查看榜首部分,以了解适用于大多数状况的一般技巧。咱们还供给了关于内存瓶颈检测和研讨十分有用的东西的快速参阅。下一部分将描绘各种类型的应用程序以及怎么优化它们。此评论将运用您的应用程序常识来决议哪些技巧最适合您。第三部分将描绘各种技巧。本文在结束时将评论一下本系列中的下一篇文章。


本文评论怎么使您的应用程序扩展到更多数量的线程或具有更大的堆,或许一起完成这两个意图。您或许还期望经过迫使应用程序以受约束的方法运用资源,然后使其愈加“文明”。在体系由多个应用程序同享的环境中,这是特别重要的。

当 AIX Java 应用程序测验扩展时,存在若干或许会产生影响的资源瓶颈。Java 堆仅仅其中之一,而且在大多数状况下,您只需切换到更大的堆巨细即可向上扩展。可是还存在别的三个内存方面,它们关于断定 Java 应用程序的内存占用空间和可伸缩性具有重要的影响。

除 Java 堆以外的榜首个重要内存方面是本机堆(native heap),文章 描绘了怎么监督本机堆和调整其巨细。Java 堆由废物收集器(Garbage Collector)办理,可是废物收集器不会对本机堆履行任何操作。因而,假如您看到本机堆稳定地添加,或许是由于不匹配的 JNI 分配(举例而言)所导致的。

第二个方面是用 -Xss 指定的本机仓库(native stack)。这是针对每个线程分配的,而且不根据详细的运用状况,因而假如方案运转一百个线程,则要在指定 -Xss2m 前慎重考虑;它将耗费 200 MB 的本机内存,每个线程耗费 2 MB。在运转更多数量的线程时,这特别成为一个约束要素,主张的解决办法是运用较小的值而不是运用缺省值。与 JVM 配套的 SDK 攻略中供给了有关此主题的更多信息。

最终,第三个方面是经过 -Xoss 操控的 Java 仓库(Java stack)。运用 -Xoss 指定的值是上限,因而指定一个较大的值的作用不如运用 -Xss 那么明显。请注意,由于 JIT 编译,您需求调整 -Xss 以满意大多数需求,而且 -Xoss一般能够保存不变。例如,需求调整 -Xoss 的一个重要场合是在用完了 JNI 引证的时分。

咱们不会集中于上述任何内存方面,由于其调整一般是在调试中呈现的,而不是在功能优化中呈现的。可是假如您陷入了资源缺乏的状况,现在能够查看这额定的三个方面。当您将体系运用到极限时,特别有必要了解这些方面。

谈到极限,您应该保证 ulimit 设置不会在巨细调整期间成为瓶颈。在抱负的状况下,咱们主张将某些 ulimit 值设置为无限大,可是需求将此行为与某个进程耗费完一切本地资源的危险进行评价。关于功能优化作业,您能够首先将 ulimit 值设置为无限大,一旦到达所需的方针,您应该将这些设置设定为有限值。

您能够运用 ulimit -a 指令查看当时的 ulimit 设置,而且应该作为将发动 Java 的用户帐户至少运转以下三个指令:

版权声明
本文来源于网络,版权归原作者所有,其内容与观点不代表千亿集团立场。转载文章仅为传播更有价值的信息,如采编人员采编有误或者版权原因,请与我们联系,我们核实后立即修改或删除。

猜您喜欢的文章

阅读排行

  • 1

    squid更新缓存csdn

    服务器,地址
  • 2

    几个有用的开源镜像环球

    体系,探究,总结
  • 3
  • 4

    用户指令alibaba

    用户,指令,修正
  • 5

    两台linux文件复制环球

    文件,运用,地址
  • 6
  • 7
  • 8
  • 9
  • 10