weblogic参数优化c 比weblogic参数优化9优化了哪些

weblogic10性能优化及相关技巧_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
weblogic10性能优化及相关技巧
&&本文适合有一定weblogic应用基础的读者,文章内容简单实用,没有太多的理论知识,全是干货。文章内容是笔者在实际工作当中经常用到的一些技巧,能在实际工作当中起到指导作用。
阅读已结束,下载文档到电脑
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,方便使用
还剩14页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢【图文】WebLogic性能调优和集群部署_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
WebLogic性能调优和集群部署
&&WebLogic性能调优和集群部署
大小:4.22MB
登录百度文库,专享文档复制特权,财富值每天免费拿!
你可能喜欢博客分类:
1)JSP2.0(tomcat5.x)中,即便你在a.jsp中&%@ include file="header1.jsp" %&,且header1.jsp中有&%@ page contentType="text/ charset=UTF-8" %&指令,你在a.jsp中的page指令还是必须有,如果没有,外层页面会有乱码。
tomcat4.x中,可以两个文件都有,也可以只有一个文件中有。
weblogic8.1中,必须只能有一个文件中有;如果两个文件都有,会后台不报错,但 IE中是空白页。
2) taglib指令也和 page指令同样的规则。 我是比较了好久不同的版本才发现这个问题,可气的是weblogic后台
3)weblogic8.1中,如果JSP中UTF-8,则必须在web.xml中加入
&context-param&&param-name&weblogic.jsp.encoding&/param-name&&param-value&UTF-8&/param-value&&/context-param&
如果没有这个配置,weblogic的jspc 集体罢
工,而且后台不报错,但只能显示html,对JSP无效。
4) 在weblogic8.1中,对稍微复杂的JSP(这里是指非纯HTML的JSP文件),必须使用
&%@ include file="header1.jsp" %&&%@ include file="header2.jsp" %& 动态编译,而不能使用
&jsp:include page="footer.jsp" /&静态编译。
这个是weblogic的jspc的问题。
转载配置详解:
用Eclipse MyEclipse WebLogic8.1开发第一个Web程序 1.安装jre Eclipse虽然由java开发,但本身并不自带jre。所以你必须先自己安装,去下载最新J2SE1.4.2_03的jre安装文件j2re-1_4_2_03-windows-i586-p.exe。安装成功后,重启机器,并将jre的bin文件夹路径添加到系统环境变量PATH中,如:C:\Program Files\Java\j2re1.4.2_03\bin。 2.安装Eclipse2.1.2 Eclipse目前最新的stable已经Build到了3.0M5,但是这个版本的LanguagePackFeature还没有推出,直接用LanguagePackFeature2.1.2有问题。故建议用Eclipse稳定版本2.1.2,配上LanguagePackFeature2.1.2后可实现全中文界面。Eclipse SDK 2.1.2和其LanguagePackFeature下载地址为。 Eclipse的安装非常简单,只需解压缩eclipse-SDK-2.1.2-win32.zip,将文件夹eclipse拷贝到你想要的地方。然后双击eclipse.exe,即开始编译并初始化Eclipse,完毕自动进入Eclipse。 下面开始安装LanguagePackFeature。 (1)解压缩eclipse2.1.2.1-SDK-win32-LanguagePackFeature.zip。 (2)启动Eclipse,选择“Help\Software Updates\Update Manager”菜单,使主界面切换到安装更新透视图画面。 (3)在窗体左下方的Feature Updates视图中单击鼠标右键,选择“New\Site Bookmark”菜单,弹出New Site Bookmark对话框。在Name处随便输入什么名字,如:LanguagePack。URL处输入前面(1)解压缩后文件夹路径,如:file: E:\开发工具\Eclipse\eclipse2.1.2.1-SDK-win32-LanguagePackFeature\eclipse。完毕按下Finish按钮,关闭对话框。这时Feature Updates视图中就会出现一项“LanguagePack”。展开该项,就可以看到很多语言包插件。 (4)选择一个语言包,如:Eclipse Java Development 工具语言包 1.2.1.2,单击右边视图中的Install Now按钮,即开始安装。安装成功后,Eclipse会重新启动。依次类推,逐个安装所有的语言包插件。在整个安装过程中你会发现所有界面都变成了简体中文。 3.安装MyEclipse2.7RC2 去下载最新的MyEclipse安装文件myeclipse_Enterprise_Workbench_Installer_.exe。在安装过程中需要提供Eclipse所在文件夹的路径,安装成功后会自动进入Eclipse。这时你就会发现主菜单中多出一项“MyEclipse”,我们再选择“窗口\首选项”菜单,打开首选项对话框。展开MyEclipse结点,单击Subscription子项,可以看到这是个30天限制版。不过你可以到上下载破解程序MyEclipse_Enterprise_Workbench_v3.6.4.zip。运行zip中的keygen.exe,随便输入一个用户名,然后选择2.6.4版本,单击Generate按钮生成Subscription Code。将用户名和Subscription Code输入到上述的Subscriber和Subscription Code文本框中,点击“应用”按钮即可看到信息Number of Licenses:unlimited,至此你的MyEclipse已被破解。 4.安装WebLogic8.1 安装WebLogic比较容易,在这里就不再累述了,大家可以参阅相关文档。现在着重讲一下WebLogic的配置,因为后面在配置MyEclipse时将用到这里的有关信息。 (1)运行开始\程序\BEA WebLogic Platform 8.1\Configuration Wizard。 (2)选择Create a new WebLogic configuration,下一步。 (3)选择Basic WebLogic Server Domain,下一步。 (4)选择Custom,下一步。 (5)在Name处输入admin,Listen Address处选择localhost,以下两个Port均采用默认值,下一步。 (6)选择Skip跳过Multiple Servers,Clusters,and Machines Options,下一步。 (7)选择Skip跳过JDBC连接池的配置(注:JDBC连接池的配置可以在启动WebLogic后到控制台上进行,大家可以参阅相关文档),下一步。 (选择Skip跳过JMS的配置(同样留到控制台上做),下一步。 (9)继续跳过,下一步。 (10)选择Yes,下一步。 (11)在User页点击Add,随意添加一个用户user,密码,下一步。 (12)将用户user分配到Administrators组(还可以同时分配到其它组,方法是选中待加入的组,然后勾中user前的复选框即可),下一步。 (13)直接点击下一步跳过。 (14)设置用户user的权限,选中Admin,勾中user前的复选框(要指定其它权限依次类推),下一步。 (15)采用默认设置,直接点击下一步跳过。 (16)同样采用默认设置,直接点击下一步跳过。 (17)配置JDK,采用WebLogic的默认值,直接点击下一步跳过。 (1最后在Configuration Name处输入dev,然后点击Create生成配置,完毕点击Done关闭Configuration Wizard对话框。 5.配置MyEclipse的WebLogic服务器 MyEclipse默认的应用服务器为JBoss3,这里我们使用WebLogic8.1。启动Eclipse,选择“窗口\首选项”菜单,打开首选项对话框。展开MyEclipse下的Application Servers结点,点击JBoss 3,选中右面的Disable单选按钮,停用JBoss 3。然后点击WebLogic 8,选中右边的Enable单选按钮,启用WebLogic服务器。同时下面的配置如下: (1)BEA home directory:D:\BEA。假定WebLogic安装在D:\BEA文件夹中。 (2)WebLogic installation directory:D:\BEA\weblogic81。 (3)Admin username:user。 (4)Admin password:。 (5)Execution domain root:D:\BEA\user_projects\dev。 (6)Execution domain name:dev。 (7)Execution server name:admin。 (8)Hostname:PortNumber:localhost:7001。 (9)Security policy file:D:\BEA\weblogic81\server\lib\weblogic.policy。 (10)JAAS login configuration file:省略。 接着展开WebLogic 8结点,点击JDK,在右边的WLS JDK name处选择WebLogic 8的默认JDK。这里组合框中缺省为j2re1.4.2_03,即之前单独安装的jre。单击Add按钮,弹出WebLogic & Add JVM对话框,在JRE名称处随便输入一个名字,如jre1.4.1_02。然后在JRE主目录处选择WebLogic安装文件夹中的JDK文件夹,如D:\BEA\jdk141_02,程序会自动填充Javadoc URL文本框和JRE系统库列表框。单击确定按钮关闭对话框。这时候就可以在WLS JDK name组合框中选择jre1.4.1_02了。之后还要在下面的Optional Java VM arguments,如-ms64m -mx64m -Djava.library.path="D:/BEA/weblogic81/server/bin" -Dweblogic.management.discover=false -Dweblogic.ProductionModeEnabled=false 最后点击Paths,在右边的Prepend to classpath列表框中,通过Add JAR/ZIP按钮,加入D:\BEA\weblogic81\server\lib\weblogic.jar、D:\BEA\weblogic81\server\lib\webservices.jar。如果用到数据库,还需把数据库的驱动类库加进来,这里我们用WebLogic自带的SQL Server数据库驱动库D:\BEA\weblogic81\server\lib\mssqlserver4v65.jar。 至此,MyEclipse中WebLogic8的配置工作就算完成了。下面可以看看在Eclipse中能否启动WebLogic了?自从安装了MyEclipse之后,Eclipse工具栏中就会有一个Run/Stop Servers下拉按钮。点击该按钮的下拉部分,选择“WebLogic 8\Start”菜单,即开始启动WebLogic了。通过查看下面的控制台消息,就可以知道启动是否成功,或有什么异常发生。停止WebLogic可选择“WebLogic\Stop”菜单。 6.创建第一个Web程序——HelloWorld 启动Eclipse: (1)选择“文件\新建\项目”菜单,打开新建项目向导。首先选择左边的J2EE,然后选择右边的Web Module Project,下一步在Project Name处理输入HelloWorld,点击完成按钮,生成项目文件。包视图结构如下: HelloWorld ├─src ├─JRE系统库[j2re1.4.2_03] ├─J2EE 1.3 Library Container └─WebRoot (2)点击src,单击鼠标右键,选择“新建\Servlet”菜单,创建HelloWorld Servlet。在包名称处输入servlet,在Servlet名称处输入HelloWorld,去掉Create doGet复选框中的勾,下一步,采用默认设置,点击完成按钮。修改doPost方法代码如下: response.setContentType("text/xml"); PrintWriter out = response.getWriter(); out.println("Hello World"); out.flush(); out.close(); (3)点击WebRoot,单击鼠标右键,选择“新建\HTML”菜单,创建一个HTML页面。将File Name改为index.html,点击完成按钮。将下列代码替换&body&、&/body&之间的代码: &script language="vbscript"& function bytes2bstr(vin) strreturn = "" for k = 1 to lenb(vin) thischarcode = ascb(midb(vin,k,1)) if thischarcode & &h80 then strreturn = strreturn & chr(thischarcode) else nextcharcode = ascb(midb(vin,k+1,1)) strreturn = strreturn & chr(clng(thischarcode) * &h100 + cint(nextcharcode)) k = k + 1 end if next bytes2bstr = strreturn end function &/script& &script language="JavaScript"& var xml= var XMLSender=new ActiveXObject("Microsoft.XMLHTTP"); var url="?"; XMLSender.Open("POST",url,false); XMLSender.setRequestHeader("Content-Type","text/ charset=UTF-8"); XMLSender.send(xml); var msg=bytes2bstr(XMLSender.responsebody); document.writeln(msg); &/script& (4)展开WEB-INF结点,双击打开web.xml,在&/servlet-mapping&下面加入下列语句: &welcome-file-list& &welcome-file&index.html&/welcome-file& &/welcome-file-list& (5)点击HelloWorld,单击鼠标右键,选择“MyEclipse\Add and Remove Project Deployments…”菜单,弹出Project Deployments对话框,在Project组合框中选择HelloWorld,单击Add,在Server组合框中选择WebLogic 8,点击完成按钮回到Project Deployments对话框,这时服务器信息就会显示在Deployments列表中,点击确定按钮关闭对话框。 (6)点击工具栏上的Run/Stop Servers下拉按钮,选择“WebLogic 8\Start”菜单,启动服务器。 (7)运行IE,在地址栏输入,即可在页面中看到“Hello World”字样。 配置 MyEclipse 的 WebLogic 9 服务器
启动 Eclipse,选择“Window -& Preferences”菜单,打开首选项对话框。展开 MyEclipse 下的 Application Servers 节点,点击 WebLogic 9,选中右边的 Enable 单选按钮,启用 WebLogic 服务器。配置如下: ①BEA home directory:C:\BEA(假定 WebLogic 安装在 C:\BEA 目录中) ②WebLogic installation directory:C:\BEA\WebLogic92 ③Admin username:user(来自 WebLogic 中的配置) ④Admin password:(来自 WebLogic 中的配置) ⑤Execution domain root:C:\BEA\user_projects\domains\mydomain ⑥Execution server name:AdminServer ⑦Security policy file:C:\BEA\WebLogic92\server\lib\weblogic.policy ⑧JAAS login configuration file:(Null)
接着展开 WebLogic 9 节点,点击 JDK,在右边的 WLS JDK name 处选择 WebLogic 9 的默认 JDK。这里组合框中缺省为单独安装的 JRE。单击 Add 按钮,弹出 WebLogic -& Add JVM 对话框,在 JRE 主目录处选择 WebLogic 安装文件夹中的 JDK 文件夹,我的版本为 C:\BEA\jdk150_04,程序会自动填充其他选项。单击确定按钮关闭对话框。这时候就可以在 WLS JDK name 组合框中选择 jdk150_04 了。
至此,MyEclipse 中 WebLogic 9 的配置工作就算完成了。下面可以看看在 Eclipse 中能否启动 WebLogic 服务器了?安装了 MyEclipse 之后,Eclipse 工具栏中就会有一个“Run/Stop/Restart MyEclipse Application Servers”下拉按钮。点击该按钮的下拉部分,选择“WebLogic 9 -& Start”菜单,即开始启动 WebLogic 了。通过查看控制台的消息,就可以检查启动是否成功,或发生什么异常。
点击 Paths,在右边的 Prepend to classpath 列表框中,通过 Add JAR/ZIP 按钮,加入: C:\BEA\WebLogic81\server\lib\weblogic.jar C:\BEA\WebLogic81\server\lib\webservices.jar 如果要用到数据库,还需要把数据库的驱动类库添加进来,这里我们用 WebLogic 自带的 SQL Server 数据库驱动类库: C:\BEA\WebLogic81\server\lib\mssqlserver4v65.jar
对常见启动问题
出现 The WebLogic Server did not start up properly. 提示和 java.io.InvalidClassException 异常的问题,通常是因为 JDK 选择不当引起的,在 MyEclipse 的配置中选择的 JDK 应该必须与配置 WebLogic 时选择的 JDK 相同。当选择默认 JDK 时,也可以在 MyEclipse 中配置 BEA 的 jrockit90_150_04 这个 JDK。 本贴来自天极网群乐社区--/group/review-9452643.html
chengyue2007
浏览: 926792 次
来自: 大连
推荐用StratoIO打印控件,支持网页、URL、图片、PD、 ...
推荐用StratoIO打印控件,浏览器和系统的兼容性都很好,而 ...
大哥写的很实在,受教了,提前祝你元旦快乐!
请问WIN7 64位,调用报错Exception in thr ...
好东西,解决问题
(window.slotbydup=window.slotbydup || []).push({
id: '4773203',
container: s,
size: '200,200',
display: 'inlay-fix'注:在下面做的介绍都是以Weblogic8.1为例的,其它版本的Weblogic可能会有些许不同。
1) 设置JAVA参数;
a) 编辑Weblogic Server启动脚本文件;
BEA_HOME\user_projects\domains\domain-name\startWebLogic.cmd(startWebLogic.sh on Unix)&
BEA_HOME\user_projects\domains\domain-name\startManaged.cmd(startManagedWebLogic.sh on Unix) --这个是做集群的时候用的
b) 编辑set JAVA_OPTIONS命令,如:set JAVA_OPTIONS=-Xms256m CXmx256m;
(在UNIX下把MEM_ARGS=&-Xms1024m -Xmx1024m -Xmn128m&加到上述两个.sh文件中即可)
c) 保存,重启即可。
注:在WebLogic中,为了获得更好的性能,BEA公司推荐最小Java堆等于最大Java堆。
(这个偶们的设置都是1024M的,反正偶们内存大大的4G呢)
2) 开发模式 vs. 产品模式;
开发模式和产品模式的一些参数的默认值不同,可能会对性能造成影响,下面是对性能有影响的参数列表:
参数 开发模式默认值 产品模式默认值
Execute Queue: Thread Count 15 threads 25 threads
JDBC Connection Pool: MaxCapacity 15 connnections 25 connections
通过启动管理控制台,在域(如:mydomain)& 配置 & 常规选择产品模式。
(这个在创建weblogic的domain的时候是有选择的,选择“产品”模式就可以了,如果后期需要修改,可以按照上面的方法修改)
3) 尽量开启本地I/O;
通过启动管理控制台,在域(如:mydomain)& 服务器 & server实例(如:myserver)& 配置 & 调整选择启用本地I/O。
注:此值也可通过手动的修改config.xml配置文件。
(这个没有试验过,不晓得有什么效果和好处,知道的告诉偶下下。)
4) 调优执行队列线程;
a) 修改默认执行线程数
在这里,执行队列的线程数表示执行队列能够同时执行的操作的数量。但此值不是设的越大越好,应该恰到好处的去设置它,太小了,执行队列中将会积累很多待处理的任务,太大了,则会消耗大量的系统资源从而影响整体的性能。在产品模式下默认为25个执行线程。
(点:一般来说,其上限是每个CPU对应50个线程,其按照CPU个数线性增长.)
为了设置理想的执行队列的线程数,我们可以启动管理控制台,在域(如:mydomain)& 服务器 & server实例(如:myserver)& 监视 & 性能中监控最大负载时执行队列的吞吐量和队列中的等待请求数,据此确定理想的数值。
理想的默认执行线程数是由多方面的因素决定的,比如机器CPU性能、总体体系架构、I/O、操作系统的进程调度机制、JVM的线程调度机制。随着CPU个数的增加,WebLogic可以近乎线性地提高线程数。线程数越多,花费在线程切换的时间也就越多;线程数越小,CPU可能无法得到充分的利用。为获取一个理想的线程数,需要经过反复的测试。在测试中,可以以25*CPU个数为基准进行调整。当空闲线程较少,CPU利用率较低时,可以适当增加线程数的大小(每五个递增)。对于PC Server和Windows 2000,则最好每个CPU小于50个线程,以CPU利用率为90%左右为最佳。
通过启动管理控制台,在域(如:mydomain)& 服务器 & server实例(如:myserver)& Execute Queue & weblogic.kernel.Defalt & 配置中修改线程计数。
b) 设定执行队列的溢出条件;
&&& Weblogic Server提供给默认的执行队列或用户自定义的执行队列自定义溢出条件的功能,当满足此溢出条件时,服务器改变其状态为“警告”状态,并且额外的再分配一些线程去处理在队列中的请求,而达到降低队列长度的目的。
&&& 通过启动管理控制台,在域(如:mydomain)& 服务器 & server实例(如:myserver)& Execute Queue & weblogic.kernel.Defalt & 配置下面几项:
●队列长度:此值表示执行队列中可容纳的最大请求数,默认值是65536,最后不要手动改变此值。
●队列长度阈值百分比:此值表示溢出条件,在此服务器指出队列溢出之前可以达到的队列长度大小的百分比。
●线程数增加:当检测到溢出条件时,将增加到执行队列中的线程数量。如果CPU和内存不是足够的高,尽量不要改变默认值“0”。因为Weblogic一旦增加后不会自动缩减,虽然最终可能确实起到了降低请求的作用,但在将来的运行中将影响程序的性能。
●最大线程数:为了防止创建过多的线程数量,可以通过设定最大的线程数进行控制。
在实际的应用场景中,应根据具体情况适当的调整以上参数。
c) 设定执行队列监测行为
Weblogic Server能够自动监测到当一个执行线程变为“阻塞”。变为“阻塞”状态的执行线程将无法完成当前的工作,也无法再执行新请求。如果执行队列中的所有执行线程都变为“阻塞”状态,Weblogic server可能改变状态为“警告”或“严重”状态。如果Weblogic server变为“严重”状态,可以通过Node Manager来自动关闭此服务器并重新启动它。具体请参考:Node Manager Capabilities文档。
通过启动管理控制台,在域(如:mydomain)& 服务器 & server实例(如:myserver)&配置 & 调整下可配置下面几项:
●阻塞线程最长时间:在此服务器将线程诊断为阻塞线程之前,线程必须连续工作的时间长度(秒)。默认情况下,WebLogic Server 认为线程在连续工作 600 秒后成为阻塞线程。
●阻塞线程计时器间隔:WebLogic Server 定期扫描线程以查看它们是否已经连续工作了 &阻塞线程最长时间& 字段中指定的时间长度的间隔时间(秒)。默认情况下,WebLogic Server 将此时间间隔设置为 600 秒。
5) 调优TCP连接缓存数;
WebLogic Server用Accept Backlog参数规定服务器向操作系统请求的队列大小,默认值为50。当系统重载负荷时,这个值可能过小,日志中报Connection Refused,导致有效连接请求遭到拒绝,此时可以提高Accept Backlog 25%直到连接拒绝错误消失。对于Portal类型的应用,默认值往往是不够的。
Login Timeout和SSL Login Timeout参数表示普通连接和SSL连接的超时时间,如果客户连接被服务器中断或者SSL容量大,可以尝试增加该值。
通过启动管理控制台,在域(如:mydomain)& 服务器 & server实例(如:myserver)&配置 & 调整下可配置“接受预备连接”。
6) 改变Java编译器;
标准的Java编译器是javac,但编译JSP servlets速度太慢,为了提高编译速度,可以使用sj或jikes编译器取代javac编译器。下面说说更改Java编译器:
通过启动管理控制台,在域(如:mydomain)& 服务器 & server实例(如:myserver)&配置 & 常规下改变Java 编译器,默认为javac。输入完整路径,如:c:\visualcafe31\bin\sj.exe。然后打开高级选项,在预规划到类路径填写编译 Java 代码时为 Java 编译器类路径预规划的选项,如:BEA_HOME\jdk141_02\jre\lib\rt.jar。
7) 使用Webogic Server集群提高性能;
具体关于如何配置Weblogic集群,我就不细说了。详情可参考:Introduction to WebLogic Server Clustering。
8) Weblogic EJB调优
由于EJB2.0已经很少项目在用了,EJB3.0再成熟一点,我再补充这一部分吧!
9) JDBC应用调优
JDBC Connection Pool的调优受制于WebLogic Server线程数的设置和数据库进程数,游标的大小。通常我们在一个线程中使用一个连接,所以连接数并不是越多越好,为避免两边的资源消耗,建议设置连接池的最大值等于或者略小于线程数。同时为了减少新建连接的开销,将最小值和最大值设为一致。
增加Statement Cache Size对于大量使用PreparedStatement对象的应用程序很有帮助,WebLogic能够为每一个连接缓存这些对象,此值默认为10。在保证数据库游标大小足够的前提下,可以根据需要提高Statement Cache Size。比如当你设置连接数为25,Cache Size为10时,数据库可能需要打开25*10=250个游标。不幸的是,当遇到与PreparedStatement Cache有关的应用程序错误时,你需要将Cache Size设置为0。
尽管JDBC Connection Pool提供了很多高级参数,在开发模式下比较有用,但大部分在生产环境下不需调整。这里建议最好不要设置测试表, 同时Test Reserved Connections和Test Released Connections也无需勾上。 当然如果你的数据库不稳定,时断时续,你就可能需要上述的参数打开。
最后提一下驱动程序类型的选择,以Oracle为例,Oracle提供thin驱动和oci驱动,从性能上来讲,oci驱动强于thin驱动,特别是大数据量的操作。但在简单的数据库操作中,性能相差不大,随着thin驱动的不断改进,这一弱势将得到弥补。而thin驱动的移植性明显强于oci驱动。所以在通常情况下建议使用thin驱动。而最新驱动器由于WebLogic server/bin目录下的类包可能不是最新的,请以Oracle网站为准: /technology/software/tech/java/sqlj_jdbc/htdocs/jdbc9201.html。
10) JSP调优
设置jsp-param pageCheckSeconds=-1;
设置serlet-reload-check=-1或ServletReloadCheckSecs=-1;
设置jsp-param precompile=true,关闭JSP预编译选项。
Tags: weblogic, java, 性能调优
一个牛人给出的参考:
系统的线程池配置考虑以下因素:
1,& 机器的计算能力;
2,& 子系统每个线程的计算复杂性;
3,& 整个系统的均衡性。
因此,建议设定一个标准范围,例如(举例说明,具体数值根据情况斟酌):
机型:DL380G4/2*3G/4G,线程池大小范围:80-120(无特殊情况一般设为100);
机型:DL380G5/2*2G/4G,线程池大小范围:100-120(无特殊情况一般设为110);
机型:BL460C/2*3G/4G,线程池大小范围:100-120(无特殊情况一般设为110);
Post by iceskysl on 2007, September 18, 11:50 AM& #1
系统文件描述符数目不足
Log中有“too many open files”的错误
表示达到了系统对一个进程能同时打开的文件数的限制
ulimit Ca CH 可以查看当前限制
ulimit Cn number可以来更改当前环境的设置,建议至少设到4096
Solaris上可以通过/usr/proc/bin/pfiles pid来查看指定进程的限制和当前使用的file descriptor数目
Solaris上root用户可以通过/usr/proc/bin/plimit -n soft,hard pid 来动态更改进程的文件描述符的限制
Post by iceskysl on 2007, September 18, 11:55 AM& #2
系统内存不足
JVM的heap区大小
通过java命令行中的-Xms,-Xmx指定,建议最小值和最大值设成一样
可以通过weblogic console上server/monitor/performance来观察其使用情况
建议生产系统最少256M,一般情况下可以设置为系统剩余物理内存的80%
Post by iceskysl on 2007, September 18, 11:57 AM& #3
failureException: Error initializing Embedded LDAP Server - with nested exception: [java.lang.ClassCastException] java.lang.ClassCastException at weblogic.ldap.EmbeddedLDAP.initialize(EmbeddedLDAP.java:266)
改权限chown -R weblogic.weblogic /home/webogic
Post by iceskysl on 2007, September 18, 4:37 PM& #4
修改文件句柄数:
1、修改/etc/security/limits.conf,需要root权限
vi /etc/security/limits.conf
# 确认包含下面的内容:
*&&&&&&&&&&&&&&& soft&&& nofile&&&&&&&&& 8192
*&&&&&&&&&&&&&&& hard&&& nofile&&&&&&&&& 8192
修改后,su到目标用户,用ulimit CHn和ulimit CSn确认修改已生效
2、修改startManagedWebLogic.sh,找到resetFD那行,注释掉。然后在脚本最后启动JAVA进程的前面加上下面的内容,检查系统文件句柄数是否修改:
echo &-----------------------------------------------&
echo &Begin to check the file descriptor limit&
fd=`ulimit -n`
if [ $fd -lt 8192 ];
&& echo &Fatal Error!&
&& echo &The file descriptor limit is only '&$fd&'!&
&& echo &Please make it more than 8192!&
echo &OK, the file descriptor limit is& $fd
echo &-----------------------------------------------&
Post by iceskysl on 2007, September 18, 5:26 PM& #5
查看文件句柄数:
/usr/sbin/lsof -n|awk '{print $2}'|sort|uniq -c |sort -nr|more
Post by iceskysl on 2007, September 20, 10:53 AM& #6
我遇到的weblogic运行600秒超时主要有两个原因:
1)SQL语句运行时线程阻塞
2)out.println语句运行时线程阻塞
第一种问题的解决办法,编写一个java桌面应用,测试运行的SQL语句是否可以正常运行,并返还正确结果。若无法正常运行,就需要通过视图或其他的方式调整和优化SQL语句。
这里需要注意:数据库的不同版本可能需要相应版本的数据库驱动。SQL语句不能正常运行,通常都是由驱动引起的。
第二种情况的解决办法,weblogic或其他的中间件产品,服务端大多都会使用缓冲发送数据机制,当数据量大的时候会分批发送出去,若数据中出现过多的回车(\n或直接的回车)就会有一定的几率出线线程阻塞的情况,解决办法就是消除回车符,尽量使输出的数据是连续的字符流。
Post by iceskysl on 2007, September 22, 9:39 PM& #7
分析线程堆栈:
.cn/archiver/tid-405.html
Post by iceskysl on 2007, September 23, 2:13 AM& #8
/portal/html/testing-technique/load-test/.html
Post by iceskysl on 2007, September 23, 2:25 AM& #9
最近生产环境下的系统经常出现以下的错误提示,
####& 下午04时07分20秒 CST& &Error& &WebLogicServer& &gis& &portalServer& &weblogic.health.CoreHealthMonitor& &&WLS Kernel&& && &BEA-000337& &ExecuteThread: '5' for queue: 'default' has been busy for &1,165& seconds working on the request &Http Request:
/tzzmWeb/saye/regie/census/customertoMtn/custcheckout.do&, which is more than the configured time (StuckThreadMaxTime) of &600& seconds.&
该问题是由于处理custcheckout.do请求超时引起的,系统配置的处理时间是600s,但是该线程处理了1165s后,仍然没将请求释放,所以报了这个错误。如果发送该请求较多,很有可能会导致weblogic的线程阻塞,严重会引起weblogic挂起现象。
可以通过以下几种方法解决:
1)修改StuckThreadMaxTime参数,将默认的600s改成1200s,或者其它适合的值。
2)增大线程数,防止线程阻塞问题。
3)优化程序,减少处理时间。
如何修改weblogic默认线程池大小?
weblogic 9开始使用了线程自调优技术。通过以下方法设置,可以指定默认线程的最大最小值。
方法一:修改启动脚本参数
在启动脚本中,增加如下参数
%JAVA_HOME%\bin\java %JAVA_VM% %MEM_ARGS% %JAVA_OPTIONS%
-Dweblogic.Name=%SERVER_NAME% -Djava.security.policy=%WL_HOME%\server\lib\weblogic.policy
-Dweblogic.threadpool.MinPoolSize=100 -Dweblogic.threadpool.MaxPoolSize=500
%PROXY_SETTINGS% %SERVER_CLASS%
方法二:修改config.xml
在config.xml中,增加如下参数
&name&AdminServer&/name&
&self-tuning-thread-pool-size-min&100&/self-tuning-thread-pool-size-min&
&self-tuning-thread-pool-size-max&500&/self-tuning-thread-pool-size-max&
&listen-port&7923&/listen-port&
&listen-address&&/listen-address&
经过测试,以上两种方法适合weblogic9,10,11g
使用Nativate IO
[server_name]-&Configuration-&Tuning 中Enable Native IO 勾选。
SocketReaders: 在执行线程中,用做Socket Readers的百分比
Maximum Open Sockets:最多可以使用的Socket数量
Accept Backlog:允许缓冲在等待队列中的TCP连接数量,超过该值的TCP请求将被拒绝。默认值:50。增加策略:每次增加25%,只到不在出现拒绝服务提示。
JDBC优化:
Shrink Frequency=0
Test Connections
On Reserve &=false
Test&Frequency=0
Pinned-To-Thread =true
本文已收录于以下专栏:
相关文章推荐
1、数据源性能优化
1、1连接池参数配置
登录weblogic控制台,占击“connection pool”按钮进入数据库连接池配置页面。数据源性源优化参数说明:
1)初始容量(要在创建连接缓冲池时创...
BEA WebLogic平台下J2EE调优攻略(收藏)默认分类 10:16:56阅读360评论0
字号:大中小 订阅随着近来J2EE软件广泛地应用于各行各业,系统调优也越来越引起...
写这篇文章是因为今天旁听了一课,觉得学到了不少,应该记录一下。
其实优化应该基于压力测试结果来进行,但是下面几项可以提前做。
一、jvm启动参数
-Xms1024m -...
一.JVM内存的设置的原理
默认的java虚拟机的大小比较小,在对大数据进行处理时java就会报错:java.lang.OutOfMemoryError。设置jvm内存的方法,对于单独的.class...
2、堆空间的设置
针对JVM堆的设置一般,可以通过-Xms -Xmx限定其最小、最大值,为了防止垃圾收集器在最小、最大之间收缩堆而产生额外的时间,我们通常把最大、最小设置为相同的值。
年轻代和年老...
一、WebLogic923 32位JDK优化参数
set MEM_ARGS=-Xms680m -Xmx680m
-XX:PermSize=136m -XX:MaxPermSize=136m -XX...
服务器性能参数
WebLogic 配置文件(config.xml)包含了大量很直观的与性能有关的参数,能通过配置环境与应用程序得到很好的优化。基于系统的需要...
设置WebLogic的启动参数
域配置的相关信息所在位置:
MW_HOME\user_projects\domain\domain-name
指定该域启动使用的JDK...
转自:http://it.chinawin.net/softwaredev/article-e520.html
设置Weblogic线程数
他的最新文章
讲师:李江龙
讲师:司徒正美
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)

我要回帖

更多关于 weblogic参数优化 的文章

 

随机推荐