weblogic压力测试中的性能调试手册要点.docx

上传人:b****7 文档编号:11141925 上传时间:2023-02-25 格式:DOCX 页数:32 大小:6.89MB
下载 相关 举报
weblogic压力测试中的性能调试手册要点.docx_第1页
第1页 / 共32页
weblogic压力测试中的性能调试手册要点.docx_第2页
第2页 / 共32页
weblogic压力测试中的性能调试手册要点.docx_第3页
第3页 / 共32页
weblogic压力测试中的性能调试手册要点.docx_第4页
第4页 / 共32页
weblogic压力测试中的性能调试手册要点.docx_第5页
第5页 / 共32页
点击查看更多>>
下载资源
资源描述

weblogic压力测试中的性能调试手册要点.docx

《weblogic压力测试中的性能调试手册要点.docx》由会员分享,可在线阅读,更多相关《weblogic压力测试中的性能调试手册要点.docx(32页珍藏版)》请在冰豆网上搜索。

weblogic压力测试中的性能调试手册要点.docx

weblogic压力测试中的性能调试手册要点

1.1.1Oracle数据库设置

1.【PGA】24-》60

2。

【SGA】shared_pool_size=48,80

3.【SGA】高速缓存区:

24,40

4.【SGA】java池:

30-》0(8)

5.会话150-》1000.

6.游标300-》1000.

1.1.2Jar包设置:

1、Log4j删除日志,加“#”

2、DynamicDao删除system.OutSQL

1.1.3Weblogic设置

1.1.3.1内存大小

setDomainEnv.cmd

if”%JAVA_VENDOR%"==”Sun”(

setWLS_MEM_ARGS_64BIT=—Xms256m-Xmx512m

setWLS_MEM_ARGS_32BIT=—Xms256m—Xmx1524m

1.1.3.2域JTA配置

超时秒数:

360

事务超时数100

1.1.3.2.1服务器上资源的最大请求数(每个服务器所允许的最大并发资源请求数500)

 

事务超时数100

服务器:

接受预备连接:

600

1.1.3.3域Web应用程序设置

1.1.3.4JDBC连接池

域-》服务-》JDBC—-》数据源

连接池

1、语句缓存大小100

2、不支持全局事务

3、初始容量:

5

4、最大容量:

100(已经修改为500)

5、容量增长:

5

6、收缩频率:

450

7、语句超时:

1000

8、非活动连接超时100

1.1.3.5部署监视

部署-》监视-》JDBC

 

1.1.3.6Servers连接池配置

服务-》JDBC-》数据源-》配置-》连接缓冲池

 

 

1.1.3.7Server管理控制

服务器-》AdminServer(管理)-》控制

服务器-》AdminServer(管理)

 

1.1.3.8Java虚拟机内存回收

服务器-》AdminServer(管理)-》选中-》监视-》性能-》垃圾回收内存(Java虚拟机内存利用率统计信息)

1.1.3.9监视JDBC

1.1.3.10监视JTA

1.1.3.11服务器参数调整(接受预备连接:

600)

服务器-》AdminServer(管理)-》选中-》调整

1.1.3.12最长线程阻塞时间

服务器-》AdminServer(管理)-》选中-》超载

1.1.3.13BEA-000449Closingsocketasnodatareadfromit

1、Settheparameter-Dweblogic。

client.socket。

ConnectTimeout=XXX,inthestart—upscriptoftheserverwhichyouareseeingthisissueunderJAVA_OPTIONS

Note:

Where"XXX"isthevalueinms。

Example:

-Dweblogic。

client.socket.ConnectTimeout=500

2、Server—>Protocols(tab)-〉HTTP(sub-tab)-〉Duration(持续时间)

1.1.3.14BEA-310003Freememoryintheserver.。

ThereisdangerofOutOfMemoryError

ThanksfortheHint。

Ifoundthatchangingthe”LowMemorySampleSize”from"10"to”120"solvedmyproblem。

WhenWebLogicusesJRockit,itknowwhentheGCrunsandcleansupmemory。

Itsamplesthefreeheapatthistime(becauseallofthegarbagehasbeencollectedandmemoryisasemptyasitisgoingtoget)andiftheaverageoverthehouris<5%free,thenyougetanalert。

UnfortunatelyI'musingtheIBMAIXJVM.WebLogiccan'ttellwhenIBM’sJVMisdoingaGC,soitjustsamplesheapfreeataregularintervals。

Sincethereareonly10samples(bydefault)inahour,ifitgetsunluckyafewtimesyouwillgetanoutofmemoryalertwhenthereisnothingtobeworriedabout。

Iboostedthesamplesto120/hour,soitgetsabetterpictureoftheamountofheapthatisfreeonaverage.Nowthatafewbadsamplescan’tdragthevalueoverthe5%limit,Iammuchlesslikelytogetanalert.

