Chinaunix首页 | 论坛 | 博客
  • 博客访问: 54428
  • 博文数量: 6
  • 博客积分: 175
  • 博客等级: 入伍新兵
  • 技术积分: 105
  • 用 户 组: 普通用户
  • 注册时间: 2011-01-17 14:53
文章分类
文章存档

2012年(6)

我的朋友

分类: 数据库开发技术

2012-06-04 15:50:22

 

 

WebLogic Server配置和性能调优

 

 

 

 


 

 

1 准备知识... 5

1.1 基本概念... 5

1.2 环境说明... 6

2 配置篇... 7

2.1 WebLogic Server 配置... 7

2.1.1 创建Standalone Server Domain. 7

2.1.2 创建Standalone Server Domain. 13

2.2 WTC 配置... 15

2.2.1 Tuxedo 配置... 15

2.2.2 WebLogic 配置... 16

2.2.3 WTC连通性的简单检查方法... 18

2.3 JDBC配置... 20

3 性能调优篇... 21

3.1 JVM调优... 21

3.2 WebLogic Server调优... 22

3.2.1 尽量使用本地IO... 22

3.2.2 调整默认执行线程数... 22

3.3 JDBC调优... 24

3.3.1 驱动程序类型选择... 24

3.3.2 调节连接池初始容量和最大容量... 24

3.3.3 其他配置... 25

3.4 WEB调优... 25

3.4.1 调整WEB应用描述符... 25

3.5 其他调优设置... 26

3.5.1 WebLogic文件描述符大小调整... 26

4 FAQ... 27

4.1 WTC FAQ.. 27

4.1.1 TPENOENT(6):0:0:TPED_MINVAL(0):QMNONE(0):0:No local or   remote domain available  xxx服务... 27

4.1.2 TPESYSTEM(12):0:0:TPED_MINVAL(0):QMNONE(0):0. 27

4.1.3 TPESYSTEM(13):0:0:TPED_MINVAL(0):QMNONE(0):0. 28

4.1.4 TPESYSTEM(10):0:0:TPED_MINVAL(0):QMNONE(0):0. 28

4.2 其他... 28

4.2.1 为什么页面中的图表(饼图,柱状图)和验证码等图片在WebLogic环境中不能正常显示?    28

4.2.2 修改的JSP不会立即生效怎么办?. 28

4.2.3 JSP里面的静态文件、include JSP 中文显示不正常,这个问题怎么解决?    29

4.2.4 当发生JDBC连接池泄漏现象时,如何进行调试?... 29

1 准备知识

Domain 是WebLogic Server实例的基本管理单元。更详细的解说应该是,所谓Domain就是,由配置为Administrator ServerWebLogic Server实例管理逻辑单元,这个单元是有所有相关资源的集合。

Domain的类型:

²  Standalone Server Domain

它主要是用来发布单一的应用程序,由单一WebLogic Server组成并且由它来负责web应用程序的运行。

²  Admin Server with Managed Servers

这是一个最简单的企业运行环境。它可以发布多个Server实例去负责web应用程序的运行,由其中的一个Administration Server负责管理功能。

²  Domain with Managed Servers and Clusters

具有更高性能的商业运行环境。

Server 是一个相对独立的,为实现某些特定功能而结合在一起的单元。

Machine 是一台运行一个或多个Weblogic Server实例的主机.

Clustering :WebLogic集群技术指通过一组服务器共同工作,在多台机器间复制应用表示层和应用逻辑层的能力,实现关键业务系统的负载分布,消除个别故障点。 集群用来实现负载均衡和容错

属性名称

 

BEA产品

WebLogic Server

8.1 SP5

OS

AIX Version 5

SDK

java version "1.4.2"

Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2)

Classic VM (build 1.4.2, J2RE 1.4.2 IBM AIX build ca142-20050929a (SR3) (JIT enabled: jitc))

 

配置

进入{WL_HOME}/weblogic81/common/bin/,执行config.sh

Standalone Server Domain

Step A- 1:

 

Step A-2:

Step A-3:选择非向导模式(express mode).

Step A-4:在图4界面,可以配置Server名称,监听端口等信息.

注意:配置的监听端口一定是未用状态才可以。

 

Step A-5:是否进行管理Server、集群和机器(machines)配置,选择否,按’Enter’键继续

Step A-6:

Step A-7:

Step A-8: 输入[1]回车,即修改当前输入的用户名,默认用户名为weblogic,提示输入一个当前域管理的新的用户名,

