设为首页 收藏本站
查看: 624|回复: 0

[经验分享] 优化WebLogic

[复制链接]

尚未签到

发表于 2017-2-13 12:13:29 | 显示全部楼层 |阅读模式
优化WebLogic 服务器性能参数
WebLogic 配置文件(config.xml)包含了大量很直观的与性能有关的参数,能通过配置环境与应用程序得到很好的优化。基于系统的需要调整这些参数不仅能改善单个点的性能,而且能提高整个应用程序性能的可衡量性。
试着采用下列WebLogic配置方法,或许能使你的系统达到最佳状态:
一 修改运行队列线程数的值。在WebLogic 中队列元素的线程数等于同时占用运行队列的应用程序的数目。当任务加入一个WebLogic 实例,它就被放到执行队列中,然后分配给任务一个线程来运行。线程消耗资源,因此要小心处理这个属性——增加不需要的值,会降低性能。
二,如果可能,使用自带的性能包(NativeIOEnabled=true)。
三,使用特定的应用程序执行队列。
四,使用JDBC连接池时,修改下列属性:
n         驱动名称:使用小的驱动或者jDriver。
n         初始容量:设为与最大容量相同的值。
n         最大容量:其值至少应与线程数相同。
五,把连接池的大小设为与执行队列的线程数相同。
六,设置缓冲。
七,为Servlet和JSP使用多个执行队列。
八,改变JSP默认的Java编译器,javac 比jikes或sj要慢。
 
优化WebLogic
提要:
n         WebLogic启动设置Java参数。
n         设置与性能有关的配置参数。
n         调整开发与产品模式默认值。
n         使用WebLogic“自有的IO”性能包。
n         优化默认执行队列线程。
n         优化连接缓存。
n         如何提高JDBC连接池的性能。
n         设置Java编译器。
n         使用WebLogic集群提高性能。
n         监视WebLogic域。
一、为WebLogic启动设置Java参数
只要启动WebLogic,就必须指定Java参数,简单来说,通过WebLogic.Server域的命令行就可以完成,不过,由于这样启动的过程冗长并且易于出错,BEA 公司推荐你把这个命令写进脚本里。为了简化这个过程,你可以修改样例脚本里的默认值,样例脚本是提供WebLogic启动服务器的。
如果你用配置向导创建你的域,WebLogic启动脚本(startWebLogic.cmd)放在domain-name目录里。默认情况下,这个目录是BEA_HOME\user_projects\domain\domain-nameBEA_HOME表示安装路径,domain-name是在配置模板中设置的域名称。
你需要在这个脚本中修改一些默认的Java参数值,使之适合你的应用环境和程序。在这个文件中主要的性能参数是JAVA_HOMEJava堆的大小。
n         JAVA_HOME的值为JDK所在的位置,如:
set JAVA_HOME=C:\bea\jdk141_03
n         为得到高性能的吞吐量,把Java堆的最小值与最大值设为相等。如:
"%JAVA_HOME%\bin\java" -hotspot -Xms512m -Xmx512m -classpath %CLASSPATH% -
二、设置与性能有关的配置参数
在一个WebLogic域中,配置文件(config.xml)位于与管理服务器通信的机器里,提供WebLogic MBean的长期存储。管理服务器作为连接的中心点,为服务实例与系统管理工具提供服务。域也可以包括其他的WebLogic实例,称之为从服务,主要为应用程序提供服务。
当启动管理服务器是,首先读域配置文件,然后跳过建立在配置文件中管理MBean 默认的属性值,每一次用系统管理工具(不管是命令行界面还是管理控制台)改变一个属性值,它都会被存到相应的管理MBean,并且写进配置文件。
下表列出了config.xml文件中影响服务器性能的参数。
元素
属性
控制台标签
备注
Server
NativeIOEnabled
Native IO Enabled
 
ExecuteQueue
ThreadCount
Thread Count
 
ExecuteQueue
QueueLength
QueueLengthThresholdPercent
ThreadsIncrease
ThreadsMaximum
ThreadPriority
Queue Length
Queue Length Threshold Percent
(队列长限度百分比)
Threads Increase
Threads Maximum
Thread Priority
 
Server
StuckThreadMaxTime
StuckThreadTimerInteral
Stuck Thread Max Time
(堵塞线程的最长时间)
Stuck Thread Timer Interval
(堵塞线程的时间间隔)
 
Server
ThreadPoolPercentSocketReaders
Socket Readers
 
Server
AcceptBacklog
Accept Backlog
(接受缓存数)
 
JDBCConnectionPool
InitialCapacity
MaxCapacity
Initial Capacity
Max Capacity
 
JDBCConnectionPool
StatementCacheSize
Statement Cache Size
(声明高速缓冲大小)
 
 
三、调整开发模式与产品模式默认值
你可以指定域为开发环境或为产品环境。WebLogic会根据你指定的环境类型使用不同的默认值提供不同的服务。
下表列出了两种模式下的默认值
优化参数
开发模式
产品模式
Execute Queue: ThreadCount
15 threads
25 threads
JDBC Connection Pool: MaxCapacity
15 connections
25 connections
31更改运行时模式
在创建了一个域后,按下列步骤可以更改域里所有服务的的运行时模式:
 