ThenavigationpathinWebLogic10.3toLowMemorySampleSizeis:

Environment—〉Servers—>"theserveryouwishtochange”—〉Configuration->Tuning

Aftermakingthechangeyouhavetorestarttheserver。

Italsoagoodideatocheckthatthechangeworked(Ilostmychangeduringtherestartsomehowthe1sttimeIdidit)。

 

1.1.3.15[转1]常用weblogic性能调优方法

常用weblogic性能调优方法(2007-05-2212:

23:

57)

 

1.设置最大线程(并发)数量

myserver|Configuration|Monitoring|performance

可以观察整体性能

IdleThreads数量少,QueueLength比较大说明存在多并发,而且CPU资源比较空闲需要增加线程数量,具体方法

myserver|Configuration|Monitoring|performance|General

MonitorallActiveQueues..。

调整当前ThreadCount个数,一般量大得可以设置到100.

【备注版本9.0:

weblogic。

kernel。

default其实是一个weblogic的核心参数,设置的值就是weblogic用来响应客户端请求的线程数量。

也就是说,一个用户登陆应用系统进行某操作,则WebLogic将从weblogic。

kernel.default中分配一个线程给该用户。

默认情况下,这个参数值是40。

比如对大的企业应用,同一时间登陆操作系统的用户非常多,则40个线程就显得太少了。

同时,如果你的应用程序设计得不好,造成很多操作速度非常慢,因为WebLogic要等待你一个操作完成之后,才进行线程的回收处理,如果同一时间有很多线程在执行非常慢的操作,这也会引起线程数量不够的问题。

   具体的表现就是在WebLogic的控制台的myserver中的Monitoring页面下的Performance页面中,QueueLength显示不是等于0,图像可能是一个曲线.QueueLength这个参数的意义就是“在等待队列里的请求数”。

正常情况下,应该是0,图像是一个水平的横线。

也就是没有客户端的请求会等待,都能及时的得到系统的处理。

如果确认是因为用户过多的原因需要增大weblogic。

kernel。

default参数的值,我们怎么修改?

进入WebLogic控制台——左边窗口的mydomain—-servers——点击myserver——Configuration-—General—-点击AdvancedOptions的Show链接--最下面的ConfigureExecuteQueues链接-—weblogic。

kernel。

Default链接—-ThreadCount参数.的却是隐藏的比较深。

修改ThreadCount的值,然后重启WebLogic就可以生效了。

【备注版本10.0:

根据客户的要求,我们在webblogic10上测试wicket框架的性能。

需要设置并发线程数设置。

根据网上资料,需要在config.xml的server部分配置修改,如下:

 

   AdminServer〈/name〉

   

     

     

     

   

   true〈/use81—style—execute-queues〉

    

 〈/server〉 

请不要画蛇添足,否则,webapplications跑不起来的,配置execute-queue的基本属性就行了。

我中途也吃过这个亏。

2.设置内存

在启动脚本中setMEM_ARGS=—Xms512m-Xmx1000m即最小内存和最大内存.不宜太小也不宜太大

 

3.最大socket连接数(出现connectionrefused可以增加次数量)

myserver|Configuration|Tuning|AcceptBacklog一般比ThreadCount稍微大一点

4.连接池得最大最小格式设置成相同,并且不少于50个(一般和ThreadCount差不多)。

5。

x86PcSvr环境下采用jrockit(BEA专门针对x86做了性能优化得JDK)性能有显著提高20%.

以下假设d:

\bea\jrockit81sp1_141_03是jrockit的路径。

 

l如果启动采用startETS.cmd脚本则修改以下环境变量:

setJAVA_HOME=d:

\bea\jrockit81sp1_141_03

setJAVA_VM=—jrockit

setMEM_ARGS=-Xms512m-Xmx1000m

 

l如果启动采用startWebLogic.cmd脚本则:

在call"%WL_HOME%\common\bin\commEnv。

cmd"前后的语句成如下格式:

setJAVA_VENDOR=BEA

setJAVA_HOME=d:

\bea\jrockit81sp1_141_03

setJAVA_VM=-jrockit

 

call"%WL_HOME%\common\bin\commEnv.cmd”

 

setMEM_ARGS=-Xms512m—Xmx1000m

1.1.3.16[转2]常用weblogic性能调优方法

1、性能测试过程中出现问题的解决

网络链接被自动断开

性能测试过程中当并发达到500时,出现下图中的大量错误,错误率在25%

左右,如果并发量加大,错误率更高。

1.1.3.17BEAWebLogicJRockit的使用和性能调优

一.JRockit调优简介

JRockit是一个自适应的JVM,它能够自动调整自己去适应底层硬件,因此对它的调优主要集中在一些需要人工干预的参数上,比如说:

需要划分多少RAM给JRockit使用等。