输入好后回车,例如weblogic,如下图,继续操作,输入[2]设置这个用户的密码

 

Step A-9:输入八位密码

Step A-10:

Step A-11:

Step A-12:

Step A-13:选择Domain运行模式,开发环境我们选择”1|开发模式”,生产环境我们选择”2|生产模式”.

Step A-14:选择JDK

Step A-15:

Step A-16:输入domain路径

Step A-17:输入domain名称

Step A-18:

Step A-19:domain创建成功

在配置standalone Server Domain Step A-5 ”Managed Servers,Clusters and Machines”选项,配置 Managed Server.

Step B-6:

Step B-7: 输入Managed Server名称,以及监听端口号

Step B-8:

 

Step B-9:继续配置managed server,输入p,’Enter’继续

Step B-10:重复Step B-7,Step B-8

 

Step B-11managed Server配置完毕,按照Step A-6  ---- Step A-19进行WebLogic 其他配置。

配置

TUXEDOWEBLOGIC之间通过DOMAIN方式实现互相调用,文档中如果没有特殊申明:

     TUXEDO所在的DOMAIN名为 TDOM1

     TDOM1 Network Address //172.16.24.105:17012

     WEBLOGIC所在的 DOMAIN名为WDOM1

     WDOM1 Network Address//172.16.24.105:17011

     TDOM1上有一个TUXEDO SERVEICE  sPubSelect

注:TDOM1WDOM1 network address的端口号一定是没有占用的,

       端口号要大于1024

配置

²  修改DMCONFIG文件

DM_REMOTE_DOMAINS段中加入

                     WDOM1 TYPE=TDOMAIN    DOMAINID="WDOM1"

²  DM_TDOMAIN段中加入

                     TDOM1     NWADDR="//172.16.24.105:17012"

                     WDOM1    NWADDR="//172.16.24.105:17011"

²  dmloadcf /loaddm DMCONFIG

²  stop TUXEDO ,  start TUXEDO

配置

通过 WebLogic控制台配置 WTC

²  创建WTC 服务:  Administration Console 屏中 部署 Services 节点并单击 WTC 。将显示 WTC Services 屏。单击 Configure a New WTC Service 超链接。新显示的屏包括两个文本域: WTC 服务的名字和它的部署优先权顺序。单击 Create 按钮来新建一个 WTC 服务。

²  创建Tuxedo本地访问点: 单击该服务页的“ Content ”选项卡,并在新显示的页面中单击“ Local Aps ”选项卡。要创建新的本地访问点,单击“ Configure a New Local Tuxedo Access Point ”超链接。在 Tuxedo 本地访问点的“ General ”选项卡中,填写域“ Access Point ”“ Access Point ID ”“ Network Address ”。其中第一个域是用户选择名,第二个和第三个域必须与 DOMCONFIG 配置文件的 DM_TDOMAIN 段相关联。一般第一个域与第二个域所填的值都相同

²  创建远程 Tuxedo 访问点。  单击该服务页的“ Contents ”选项卡,并在新显示的页面中单击“ Remote Aps ”选项卡。要创建新的 Tuxedo 远程访问点,单击“ Configure a New Remote Tuxedo Access Point ”超链接。在 Tuxedo 远程访问点的“ General ”选项卡中,填写域“ Access Point ”“ Access Point ID ”“ Local Access Point ”“ Network Address ”。其中第一个域是用户选择名,第二个和第四个域必须与 DOMCONFIG 配置文件的 DM_TDOMAIN 段相关联。第三个域必须是我们在先前步骤中所选择的本地 访问点名。在同一屏的“ Connections ”选项卡中的默认域值对于大多数情况都是适用的。一般第一个域与第二个域所填的值都相同

²  导入服务:单击该服务页的“ Contents ”选项卡,并在新显示的页面中单击“ Imported ”选项卡。要导入 WTC 服务,单击“ Configure a New Imported Service ”超链接。在“ General ”选项卡中,“ Resource name ” 用户选择名(这个名webLogic自己用的,可以与Remote Name 不一样)。第二个和第三个域分别是先前定义的本地和远程 Tuxedo 访问点。最后 “ Remote name ” 必须是Tuxedo中存在的服务。

²  重新部署:新注册的WTC服务只有在Server重新发布有才会生效。点击“Target and Deploy”选项卡,首先选择”None“单选按钮,点击’Apply’;然后选择Server”实例名称按钮,点击”Apply”,WTC服务发布生效。

连通性的简单检查方法

