What is Verbose Garbage Collection (verbosegc) and How do I Enable it on WebLogic
问题描述:
What is Verbose Garbage Collection (verbosegc) and How do I Enable it on WebLogic
问题分析:
通过添加gc参数解决
解决办法:
Verbose garbage collection (verbosegc) is a Java option you can set, when starting WebLogic, so that all java garbage collection activity is recorded to a WebLogic log. Verbose garbage collection is sometimes enabled for diagnostic purposes, when there are memory-related issues or performance-related issues on the WebLogic server. Although there are many options for java tuning, our developers often request verbosegc to troubleshoot memory issues.
HOW TO ENABLE VERBOSE GARBAGE COLLECTION
To enable verbose garbage collection, do the following:
1. First add the 'Verbose Garbage Collection' option to the java command line. Below are instructions, based on the operating system you are using:
In Linux environments (using PeopleTools 8.53 - 8.57 PeopleTools releases):
a. Edit <PIA_HOME>/webserv/<DOMAIN_NAME>/bin/setEnv.sh
b. Add parameter '-verbose:gc and -XX:+PrintGCDateStamps' to the "JAVA_OPTIONS_LINUX" line . Example
JAVA_OPTIONS_LINUX="-Xms2048m -Xmx2048m -verbose:gc -XX:+PrintGCDateStamps -Dtoplink....
In Solaris environments (using PeopleTools 8.56 or lower PeopleTools release):
a. Edit <PS_HOME>/webserv/<DOMAIN_NAME>/bin/setEnv.sh
b. Add parameters ' -XX:+PrintGCDateStamps -verbosegc' to the "JAVA_OPTIONS_OS" line .
For example:
JAVA_OPTIONS_SOLARIS="-server -Xms2048m -Xmx2048m -XX:MaxpermSize=128m -XX:+PrintGCDateStamps -verbosegc -Dtoplink....
In HP and AIX enviroments:
a. Edit <PS_HOME>/webserv/<DOMAIN_NAME>/bin/setEnv.sh
b. Add parameter '-verbose:gc -XX:+PrintGCTimeStamps' to the "JAVA_OPTIONS_OS" line .
For example, if web server is on AIX, the following change would be made:
JAVA_OPTIONS_AIX="-server -Xms512m -Xmx512m -verbose:gc -XX:+PrintGCTimeStamps -Dtoplink....
For HP:
JAVA_OPTIONS_HPUX="-server -Xms2048m -Xmx2048m -verbose:gc -XX:+PrintGCTimeStamps -Dtoplink....
In Windows environment where WebLogic is started as a Windows service, update the Windows registry as follows:
a. Choose start-run-regedit
b. From regedit, go to [HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\peoplesoft-PIA, or whatever your service name is.
c. Highlight that service and expand
d. Click 'Parameters'
e. Double-click on cmdline.
f. If Using JRockit (ie PeopleTools 8.50 to 8.52), then add '-Xverbose:gc -Xverbosetimestamp' after the heap settings.
Example:
-server -Xms2048m -Xmx2048m -Xverbose:gc -Xverbosetimestamp ......
If Using Sun Java (PeopleTools 8.49 or older and 8.53 and higher), then add '-verbosegc' after parameter MaxPermSize.
Example:
-server -Xms256m -Xmx2048m -XX:MaxPermSize=2048m -verbosegc ......
In Windows environment, where WebLogic is started in foreground, add the verbose gc parameters (outlined above) to line JAVA_OPTIONS_WINxx in setEnv.cmd.
NOTE: You can redirect the Garbage Collection output to a separate file by using the parameter -Xloggc. For example on Windows add -Xloggc:c:\temp\gc.log
2. Restart the web server in order to pick up the change
3. The verbose garbage collection will be logged to the following file:
a. If using Linux, file is <PS_CFG>/webserv/<DOMAIN_NAME>/servers/PIA/logs/PIA_stderr.log
b. If using Windows service, file is <PS_CFG>/webserv/<DOMAIN_NAME>/servers/PIA/NTservice-<DOMAIN-NAME>-PIA.log
c. If using IBM, file is <PS_CFG>/webserv/<DOMAIN_NAME>/servers/PIA/PIA_stderr.log
d. For all other platforms, the verbose garbage collection is usually logged to <PS_CFG>/webserv/<DOMAIN_NAME>/servers/PIA/logs/PIA_stdout.log
HOW TO ANALYZE VERBOSE GARBAGE COLLECTION LOGS
======================================================
When analyzing verbose garbage collection we often concentrate on the full garbage collections (vs minor collections). Points of interest are:
a) How often is full garbage collection taking place?
b) How long is garbage collection taking? Full garbage collection should not take longer than 3 to 5 seconds.
c) What is your average memory footprint? In other words, what does the heap settle back down to after each full garbage collection?
Note that depending on the type and version of Java you are using (JRockit, IBM, HP or Sun), the format for a full GC varies. Below are a couple examples:
EXAMPLE 1:
-----------------
Below is an example of a log entry, for a full GC in a WebLogic environment using JRockit R28:
The format, for the above example is:
In the above example, the type 'OC' stands for 'Old Collection', which is the same as a full Garbage collection ('YC' or 'Young Collection' is the type used for a minor GC). In this example, heap usage before GC was 505.7 meg. After the GC, the heap usage was 395.7 meg. The heap is set to a max of 4 gb. It took 204 milliseconds to perform the garbage collection.
EXAMPLE 2:
-----------------
Below is an example of a log entry, for a full GC in a WebLogic environment using Sun Java:
The format is
In above example, usage before GC was 28053K and 28022K after the GC. The heap size is set to 255104K. It took .37 seconds for the GC.
EXAMPLE 3:
--------------------
For IBM, the verbose GC information is normally in xml format. Example:
<minimum requested_bytes="272" />
<time exclusiveaccessms="0.916" meanexclusiveaccessms="0.470" threads="2" lastthreadtid="0x0000000031C39700" />
<refs soft="12698" weak="8843" phantom="32" dynamicSoftReferenceThreshold="29" maxSoftReferenceThreshold="32" />
<tenured freebytes="53686272" totalbytes="1073741824" percent="4" >
<soa freebytes="0" totalbytes="1020055552" percent="0" />
<loa freebytes="53686272" totalbytes="53686272" percent="100" />
</tenured>
<gc type="global" id="2" totalid="2" intervalms="65208.114">
<classunloading classloaders="48" classes="0" timevmquiescems="0.000" timetakenms="7.874" />
<finalization objectsqueued="9836" />
<timesms mark="188.929" sweep="8.768" compact="0.000" total="206.155" />
<tenured freebytes="920823288" totalbytes="1073741824" percent="85" >
<soa freebytes="867137016" totalbytes="1020055552" percent="85" />
<loa freebytes="53686272" totalbytes="53686272" percent="100" />
</tenured>
</gc>
Note that the attributes of most interest are the "tenured freebytes" (after the "af" section and after the "gc" section) as this shows you heap size before and after the garbage collection.
What is Verbose Garbage Collection (verbosegc) and How do I Enable it on WebLogic的更多相关文章
- [翻译]Java垃圾收集精粹(Java Garbage Collection Distilled)
source URL: http://www.infoq.com/articles/Java_Garbage_Collection_Distilled Name: Java Garbage Colle ...
- Advanced .NET Debugging: Managed Heap and Garbage Collection(转载,托管堆查内存碎片问题解决思路)
原文地址:http://www.informit.com/articles/article.aspx?p=1409801&seqNum=4 Debugging Managed Heap Fra ...
- Garbage Collection Optimization for High-Throughput and Low-Latency Java Applications--转载
原文地址:https://engineering.linkedin.com/garbage-collection/garbage-collection-optimization-high-throug ...
- Unity性能优化(3)-官方教程Optimizing garbage collection in Unity games翻译
本文是Unity官方教程,性能优化系列的第三篇<Optimizing garbage collection in Unity games>的翻译. 相关文章: Unity性能优化(1)-官 ...
- How Garbage Collection Really Works
Java Memory Management, with its built-in garbage collection, is one of the language's finest achiev ...
- Java Garbage Collection Basics--转载
原文地址:http://www.oracle.com/webfolder/technetwork/tutorials/obe/java/gc01/index.html Overview Purpose ...
- AutoReleasePool 和 ARC 以及Garbage Collection
AutoReleasePool autoreleasepool并不是总是被auto 创建,然后自动维护应用创建的对象. 自动创建的情况如下: 1. 使用NSThread的detachNewThread ...
- The Impact of Garbage Collection on Application Performance
As we’ve seen, the performance of the garbage collector is not determined by the number of dead obje ...
- [Java] 垃圾回收 ( Garbage Collection ) 的步骤演示
关于 JVM 垃圾回收机制的基础内容,可参考上一篇博客 垃圾回收机制 ( Garbage Collection ) 简介 上一篇博客,介绍了堆的内存被分为三个部分:年轻代.老年代.永生代.这篇博文将演 ...
随机推荐
- 如何发布H5界面可以让公网访问
本文链接:https://blog.csdn.net/u013310119/article/details/81233560问题背景:手机APP里的H5界面要发布到公网,提供给第三方APP调用. 解决 ...
- Js/jQuery实时监听input输入框值变化
前言在做web开发时候很多时候都需要即时监听输入框值的变化,以便作出即时动作去引导浏览者增强网站的用户体验感.而采用onchange时间又往往是在输入框失去焦点(onblur)时候触发,有时候并不能满 ...
- 网页开启QQ会话
在网页中开启QQ会话是很常见的,那么到底怎么调用了. 一.首先要被开启的QQ开启推广服务.注意这个一般开启难免被骚扰,所以不要用生活号. 传送门:https://www.xinxiangseo.cn/ ...
- 零基础学Python-第二章 :Python基础语法-06.变量的定义和常用操作
网络带宽计算器的原理 输出的内容用print 引入变量,在前面写一个变量,是一个有意义的单词.把123这个数值赋值给变量a 下面的代码可读性 要比上面高很多. 变量其他需要掌握的知识点 一般这样是用做 ...
- 【DataBase】Hsqldb的简单使用
介绍 HSQLDB是一个开放源代码的JAVA数据库,其具有标准的SQL语法和JAVA接口,它可以自由使用和分发,非常简洁和快速的.具有Server模式,每个程序需要不同的命令来运行. HyperSQL ...
- 增强篇3 SAP表字段增强
有两种方式: Include 和 Append 1.INCLUDE一般都是标准预留的增强: 以CO01生产订单增强字段为例 在表AUFK中INCLUDE的结构“CI_AUFK”加入自定义字段 保存 ...
- LinkedHashMap和hashMap和TreeMap的区别
推荐博客:https://www.jianshu.com/p/8f4f58b4b8ab 区别: LinkedHashMap是继承于HashMap,是基于HashMap和双向链表来实现的. HashMa ...
- 从零开始封装React UI 组件库并发布到NPM
github 开源地址:zswui github 说明文档:wiki 1.新建目录wui (1)进入到 wui 目录 执行 npm init 命令初始化项目.更具提示信息填充将会生成的 package ...
- 通过iis启动服务,会产生C:/inetpub/logs/logsFile产生大量的日志,定期清理
[转]https://www.cnblogs.com/Martianhh/p/5312495.html bat文件内容如下,加入到计划任务执行 :: 清理IIS日志文件 :: 备份MySql数据库 @ ...
- BASH输出着色显示
通过将其输出着色,可以使BASH脚本更漂亮.使用ANSI转义序列设置文本属性,例如前景色和背景色. 使用以下模板格式来编写彩色文本: echo -e "\e[前景色值;背景色值;2m文本\e ...