JRockit有一组非标准的-X启动选项,我们可以用它来调节JVM.JRockit有两组主要的子系统可以被优化--内存管理系统(包括垃圾回收)和线程系统。

在内存管理子系统方面,有很多调优的工作可以做。

二.TuningWebLogicJRockitJVM

1.设置初始堆尺寸

可以通过-Xms:

〈size〉m来设置初始堆大小,如果—Xmx的值小于128MB,则-Xms缺省取值为16MB;如果—Xmx设置大于128MB,则—Xms缺省值为物理内存的25%,最大不超过64M。

例子:

$java-Xgc:

gencon—xms:

64m—Xmx:

64mmyClass

2.设置最大堆尺寸

可以通过-Xmx:

〈size>m来设置最大堆尺寸。

在IA32构架下,由于操作系统给每个进程的最大内存寻址空间为1.8G,因此最大堆尺寸不能超过1。

8G。

在IA64构架下,就没有1。

8G的限制。

如果你的JAVA应用程序在运行时出现了Outofmemory的错误,你就需要调大最大堆尺寸。

如果没有设置最大堆尺寸,则缺省值为:

1.如果设置了-Xgc:

gencopy,由最大堆尺寸是min{400,物理内存*75%};

2.如果没有设置—Xgc:

gencopy,由最大堆尺寸是min{1536,物理内存*75%};

最好手工把最大堆尺寸设置为物理内存(1024M)的75%:

$java-Xgc:

gencon—xms:

64m-Xmx:

768mmyClass

3.设置Nursery的尺寸

可以使用—Xns:

〈size>来设置Nursery的尺寸,我们要在保证垃圾回收停顿时间(garbagecollection—pause)尽可能短的同时,尽量加大Nursery的尺寸,这在创建了大量的临时对象时尤其重要。

缺省值为:

1.对于-Xgc:

gencopy,缺省的Nursery大小为320KB/CPU,对于10个CPU的系统来说,Nursery大小为3200KB(3.2M)

2.对于—Xgc:

gencon,缺省的Nursery大小为10M/CPU,对于10个CPU的系统来说,Nursery大小为100M

4.定义内存空间的清理时机

可以使用—Xcleartype:

来定义已经被垃圾回收的内存空间在什么时候可以被清理,支持以下三种方式:

1.gc,在垃圾回收的同时清理内存;

2.local,在分配了一块thread-local区域时清理内存,仅在把参数—Xallocationtype设置成local时才有用;

3.alloc,在这块内存被分配给其它对象时清理.在IA64上目前还不支持。

缺省值为:

1.IA32上缺省值为alloc

2.IA64上缺省值为gc

5.定义线程分配的类型

可以使用—Xallocationtype:

1.global,在最大堆尺寸比较小时(小于128M)或者应用程序大量使用了线程时使用。

2.local,在最大堆尺寸比较大时(大于128M)或者应用程序少量使用了线程时使用。

缺省值:

1.如果设置了-Xgc:

gencopy,缺省值为global

2.如果设置了—Xgc:

siglecon,—Xgc:

gencon和-Xgc:

parallel,缺省值为local

6.定义线程栈尺寸

可以使用—Xss

最小线程尺寸定义如下:

1.thinthreads:

最小线程栈尺寸为8K,缺省为64K;

2.nativethreads:

最小线程栈尺寸为16K

如果-Xss设置小于最小值,则自动使用最小值。

缺省值:

1.IA32系统,WIN32:

64K,LINUX32:

128K

2.IA64系统,WIN64:

320K,LINUX64:

1M

二.BasicTuningTipsandTechniques

尽管JRockit提供了一组缺省的OOTB配置选项,但最好根据实际应用情况来对JRockit作一些调整。

1.决定你要在哪方面调优

要考虑的因素有:

1.要为JRockit分配多少内存空间;

2.你要调优的目的是什么,是要得到更好的响应性还是更好的性能;

2.设置堆尺寸

对于堆尺寸来说,当然是越大越好了。

如果设得不够大,就会造成Out-of—memory和内存分页错.如果同时运行了多个应用程序,建议把最小和最大堆尺寸设置成一样大.

3.在高响应性方面的调优

要得到更好的响应性能,应该设置

1.使用并发垃圾回收器.-Xgc:

gencon

2.设置初始和最大堆大小。

-Xms512m,-Xmx768m,由于使用了并发垃圾回收器,所以堆大小不会造成长时间的等待。

3.设置nursery尺寸.如果用到了大量的临时对象,则需要适当的调大nursery尺寸.调大nursery尺寸会导致垃圾回收的停顿时间加长,因此要注意,确保垃圾回收的停顿时间在可忍受的范围内,这个停顿时间可以通过设置-Xgcpause来查看.

4.在高性能方面的调优

如果要得到更好的性能,你应该:

