
注意: 以下描述基于Weblogic 8.1. 其他版本的Weblogic可能略有不同.
1)设置JAVA参数;
a)编辑Weblogic Server启动脚本文件;
BEA_HOME \ user_projects \ domains \域名\ startWebLogic.cmd(startWebLogic.shon Unix)
BEA_HOME \ user_projects \ domains \域名\ startManagedWebLogic.cmd(在Unix上为startManagedWebLogic.sh)-群集时使用
b)编辑set JAVA_OPTIONS命令,例如: set JAVA_OPTIONS = -Xms256m CXmx256m;
(在UNIX上,将MEM_ARGS =“ -Xms1024m -Xmx1024m-Xmn128m”添加到上述两个.sh文件中)
c)保存并重新启动.
注意: 为了在WebLogic中获得更好的性能,BEA建议最小Java堆等于最大Java堆.
(这对夫妇的设置都是1024M. 无论如何,内存是4G)
2)开发模式与产品模式;
开发模式和产品模式的某些参数的默认值不同,这可能会影响性能. 以下是对性能有影响的参数列表:
开发模式的参数默认值产品模式的默认值
执行队列: 线程数15个线程25个线程
JDBC连接池: MaxCapacity 15个连接25个连接
通过启动管理控制台,在域(例如: mydomain)>“配置”>“常规”中选择产品模式.
(创建Weblogic域时这是可选的. 选择“产品”模式. 如果以后需要修改,则可以根据上述方法进行修改)
3)尝试启用本地I / O;
启动管理控制台,在域(例如: mydomain)>服务器>服务器实例(例如: myserver)> configure>调整并选择以启用本地I / O.
注意: 此值也可以由config.xml配置文件手动修改.
(我还没有测试过,我不知道有什么效果和好处,如果您知道,请告诉我. )
4)调整执行队列线程;
a)修改默认执行线程数
在这里,执行队列中的线程数表示执行队列可以同时执行的操作数. 但是,此值未设置得尽可能大,应将其设置得恰到好处,太小,将在执行队列中累积大量待处理的任务,而太大,则会消耗大量系统资源并影响整体表现. 在生产模式下,默认值为25个执行线程.
(要点: 通常,每个CPU的上限为50个线程,根据CPU的数量线性增加. )
为了为执行队列设置理想的线程数,我们可以在域(例如: mydomain)>服务器>服务器实例(例如: myserver)>监视>监视性能中启动管理控制台. 最大负载期间执行队列吞吐量的变化以及队列中等待请求的数量,从中可以确定理想值.
默认执行线程的理想数目由许多因素决定,例如机器CPU性能,总体体系结构,I / O,操作系统的进程调度机制和JVM的线程调度机制. 随着CPU数量的增加,WebLogic可以几乎线性地增加线程数量. 线程数越大,切换线程所花费的时间就越多;线程数越小,CPU不能被充分利用的可能性就越大. 为了获得理想的线程数,需要重复测试. 在测试中,您可以基于25 * CPU的数量进行调整. 当空闲线程较少且CPU利用率较低时,可以适当地增加线程数(每5个增量). 对于PCServer和Windows 2000,最好每个CPU拥有少于50个线程,并且CPU利用率最好约为90%.
通过启动管理控制台,修改域(例如: mydomain)>服务器>服务器实例(例如: myserver)>执行队列> weblogic.kernel.Defalt>配置中的线程数.
b)设置执行队列的溢出条件;
WeblogicServer提供具有自定义溢出条件的默认执行队列或用户定义的执行队列. 当满足此溢出条件时,服务器将其状态更改为“警告”,并分配其他线程来处理队列中的请求以减少队列的长度.

