Java 虚拟机(Java virtual machine,简称 JVM)是一种虚拟“执行引擎”实例,可在微处理器上执行 Java 类文件中的字节码。调整 JVM 的方式会影响 Weblogic Server 和应用程序的性能。
下列部分讨论的是 WebLogic Server 的 JVM 调整选项:
JVM 调整注意事项
哪种 JVM 适合您的系统?
垃圾收集
对 IA32 平台启用旋转功能
JVM 调整注意事项
表 5-1 列出了针对 WebLogic Server 的 JVM 调整的一般注意事项:
哪种 JVM 适合您的系统?
虽然本部分着重介绍 Sun Microsystems 用于 Windows、UNIX 和 Linux 平台的 J2SE5.0 JVM,但请注意 BEA JRockit JVM 是明确为服务器端应用程序开发的,并针对 Intel 体系结构进行了优化,可以确保 Java 应用程序的可靠性、可伸缩性、可管理性和灵活性。有关在 Windows 和 Linux 平台上使用 JRockit 的优势的详细信息,请参阅 Introductionto JRockit JDK。
有关 JVM 的常规详细信息,请参阅 JVM 规范简介。有关 JVM 调整相关内容的链接,请参阅相关内容:性能工具和信息更换到另一个 JVM
创建域时,如果选择自定义配置,则配置向导会显示 WebLogic Server 安装的 JDK 列表。在此列表中,您可以选择希望运行域的 JVM,然后 Configuration Wizard 将根据您的选择配置 BEA 启动脚本。如果在创建域之后,想要使用另一 JVM,请参阅更改运行服务器的JVM。
垃圾收集
垃圾收集是 VM 释放 Java 堆中未使用的 Java 对象的过程。下列部分提供有关调整 VM垃圾收集的信息:
VM 堆大小和垃圾收集
选择垃圾收集方案
使用详细垃圾收集确定堆大小
指定堆大小值
自动对内存不足情况进行日志记录
手工请求垃圾收集
请求线程堆栈
VM 堆大小和垃圾收集
Java 程序对象存储在 Java 堆中。Java 堆是包括活动对象、无效对象及可用内存的仓库。如果某对象不再能够在运行的程序中通过任何指针进行访问,则会将该对象视为“垃圾”,可以进行收集。将进行垃圾收集所耗费的时间调整为执行时间的 5% 以下,这是一种最佳实践。JVM 堆大小决定 VM 收集垃圾的频率及所耗费的时间。可以接受的垃圾收集速率因应用程序而异,并且应在分析垃圾收集的实际时间和频率后进行调整。如果将堆大小设置得很大,则执行完全垃圾收集的速度将会较慢,但收集频率会较低。如果根据内存需求设置堆大小,则完全垃圾收集的速度会较快,但收集频率会较高。调整堆大小的目的是将 JVM 进行垃圾收集所耗费的时间缩到最短,同时将 WebLogicServer 在某给定时间内可以处理的客户端数增至最大。要确保在基准测试期间得到最佳性能,可将堆大小值设置得很大,以确保不会在整个基准测试过程中进行垃圾收集。如果堆空间不足,则可能会出现以下 Java 错误:
java.lang.OutOfMemoryError <<no stack trace available>>
java.lang.OutOfMemoryError <<no stack trace available>>
Exception in thread "main"
要修改堆空间值,请参阅指定堆大小值。要配置 WebLogic Server 以便在堆空间用尽时自动进行检测,以及处理服务器中内存不足的情况,请参阅自动对内存不足情况进行日志记录和指定堆大小值。
选择垃圾收集方案
可从若干垃圾收集方案中进行选择,以管理系统内存,所选择的方案取决于所使用的 JVM。例如,某些垃圾收集方案更适用于给定类型的应用程序。了解应用程序的工作负荷以及 JVM所用的各种垃圾收集算法之后,就可以优化垃圾收集的配置。
请参阅下列链接,以查看 JVM 垃圾收集选项的深入讨论:
有关 Sun 的 HotSpot VM 可用的垃圾收集方案的概述,请参阅 TuningGarbage Collection with the 5.0 Java Virtual Machine。
有关可用收集方案的详尽说明,请参阅 Improving Java ApplicationPerformance and Scalability by Reducing Garbage Collection Times andSizing Memory Using JDK 1.4.1。
有关 BEA JRockit JDK 可用的垃圾收集方案的讨论,请参阅。
对于从 HP 视角来看有关垃圾收集的某些观点,请参阅 。
使用详细垃圾收集确定堆大小
通过详细垃圾收集选项 (verbosegc),能够精确测量向垃圾收集投入了多少时间和资源。要确定最有效的堆大小,请启用详细垃圾收集,然后将其输出重定向到日志文件,以便进行诊断。此过程的大致步骤如下: 在运行应用程序时监视 WebLogic Server 在最大负载下的性能。
用 -verbosegc 选项对 JVM 启用详细垃圾收集输出,然后将标准错误和标准输出都重定向到日志文件。这会将线程转储信息存储到相应的 WebLogic Server 信息性消息和错误消息上下文中,从而提供更有用的日志以便进行诊断。
例如,在 Windows 和 Solaris 中,输入下列代码:
% java -ms32m -mx200m -verbosegc -classpath $CLASSPATH
-Dweblogic.Name=%SERVER_NAME% -Dbea.home="C:\bea"
-Dweblogic.management.username=%WLS_USER%
-Dweblogic.management.password=%WLS_PW%
-Dweblogic.management.server=%ADMIN_URL%
-Dweblogic.ProductionModeEnabled=%STARTMODE%
-Djava.security.policy="%WL_HOME%\server\lib\weblogic.policy"
weblogic.Server
>> logfile.txt 2>&1
其中的 logfile.txt 2>&1 命令可将标准错误和标准输出都重定向到日志文件。
在 HPUX 中,可使用以下选项将 stderr stdout 重定向到单个文件:-Xverbosegc:file=/tmp/gc$$.out其中 $$ 可以映射到 Java 进程的进程 ID (PID)。因为输出中包括运行垃圾收集时的时间戳,所以可推断出进行垃圾收集的频率。
分析下列数据点:
多长时间进行一次垃圾收集?在 weblogic.log 文件中,比较垃圾收集的时间戳。进行垃圾收集花费了多长时间?完全垃圾收集耗时不应超过 3 到 5 秒。平均内存占用量为多少?换句话说,每当完全垃圾收集执行完毕后,堆占用多少内存?如果堆始终占用 15%,则可以将堆大小设置得更小些。
检查新一代堆大小 (Sun) 或温床大小 (BEA Jrockit)。
对于 BEA Jrockit:请参阅 BEA JRockit JVM 堆大小选项。
对于 Sun:请参阅 Java HotSpot VM 堆大小选项。
确保堆大小不超过系统中可用 RAM 的大小。
在不会导致系统向磁盘“交换”页面的前提下,使用尽可能大的堆大小。系统中可用 RAM 的大小取决于硬件配置,以及在计算机中运行进程所需的内存量。确定系统中的可用 RAM 量时,可求助于系统管理员。
如果发现系统收集垃圾所耗费的时间太长(分配的虚拟内存已超过 RAM 的处理能力),请减小堆大小。通常应将可用 RAM(未被操作系统或其他进程占用)的 80% 用于 JVM。
如果发现还有大量的可用 RAM,则在计算机中运行更多 WebLogic Server 实例。记住,调整堆大小的目的是将 JVM 进行垃圾收集所耗费的时间缩到最短,同时将 WebLogicServer 在某给定时间内可以处理的客户端数增至最大。
注意:
JVM 供应商可能会提供用于打印详尽的垃圾收集报告的其他选项。例如,可在关闭程序时使用 BEA JRockit JVM -Xgcreport 选项打印详尽的垃圾收集报告,请参阅“。
指定堆大小值
可供 JVM 使用的 Java 堆大小对系统性能具有较大影响。本部分介绍用于定义堆大小值的命令行选项。每当启动 WebLogic Server 实例时,均需指定 Java 堆大小值。在 java 命令行中,或通过修改随 WebLogic 分发提供的示例启动脚本(用于启动 WebLogic Server)中的默认值,均可执行上述操作。
堆大小调整提示
BEA JRockit JVM 堆大小选项
Java HotSpot VM 堆大小选项
堆大小调整提示
以下部分提供了调整 VM 堆大小的一般准则:
堆大小应设置为一个适当的值,从而使 VM 使用的最大内存量不超过可用物理RAM 量。如果超过该值,则 OS 会开始分页,性能也会显著降低。VM 使用的内存始终多于堆大小。除了堆大小设置,还要分配内部 VM 功能、VM 之外的本地库和永久代内存(仅适用于 Sun VM:存储类和方法所需的内存)所需的内存。
使用分代式垃圾收集方案时,温床大小不应超过 Java 堆总大小的一半。通常情况下,堆大小的 25% 到 40% 就已足够。
在生产环境中,将最小堆大小和最大堆大小设置为同一值,可以避免浪费用于时常调整堆大小所需的 VM 资源。这也适用于新一代堆大小 (Sun) 或温床大小 (BEAJrockit)。BEA JRockit JVM 堆大小选项虽然 BEA JRockit 可以自动进行试探性堆大小调整,但这并不是所有应用程序的最佳选择。大多数情况下,最佳性能是通过调整每种应用程序的 VM 实现的,方法是调整表 5-2 中所示的堆大小选项。
例如,从 java 命令行启动 WebLogic Server 实例时,可使用以下命令指定 BEA JRockitVM 堆大小值:
$ java -Xns10m -Xms512m -Xmx512m
这些值的默认大小的度量单位是字节。该值后附加字母“k”或“K”表示 KB;附加“m”或“M”表示 MB;附加“g”或“G”表示 GB。上例将 10 MB 内存分配给温床堆大小,将 512 MB 内存分配给运行在 JVM 中的 WebLogic Server 实例的最小和最大堆大小。有关针对 WebLogic 的 JRockit JVM 设置适当的堆大小的详细信息,请参阅 Tuning theJRockit JVM。
其他 BEA JRockit VM 选项
BEA 提供可以提高 BEA JRockit VM 性能的其他命令行选项。有关详细信息,请参阅 。
【下载地址】
百度网盘链接:https://pan.baidu.com/s/16gN8hQSeKimILGdYHiNW2g
提取码:mwyk
相关文章
使用-JFreeChart来创建基于web的图表
XStream使用文档
WebService发布过程及常见问题
webpack实战入门进阶调优分享
weblogic调优参数及监控指标
weblogic节点管理
weblogic管理控制台概述
weblogic-部署和启动
WebLogic-Server-性能及调优-调优-Java-虚拟机
Java 虚拟机(Java virtual machine,简称 JVM)是一种虚拟“执行引擎”实例,可在微处理器上执行 Java 类文件中的字节码。调整 JVM 的方式会影响 Weblogic Server 和应用程序的性能。
Velocity是一个基于java的模板引擎(template engine)。它允许任何人仅仅简单的使用模板语言(template language)来引用由java代码定义的对象。
Velocity 用户手册是帮助页面设计者和内容提供者认识 Velocity 和其简单而功能强大的脚本语言――Velocity 模板语言(VTL)。在手册上的许多例子,都是用 Velocity 插入动态的内容到网页上,但是所有的 VLT 例子都能应用到其他的页面和模板中。
CAD快捷键有哪些?(常用的CAD快捷键命令大全) 65
一、常用绘图快捷键。最基本的一些画图的功能操作,简单来说就是CAD制图的打底部分。(如下图)二、常用编辑快捷键CAD中对图形进行修改的操作。
chatgpt是谁开发的? 109
OpenAI官网显示,为ChatGPT项目做出贡献的人员不足百人(共87人)。从成员毕业高校分布看,校友最多的前5大高校是斯坦福大学(14人)、加州大学伯克利分校(10人)、麻省理工学院(7人)、剑桥大学(5人)、哈佛大学(4人)和佐治亚理工学院(4人)。
怎么注册chatgpt(chatgpt怎么使用) 241
第一步 上网工具。打开上网工具,工具基本是需要付费使用的。注册然后按照教程安装,直到能够测试上网打开即可。
win10版本区别有哪些?怎么选择?哪个更好用? 69
win10系统分为7个版本。家庭版(Windows 10 Home);专业版(Windows 10 Professional);企业版(Windows 10 Enterprise);教育版(Windows 10 Education);移动版(Windows 10 Mobile);移动企业版(Windows 10 Mobile Enterprise);物联网核心版(Windows 10 loT Core)
win10自动更新怎么关闭,教你三步即可搞定 54
方法一:组策略关闭 1、同时按下“Win+R”打开运行窗口,然后输入gpedit.msc回车打开【本地组策略编辑器】。2、在组策略编辑里面,我们依次展开【计算机配置 - 管理模板 - Windows 组件 - Windows 更新】,然后在右侧找到【配置自动更新】选项选中。