1.为更改运行在一个WebLogic主机上的所有域的运行时模式,用文本编辑器打开WL_HOME\common\bin\commEnv.cmd(Windows) 或者WL_HOME\common\bin\commEnv.sh (UNIX)WL_HOME是安装WebLogic的路径。
为指定的域更改运行时模式,就用文本编辑器打开domain-name\StartWebLogic.cmd (Windows) or domain-name\StartWebLogic.sh (UNIX)domain-name为创建的域的目录。
2.在这个脚本中,更改PRODUCTION_MODE的值,如果你要服务器运行在产品模式,指定其值为TRUE
3.重启所有的服务器。
32两种模式的不同
下表列出了开发模式与产品模式几种关键项的区别:
功用名称
开发模式
产品模式
SSL
你可以使用WebLogic安全服务提供的验证数字证书。有这些证书,你开发的应用程序会在SSL保护的环境下运行。
如果你使用验证数字证书,会收到警告信息。
部署应用程序
WEBLOGIC实例会自动部署和更新位于domain_name/applications目录下的应用程序(domain_name为域的名称)。
不能使用自动部署功能,必须使用WebLogic控制台或者WebLogiceblogic Deployer工具。
Log File Rotation
启动服务器后,服务器自动重命名本地日志文件为server-name.log.n,为了滞留的session ,只要日志文件的达到500kb,日志文件就会滚转一次。
当日志文件达到500kb,就会滚转。
Execute Queues
默认的执行线程为15
 
默认的执行线程为25
JDBC Connection Pool Capacity
默认的容量为15
默认的容量为25
四、使用WebLogic“自有的IO”性能包
当你使用自有的性能包,测试基准就表明了主要性能的提高。性能包采用最优化的平台及多线程的Socket去提高服务器的性能。例如,本地Socket 读的多线程有自己的执行队列而不需要借用默认的执行队列线程,这样可以让默认执行线程很从容去处理应用程序。
不过,如果你一定要用纯Java socket读在主机上运行,你仍然可以通过配置每个服务器实例和客户机中适当的socket读的线程数量,来提高socket通信的性能。
设置性能包的操作方法:
默认情况下,装载在config.xml中的是自有的性能包。为了验证这个设置,在配置文件中检查NativeIOEnabled属性是否设为“true”(NativeIOEnabled=true)。
你也可以通过管理控制台来验证,步骤如下:
1    启动管理服务器。
2    访问管理控制台。
3    展开左边面板的Servers 节点,显示域服务。
4    点击你要配置的服务实例。
5    选择Configuration>Tuning tab
6    如果 Enable Native IO复选框没有被选择,选中即可。
7    点击Apply
8    重启服务器。
 
 
五、优化默认执行队列线程
默认情况下,一个新的WebLogic实例配置了一个开发模式执行队列,weblogic.kernel.default,它包含15个线程。另外,WebLogic提供了2个预配置队列:
n       weblogic.admin.HTTP——只在管理服务器上才有,这个队列供与管理控制台的通信用,你不能再配置它。
n       weblogic.admin.RMI——管理服务器和被管理服务器上都有这个队列,它是供管理的交通之用,也不能再配置它。
如果你不配置额外的执行队列,并且指定应用给这些队列,web 应用程序和RMI对象就使用默认的队列weblogic.kernel.default
注意;如果自带的执行包没有在你的平台上使用,你可能需要调整默认的执行队列线程数和担任socket读的线程的百分比,去实现最佳性能。
51你应该更改默认的线程数吗?
增加更多的线程到默认的执行队列并不意味着你能处理更多的工作。即使增加更多的线程,仍然被处理器的能力限制。因为线程消耗内存,所以增加线程数属性的值不必要的降低了性能。一个高的执行线程数导致更多的内存被占用并且增加了上下文转换程序,它也会降低性能。
线程数属性的值与应用程序处理的工作的类型关系密切。例如,如果你的客户应用程序比较小,通过远程调用处理的工作较多,这样,客户端会花费更多的时间连接,因此,与能完成大量客户端任务的客户应用程序相比,会需要更多的线程数。
如果你的工作不需要使用超过15个线程(开发模式默认)或者25个线程(产品模式默认),就不要改变这个属性的值。通常,如果你的应用程序访问数据库花很长时间才返回结果,与访问数据库很短时间就返回的应用程序比较,你会需要更多的执行线程。从后者来看,用少点的线程数可能提高性能。
52需要修改默认线程数的情形
为了给执行队列决定一个理想的线程数,当队列中所有应用程序都运行在最大负荷的情况下,监视队列的吞吐量。增加线程数,重复负载测试,直到达到最佳的吞吐量。(在某些情况下,增加线程数将产生足够多的上下文转换程序,使得队列中的吞吐量开始减少。)
注意:WebLogic管理控制台显示的是所有服务器执行队列累积的吞吐量。为了得到这个值,后面将会介绍。
下表列出了在WebLogic 域中调整的线程及与CPU数量相关的情形,这些情况也假定WebLogic运行在最大负荷下,并且使用默认的执行队列满足所有的线程的请求。如果你配置了额外的执行队列并指派了应用程序到具体的队列,就需要依据一个个连接池得到结果。
如果…
结果
应该:
线程数<CPU的数量
线程数太少,如果:
CPU正等着工作,但有工作被完成。
CPU利用率不能达到100%。
[/tr]

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-341533-1-1.html 上篇帖子: WebLogic ClassLoader 下篇帖子: weblogic重启
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表