启动管理控制台,在域(例如: mydomain)>服务器>服务器实例(例如: myserver)>执行队列> weblogic.kernel.Defalt>中配置以下内容:
●队列长度: 此值表示可以在执行队列中保留的最大请求数. 默认值为65536. 请勿手动更改此值.
●队列长度阈值百分比: 此值表示溢出情况,此服务器指示队列已溢出之前可以达到的队列长度大小的百分比.
增加线程数: 检测到溢出情况时,它将增加执行队列中的线程数. 如果CPU和内存不够高,请尝试不要更改默认值“ 0”. 因为一旦增加Weblogic,它就不会自动缩小. 尽管它最终可能会在减少请求方面发挥作用,但它将在将来影响程序的性能.
最大线程数: 为了防止创建太多线程,可以通过设置最大线程数来进行控制.
在实际应用场景中,应根据具体情况适当调整以上参数.
c)设置执行队列监视行为
WeblogicServer可以自动检测执行线程何时被“阻塞”. 执行被“阻塞”的线程将无法完成当前工作或执行新请求. 如果执行队列中的所有执行线程都被“阻止”,则Weblogicserver可以将状态更改为“警告”或“紧急”. 如果Weblogic服务器变得“紧急”,则可以通过NodeManager自动关闭并重新启动服务器. 有关详细信息,请参阅: “节点管理器功能”文档.
通过启动管理控制台,在域(例如: mydomain)>服务器>服务器实例(例如: myserver)>配置>下调整以下各项:
阻塞线程的最长时间: 该服务器将线程诊断为阻塞线程之前,线程必须连续工作的时间(以秒为单位). 默认情况下,在连续工作600秒后,WebLogic Server会将线程视为阻塞线程.
线程计时器间隔被阻塞: WebLogic Server定期扫描线程以查看它们是否一直在工作. 在“阻止的线程最大时间”字段中指定的时间长度的时间间隔(以秒为单位). 默认情况下,WebLogic Server将此间隔设置为600秒.
5)调整TCP连接缓冲区的数量;
WebLogic Server使用AcceptBacklog参数指定服务器从操作系统请求的队列大小. 默认值为50. 当系统过载时,该值可能太小,并且在日志中报告ConnectionRefused,这将导致拒绝有效的连接请求. 此时,可以将“接受待办事项”增加25%,直到连接拒绝错误消失. 对于门户类型的应用程序,默认值通常不足.
“登录超时”和“ SSL LoginTimeout”参数指示普通连接和SSL连接的超时时间. 如果客户端连接被服务器中断或SSL容量很大,则可以尝试增加此值.
通过启动管理控制台,可以在域(例如: mydomain)>服务器>服务器实例(例如: myserver)>配置>调整下配置“接受初步连接”.
6)更改Java编译器;
标准Java编译器是javac,但是JSPservlet的编译太慢. 为了提高编译速度,可以使用sj或jikes编译器代替javac编译器. 让我们谈谈更改Java编译器:
启动管理控制台,在域(例如: mydomain)>服务器>服务器实例(例如: myserver)> configure>下更改Java编译器,正常情况下,默认为javac. 输入完整路径,例如: c: \ visualcafe31 \ bin \ sj.exe. 然后,在计划到类路径并填写已编译的Java代码时,打开高级选项并预先计划Java编译器类路径的选项,例如: BEA_HOME \ jdk141_02 \ jre \ lib \ rt.jar
7)使用Webogic Server群集提高性能;
我不会详细介绍如何配置Weblogic群集. 有关详细信息,请参阅: WebLogic Server群集简介.
8)Weblogic EJB调优
由于EJB2.0使用的项目很少,EJB3.0更成熟,因此我将添加这一部分!
9)调整JDBC应用程序
JDBC连接池的调整取决于WebLogicServer线程数,进程数和游标大小的设置. 通常我们在一个线程中使用一个连接,因此连接的数量越少越好. 为了避免双方的资源消耗,建议将连接池的最大值设置为等于或略小于线程数. 同时,为了减少新连接的开销,将最小值和最大值设置为一致.
增加语句CacheSize对于大量使用PreparedStatement对象的应用程序非常有用. WebLogic可以为每个连接缓存这些对象. 默认值为10. 在确保游标大小足够的前提下,可以根据需要增加StatementCache Size. 例如,当您将连接数设置为25并将CacheSize设置为10时,可能需要打开25 * 10 = 250个游标. 不幸的是,当遇到与PreparedStatementCache相关的应用程序错误时,您需要将Cache Size设置为0.
尽管JDBC ConnectionPool提供了许多高级参数,并且在开发模式下更有用,但是大多数参数不需要在生产环境中进行调整. 建议您不要设置测试表,也不需要检查TestReserved连接和Test ReleasedConnections. 当然,如果您的不稳定且断断续续,则可能需要打开上述参数.
最后,让我提及驱动程序类型的选择. 以Oracle为例,Oracle提供了瘦驱动程序和oci驱动程序. 在性能方面,oci驱动程序比精简驱动程序更强大,尤其是对于大数据操作. 但是,在简单的操作中,性能没有太大差异. 随着瘦驱动器的不断改进,这种弱点将得到弥补. 瘦驱动程序的可移植性显然比oci驱动程序强. 因此,建议在正常情况下使用瘦驱动程序. 由于WebLogicserver / bin目录中的类包,最新的驱动程序可能不是最新的,请访问Oracle网站:
10)JSP调整
设置jsp参数pageCheckSeconds = -1;
设置serlet-reload-check = -1或ServletReloadCheckSecs = -1;

设置jsp-param precompile = true可以关闭JSP预编译选项.
标签: weblogic,java,性能调整
公牛给出的参考:
系统的线程池配置考虑以下因素:
1,机器的计算能力;
2,子系统每个线程的计算复杂度;
3,整个系统的余额.
因此,建议例如设置一个标准范围(例如,根据具体情况考虑特定值):
型号: DL380G4 / 2 * 3G / 4Gweblogic调优与监控,线程池大小范围: 80-120(通常设置为100,无特殊情况);
型号: DL380G5 / 2 * 2G / 4G,线程池大小范围: 100-120(通常在没有特殊情况下设置为110);
型号: BL460C / 2 * 3G / 4G,线程池大小范围: 100-120(正常情况下设置为110,无特殊情况);
iceskysl发表于2007年9月18日上午1:50
系统文件描述符数量不足
日志中“打开文件太多”错误
表明系统已达到进程可以同时打开的文件数的限制
ulimit Ca CH可以查看当前限制
ulimit Cn号可以更改当前环境的设置,建议将其设置为至少4096
在Solaris上,可以使用/ usr / proc / bin / pfiles pid查看指定进程的限制以及当前使用的文件描述符的数量.
Solaris上的root用户可以通过/ usr / proc / bin / plimit -n soft,hard pid动态更改进程的文件描述符限制
iceskysl发表于2007年9月18日上午2: 2
系统内存不足
JVM的堆区域大小
由java命令行中的-Xms,-Xmx指定. 建议将最小值和最大值设置为相同.
您可以通过weblogic控制台上的服务器/监视器/性能观察其使用情况
建议生产系统至少具有256M. 通常,可以将其设置为系统剩余物理内存的80%.
iceskysl在2007年9月18日上午11:57#3发布
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-147741-1.html
永世不变苏音么么哒QAQ让我这种耳力特别好的如何生存QuQ