1.选用并行垃圾回收器,由于并行垃圾回收器不使用nursery,因此你不必再设置-Xns,方法是加上—Xgc:

parallel

2.把初始和最大堆尺寸设置调到尽可能的大。

方法是—Xms512m,-Xmx768m。

5.分析垃圾回收和停顿时间

1.使用—Xgcreport生成报表,显示垃圾回收的统计信息,从中可以看出你是不是最有效地使用了垃圾回收器。

2.使用—Xverbose:

memory来显示在运行期间每一次垃圾回收的停顿时间。

本选项仅用于调试,会产生大量的控制台输出。

6.调整线程选项

当大量地使用了线程时(超过100个),需要调整线程选项:

1.使用thin线程选项。

—Xthinthreads。

瘦线程模式在LINUX下非常有效。

注意:

瘦线程在JRockit中只是一个试验选项,不推荐广泛使用;

2.关闭本地分配线程的选项.-Xallocationtype:

global。

每个本地线程区都要消耗大约2K的内存,如果大量地使用了线程,本地线程不但会造成内存空间浪费,而且还会造成堆碎片。

使用全局线程机制会减少堆碎片,但在内存分配方面速度要慢一些。

7.分析并改善应用程序设计

找出瓶颈方法:

1.使用IntelVTune工具;

2.使用-Xjvmpi:

allocs=off,monitors=off,entryexit=off选项。

三.CommandLineOptionsbyName

启动JRockit时,可以带一些—X选项,这些选项是非JVM标准的,专门用于配置JRockit的性能。

选项

描述

—X

显示扩展Java选项

-Xallotype

—Xallocationtype

可取值global和local,定义使用本地线程还是全局线程。

-Xbootclasspath

指定类搜索路径,可以是ZIP和JAR文件,以;或:

分隔

—Xcleartype

定义内存清理时机,可取值gc,local,alloc。

gc表示在垃圾回收时清理内存;local表示时分配一块local线程区时清理;alloc表示内存区要被分配给其它对象时清理

—Xgc

选择要使用的垃圾回收器的类型,可取值:

gencopy:

generationalcopying

singlecon:

singlespacedconcurrent,单空间并发

gencon:

generationalconcurrent

parallel:

parallel

如果—Xmx小于128M,缺省使用gencopy,否则使用gencon

—Xgcpause

打印由垃圾回收器造成的停顿时间

—Xgcreport

打印垃圾回收报表

—Xjvmpi

是否允许JVMPI事件,这些事件有:

entryexit(缺省ON)

allocs(缺省ON)

monitors(缺省ON)

arenasdelete(缺省OFF)

-Xmanagement

激活JVM中的管理服务器,在JVM的管理控制台能连接到它之前,必须先激活.

—Xms

设置初始堆大小,单位有K、M、G

-Xmx

设置最大堆大小,单位有K、M、G

-Xnativethreads

使用本地线程系统,这是缺省选项

-Xnoclassgc

禁止对类作垃圾回收

—Xnohup

告诉JRockit,忽略CTRL_LOGOFF_EVENT和SIGHUP事件

—Xns

设置nursery尺寸,单位有K、M、G

-Xss

设置线程栈尺寸,单位有K、M、G

-Xthinthreads

使用JRockit的高性能线程系统,在IA64上不可用。

-Xverbose

让JRockit打印更多的信息,可选的参数有:

codegen、cpuinfo、gc、load、memory、Opt

-Xverify

作完整的bytecode一级的校验

四.用JRockit8。

1中的MethodProfiler调优WebLogic

1.关于MethodProfiler工具

BEAWebLogicJRockit8。

1提供了一个Profiling工具:

MethodProfiler来调优WebLogic应用。

2.利用MethodProfiler调优WebLogic应用

JRockit8。

1所带的MethodProfiler工具能够将所有在JRockitJava虚拟机上执行的成员方法的调用次数、执行的总时间和每次调用的执行时间都统计出来,如图1所示。

这样的功能一来可以让我们对跑在WebLogic上的应用进行tuning(代码级的),二来也大大方便了我们确定系统瓶颈在何处。

这也可以说是JRockitJVM相对于其他JVM在功能上的一大优势。

在一次对WebLogicServer8。

1的压力测试中,对一组包含了CMP特性的样本进行压力测试时,就利用JRockit的MethodProfiler诊断出了系统的瓶颈所在,现介绍如下.CMP这组样本中原先对CMPEntityBean的操作除了用ejbCreate插入一条记录之外,紧跟着用setName方法设置其name属性,即UPDATE其对应数据库记录中name域的值,代码如下:

publicvoidejbCreate()//Stateful4CMPBean中的方法

throwsCreateException

try

Contextctx=newInitialContext();

SheepHomehome=(SheepHome)ctx。

lookup(”Sheep”);

Sheepshe

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1