²  确认DMCONFIG配置无问题,比如tab键分割,而不是空格之类的错误,load是否成功,重新dmloadcf /loaddm一下

²  查看域连接情况

                        >dmadmin

                        # 连接一个远程的domain

                       > co -d TDOM1 -R WDOM1

                        Operation completed successfully. Use printdomain(pd) to obtain                                  results.

                        # 查看TDOM的远程domain列表

                 > pd -d TDOM1

                    Local domain :TDOM1

                    Connected domains:

                    Domainid: WDOM1

²  检查TUXEDO配置情况,

查看UBBCONFIG关于domains配置情况,如所在的group,本例为WTCGRP_SXBOSS;检查TUXEDO配置情况,查看UBBCONFIG关于domains配置情况,如所在的group,本例为WTCGRP_SXBOSS

>tmadmin

> psc -g WTCGRP_SXBOSS

Service Name Routine Name Prog Name  Grp Name  ID    Machine  # Done Status

------------ ------------ ---------  --------  --    -------  ------ ------

DMADMIN      DMADMIN      DMADM      WTCGR+     1     SXBOSS       0 AVAIL

TDOM1               GWS          GWADM      WTCGR+     2     SXBOSS       0 AVAIL

尤其要注意是否存在 GWTDOMAIN

确认远程的domainservice是否在上述列表中,如果没有,则调用失败

²  启动/停止整个group

tmshutdown -g WTCGRP_SXBOSS;tmboot -g WTCGRP_SXBOSS

# 虽然DMADM GWADM/GWTDOMAIN 放在一起,但是在整个tuxedo server DMADM是唯一的; GWADM/GWTDOMAIN

可以有多对,多个group.

也可以启停其中GWADM/GWTDOMAIN任意一个:

指定server id的形式

tmshutdown -i 2;tmboot -i 3;

配置 调优

为提高高性能的吞吐量,应该把Java 堆的最小值与最大值设为相等。而为了防止内存溢出等情况的发生,需要把Java堆的大小调整成合适的值;下面是设置Java堆的大小的方法:

²  commEnv.sh中设置

需要在WebLogic Server的启动脚本中,指定JAVA_VENDOR变量的值

JAVA_VENDOR=”Sun”                        

MEM_ARGS “MEM_ARGS="-Xms1536m -Xmx1536m -XX:PermSize=128m -XX:MaxPermSize=256m"”

²  WebLogic的启动脚本中设置(startWebLogic.sh

MEM_ARGS赋值:

例:

MEM_ARGS “MEM_ARGS="-Xms1536m -Xmx1536m -XX:PermSize=128m -XX:MaxPermSize=256m"”

   WebLogic Server启动脚本中:

${JAVA_HOME}/bin/java -D9001 ${JAVA_VM} ${MEM_ARGS} ${JAVA_OPTIONS} -Dweblogic.Name=${SERVER_NAME} -Dweblogic.ProductionModeEnabled=${PRODUCTION_MODE}

 

调优

WebLogic Server有两套套接字复用器:Java版和本地库。采用小型本地库更有效,尽量激活Enable Native IO(默认),此时UNIX默认使用CPUs+1个线程,Window下为双倍CPU。如果系统不能加载本地库,将会抛出java.lang.UnsatisfiedLinkException,此时只能使用Java套接字复用器,可以调整socket readers 百分比,默认为33%。该参数可以在Console Server Tuning Configuration配置栏里设置,配置完,重新启动WebLogic Server即可。

名称

开发模式

产品模式

推荐个数

Execute Queues

默认的执行线程为15

默认的执行线程为25

200

在管理控制台修改默认执行队列线程数的步骤如下:

²  如果管理服务器没有运行,先启动。

²  访问管理控制台。

²  展开左边面板的Servers 节点,显示Server列表。

²  右击Server,在弹出菜单中选择View Execute Queues ,就会在右边面板显示有执行队列的表用来修改。

²  注意:你只能修改默认的执行队列或者用户定义的执行队列。

²  Name列,直接点击默认执行队列名称,显示配置标签用来修改执行队列数。

²  填下适当的线程数。

²  点击Apply,保存刚才的修改。

²  重启Server,使新的执行队列设置生效。

 

调优

Oracle提供thin驱动和oci驱动,从性能上来讲,oci驱动强于thin驱动,特别是大数据量的操作。但在简单的数据库操作中,性能相差不大,随着thin驱动的不断改进,这一弱势将得到弥补。而thin驱动的移植性明显强于oci驱动。所以在通常情况下建议使用thin驱动

JDBC Connection Pool的调优受制于WebLogic Server线程数的设置和数据库进程数,游标的大小。通常我们在一个线程中使用一个连接,所以连接数并不是越多越好,为避免两边的资源消耗,建议设置连接池的最大值等于或者略小于线程数。同时为了减少新建连接的开销,将最小值和最大值设为一致;值等于WebLogic Server的执行线程数。

尽管JDBC Connection Pool提供了很多高级参数,在开发模式下比较有用,但大部分在生产环境下不需调整。这里建议最好不要设置测试表, 同时Test Reserved ConnectionsTest Released Connections也无需勾上。 当然如果你的数据库不稳定,时断时续,你就可能需要上述的参数打开

调优 应用描述符

WEB应用除代码之外的调优比较简单,仅仅是对一些WEB应用描述符的调整。首先关闭Session Monitoring Enabled,仅仅在Cluster环境下设置Session复制(优先使用内存复制),在保证应用正常运行的情况下,设置较短的Session超时时间。 同时生产环境下无需检查JspservletJSPPage Check SecsServlet Reload Check Secs均设为-1,关闭JSP Keep Generated JSP Verbose对性能也有帮助。此外,还可以对jsp进行预编译,有两种方法:激活precompile选项;使用weblogic.appc事先编译,建议采用后者。

 

文件描述符大小调整

首先设置WEB主机系统的ulimit参数为unlimited ,然后设置WebLogic中文件描述符的大小。

{WL_HOME}/bea/weblogic/common/bin中打开文件commEnv.sh,修改设置文件描述符大小的指令,将默认的:ulimit –n 1024修改为:ulimit –n 8192

 

服务

服务没有调到。

请检查tuxedo domain weblogic domain连通 (参见WTC 连通性的简单检查方法),请检查xxx服务是否在weblogic里配置正确。是否配置了xxx服务。如果没有配置也会报这个错误。

请检查xxx服务在tuxedo中时候存在,如果是刚注册的xxx服务,请重现发布所在的WTC服务。如果没有重新发布,也会报这个错误。

如果tuxedo 日志显示duplicate server,表示有另外一个weblogic domain 配置相同的wtc配置。也就是说 一个Tuxedo domain 对应两个相同的Weblogic domain,这种情况,也会出现这个错误,

请修改另外weblogic domainwtc配置。(配置相同是指 远程tuxedo访问点与本地tuxedo相同)。 

     如果跨防火墙,请修改连接策略 都改为ON_STARTUP

   tuxedo服务有问题或输入参数不正确。

tuxedo服务返回超过了设置的时间。优化tuxedo服务或修改时间门限。

tuxedo 服务或者输入参数有问题。

饼图,柱状图)和验证码等图片在WebLogic环境中不能正常显示?

WebLogic 启动脚本中,在${JAVA_OPTIONS}后面加入 “ -Djava.awt.headless=true “,

重新启动WebLogic Server即可。

不会立即生效怎么办?

首先检查Web Application Descriptor JSPPage Check Secs 是否设置为〉=0

   JSPPage Check Secs 表示JSP会在设置的时间间隔内检查是否JSP页面是否更新。如果更新,则重新编译,生成相应的class

如果上述设置正确,则检查系统时间是否正确。

    JSP页面是否更新是根据文件的日期时间。如果系统时间小于文件的生成时间。则不会更新。 比如 系统时间是 20040102 而文件的生成时间是 20050607,则怎么修改jsp页面都不会更新。

里面的静态文件、include JSP 中文显示不正常,这个问题怎么解决?

weblogic.xml文件的部分加入

compilerSupportsEncoding

true

encoding

GBK

Web Application 重新部署即可。

此外,在页首加入:

       <%@ pagecontentType=“text/html;charset=GBK“%>

也可以解决中文显示不正常的问题。

连接池泄漏现象时,如何进行调试?

观察后台日志,会看到下面信息:

<> <>    connection obtained from the pool was not closed explicitly by calling close() and then was disposed by the garbage collector and returned to the connection pool. The following stack trace at create shows where the leaked connection was created.

打开weblogic console {your-pool}-- Connections -- Advanced Options 选项卡:

这样日志就打出了发生连接池泄露的代码。检查出代码后,要记住关掉这个选择。

 

阅读(5088) | 评论(0) | 转发(0) |
0

上一篇:命令行配置CISCO MDS光纤交换机

下一篇:没有了

给主人留下些什么吧!~~