资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,2012,年,8,月,3,日,先进数通融安,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,2012,年,8,月,3,日,先进数通融安,*,WebSphere Application Server,使用以及参数设置,IBM,中间件,基于传统,应用服务器,消息传送,服务器,基于,Web,应用服务器,交易中间件,核心业务,CICS,消息中间件,系统通信,MQ,应用中间件,网上应用,WebSphere,WAS,使用,环境部署,登录控制台,创建虚拟主机,在管理控制台左侧展开,“,环境,”,菜单,,虚拟主机,新建,,出现新建虚拟主机页面,,新建虚拟主机,,设置虚拟主机名称为,“,bos_host,”,,点击,“,应用,”,按钮,并保存到主配置,。(一般在农行做项目,虚拟主机这步骤可以省略,可以直接用,default_host,虚拟主机,),设置虚拟主机端口,,依次点击链接“,bass_host,”,“主机别名”,点击“新建”按钮,添加端口号,80、9080、9081(,这个根据你要建,server,确定你需要几个端口,),如下图,WAS,使用,环境部署,创建集群,1.,在管理控制台左侧展开“服务器”菜单,点击“集群”,出现下图,点击“新建”,填写集群名,集群名最好引用项目的名称,如,bos_server,。,2.,添加集群成员,集群成员就是通常我们说的,server,,这里注意是你的集群是几台机器集群,如两个两台机器做集群,需要选择节点,如在,Node01,上建,2,个成员,,Node02,建两成员。,3.,在集群拓扑下查看一下成员有没有,和我们预期建的是否一致。,4.,修改,server,端口,应用程序服务器,Node01 N01S01,端口下进行修改,修改的端口建,虚拟主机存在的端口,否则无法连接,修改端口如下图,WAS,使用,环境部署,WAS,使用,环境部署,四,.,建立数据资源,确定连接服务器上有没有,sybase,驱动,如:,joconn3;,资源,数据源,选择刚才建的集群,也可以在所有作用域下新建数据源;,点击新建,输入数据源名字,JNDI,名称(注意这个,JNDI,名称要与应用程序中连接数据源的名称一致),创建新的,JDBC,提供程序,输入数据库类路径信息,输入连接数据库的信息,如数据库服务器、端口,设置连接数据库的用户和密码如:,JDBC,提供程序,数据源,定制属性,新建,输入,user,依次建,password,测试数据库,查看数据源是否建成功。,WAS,使用,环境部署,五,.,发布应用程序,1.,应用程序,安装新程序,输入要发布的程序,输入下根文(根文如:,10.232.53.224/bos/services/PostProxy?wsdl,,,这个根文就是,bos,),一直点击下一步直到完成。注意的是,当多个集群的时候选择模块映射至服务器的时,选择应用程序要部署的服务器;,2.,同步节点,系统管理,节点,全选,点击同步节点即可。如提示节点,DM,无效,这个不用管,;,3.,启动应用程序,,应用程序,企业应用程序,选择程序,点击启动。,4.,验证应用程序,输入,URL,地址。查看是否有相应;,5.,卸载应用程序,先停止应用程序再去做卸载程序动作。,WAS,使用,环境部署,WAS,使用,环境部署,当你遇到,WAS,控台无法打开,如何重新启动,WAS,,如下步骤:,1.,在,AppServer/bin,下,,./startManager.sh;,2.,在,/AppServer/profiles/Node01/bin,下,,./startNode.sh,3.,在,/AppServer/profiles/Node01/bin,下,,./startServer.sh server1;,4,、,ps-ef|grep java,,查看,was,中,java,进程。,当然以上说的是在有权限的情况,没权限什么也不用说了。,WAS,参数设置,应用程序已部署为了合理应用资源需要对,WAS,参数,也是,确保能为最广泛的应用程序提供开箱即用的性能改善,,设置,WAS,参数,那么我们了解一些参数意思如下:,线程池:线程池是一种多线程处理形式,处理过程中将任务添加到队列,然后在创建线程后自动启动这些任务。,WAS,线程池使服务器组件能够复用线程而不是在运行时创建新线程。创建新线程通常是很耗费时间和资源的操作。,连接池:连接池是创建和管理一个物理连接的缓冲池,其中会保留一定数量创建的物理连接不关闭,当有客户端请求时,调用连接池,可以有效减少物理连接的创建次数,降低直连所带来的系统开销,缓解应用服务器压力,提高程序性能。,最大连接数:指当前连接池中允许创建的最大物理连接数,当到达指定值后,将不允许创建物理连接。和连接超时相对应,当达到最大值后,连接请求将等待,直到池中有空闲连接为止,否则报连接超时错误。,最小连接数:指当前连接池要保留的最小物理连接,其决定未使用超时维护机制的下限,连接池的创建不是根据最小连接数而特意创建,而是根据用户请求而创建,系统会一直维护最小的连接数目。最小连接数使应用服务器保持一定数量的物理连接,利用应用服务器维护机制,合理分配服务器资源。当应用程序访问频繁,但访问人数少的情况下,最小连接数的合理配置,可以将有效的资源进行充分利用,满足特定应用需求。,WAS,参数设置,WAS,参数设置,设置,Web Container,的最大、最小并发用户,1.Web Container,的最大并发用户,,Web Container,维护着一个线程池,用来处理接收到的,jsp/servlet,请求。,2.,如何设置:,在管理控制台中点击,WebSphere Application Server,server1,线程池,WebContainer,(默认为,10,50,),;,经过多次实验发现,WebContainer,设置较小(,3-5,)会影响性能问题,比如,TPS,下降等,如果,WebContainer,设置较大时(,200-2000,),占用资源。因此根据观察的性能情况和应用情况输入合适的最小、最大参数值,设置方法如下图所示:,WAS,参数设置,WAS,参数设置,3.,监视:,执行场景时,可以通过,WebSphere Application Server,性能监视和调整,性能查看,当前活动,启动监视,WebContainer,,可以查看到,WebContainer,活动进程数大小,如下图所示:,WAS,参数设置,4.,结论:,从上图可表明,ActiveCount,并发活动线程数,29,,,Was6.1,能够使用相对较少的线程来扩展数千客户连接。这解释了图中平均只使用,29,个线程来服务来自,HTTP,负载驱动程序的,50,个并发客户机连接。根据此提供信息,可以参考减小线程池大小或加大线程池,应该通过仔细考虑来确定线程池的大小,包括预期的平均和峰值工作负载,WAS,参数设置,二,.,设置连接池大小,1.,每次当应用程序尝试访问后端库时(比如数据库),它都需要资源来创建、维持和释放到该数据库的连接。为了缓解此过程对总体应用程序资源的压力,应用服务器允许您建立一个后端连接池,用于在应用服务器上共享应用程序。连接池将连接开销分散分布在若干用户请求中,以便保留应用程序资源供未来请求使用。调优连接池的目标是确保各线程都有一个数据库连接,并且请求不需要排队以等待访问数据库,。,WAS,参数设置,2.,如何设置:,资源,JDBC,数据源,使用的数据源名称,连接池属性,根据观察的性能情况和应用情况输入合适的最小、最大连接数。(默认为,1,10,)连接池设置大小操作如下图:,WAS,参数设置,3.,如何监视:,如何合理设置最大或最小连接池参数值可以通,WebSphere Application Server,性能监视和调整,性能查看,当前活动,启动监视,JDBC,,可以查看到连接池的使用情况,如下图所示:,WAS,参数设置,通上图可以看出,poolSize,池的大小,47,,而空闲池的大小,20,,说明有部分池没有使用。根据此值可以参考怎么设置数据库连接池的大小,4.,结论:,经过连接池最大或最少设置得出,:,连接池的大小影响资源占用和性能情况,如连接池过小(,1-5,),会影响性能处理能力,,TPS,降低,并发一段时间出现掉用户情况,不能满足现场环境应用高负载压力测试,如连接池过大(,600-2000,),则会长期占用服务器利用资源,且根据不同场景交易会出现提示错误信息,比如,“,Could not open JDBC Connection for transaction;nested exception is java.sql.SQLException:JZ006:,捕获到,IO,例外,:.SocketException:,打开的文件过多,”,等一些相关错误信息。,WAS,参数设置,三,.,数据源语句缓存大小,1.,解释:,数据源语句缓存大小指定每次连接可以缓存的经过准备的,JDBC,语句的数量。,WebSphere Application Server,数据源将优化经过准备的语句和可调用的语句,它可以缓存未在活动连接中使用的语句。如果应用程序使用许多语句,则增加此参数有时可以改善应用程序性能,2.,如何设置:,数据源,bosdb WebSphere Application Server,数据源属性,可以设置语句高速缓存的大小,如下图所示,WAS,参数设置,WAS,参数设置,3.,监视:,语句高速缓存大小调整是否合适,可以查看,PrepStmtCacheDiscardCount,值是否为,0,,而,PrepStmtCacheDiscardCount,正表示由于缓存已满而被丢弃的语句的数量。所以当,PrepStmtCacheDiscardCount,值为,0,时,表明没有被丢弃的语句。上图设置的语句高速缓存大小是,10,,可以查看,PrepStmtCacheDiscardCount,值,如下图所示:,WAS,参数设置,从图中可以看出被丢弃的语句的数量超过,2,多万条,,我们,再将语句高速缓存大小调整为,50,时,如下图所示:,WAS,参数设置,四,.JVM,堆参数设置,1.,设置堆的大小:,JVM,堆大小参数将直接影响垃圾收集行为。通过增加,JVM,堆大小,可以在出现分配故障并触发垃圾收集之前创建更多对象。这通常可以让应用程序增加各垃圾收集,(GC),周期之间的间隔时间。遗憾的是,增加堆大小的一个缺点是查找和处理需要垃圾收集的对象所需的时间也会随之增加。因此,,JVM,堆大小调优经常涉及确定垃圾收集之间的间隔时间与执行垃圾收集所需的暂停时间之间的平衡点。,2.,如何设置堆的大小:,通过,WebSphere Application Server,控制台设置,应用程序服务器,Server_name,进程定义,Java,虚拟机,如下图,WAS,参数设置,在图中设置,512-1024,,那么一般情况下,均设置为,512-1024,,但是这个值也看情况而定,分析内存使用情况,如图可以勾选择,“,详细垃圾回收,”,WAS,参数设置,启用详细模式的,GC,,,JVM,在每次垃圾收集时都会打印输出有用的信息,比如堆中的空闲和已使用字节、垃圾收集之间的间隔以及暂停时间。这些信息将记录在,native_stderr.log,文件中。再通各种工具打开此文件进行分析,这里推荐使用,GCCollector,这个工具在这里不细说,大家可以自己去研究。,3.,如何监控:,可以通,WebSphere Application Server,性能监视和调整,性能查看,当前活动,启动监视,JVM,,可以查看内存空闲,free,趋势图,如果是一条直线,说明内存不释放,如图:,WAS,参数设置,WAS,参数设置,4.,结论:经过了对,JVM,堆大设置从,50-256,、,256-512,、,512-1024,、,1024-2048,,验证了堆设置过小,会使得对象可分配空间变小,从而会频繁的使用垃圾收集机制来释放内存空间,而每次垃圾收集,都会耗用一定的系统资源。应此要通过试验和监控数据,堆设置过小时垃圾收集回收频繁。堆设置过大,会占用过多的内存,使内存资源耗尽,从而会频繁的进行,IO,操作来使用虚拟内存。,谈起内存大家都比较熟悉,而内存监控工具很多,比如,JDK1.6,自带的,jvisualvma,、,JProfiler,、,jconsole,等工具,大家可以试一下这些工具,在这里不对工具进行介绍,说一下设置,jvm,怎么连接内存监控工具,以便大家使用。,WAS,参数设置,五,.JVM,设置连接,Visual VM,1.,解释:,VisualVM,是,Netbeans,的,profile,子项目,已在,JDK6.0 update 7,中自带在,(,默认是,C:Program FilesJavajdk1.6.0_13bin),目录下面,有一个,jvisualvm.exe,文件,双击打开即可,能够监控线程,内存情况,查看方法的,CPU,时间和内存中的对象,已被,GC,的对象,反向查看分配的堆栈,(,如,100,个,String,对象分别由哪几个对象分配出来的,),。,2.,如何设置:通过,WebSphere Application Server,控制台设置,应用程序服务器,Server_name,进程定义,Java,虚拟机,WAS,参数设置,在,JVM,参数里设置:,-Djavax.management.builder.initial=-Dcom.sun.management.jmxremote.authenticate=false-Dcom.sun.management.jmxremote.ssl=false-Dcom.sun.management.jmxremote.port=1099,,,其中,-Dcom.sun.management.jmxremote.port,:这个是配置远程,connection,的端口号的要确定这个端口没有被占用,可以自己设置号。,-Dcom.sun.management.jmxremote.ssl=false-Dcom.sun.management.jmxremote.authenticate=false,:这两个是固定配置,是,JMX,的远程服务权限,这样,WAS,中的参数已经设置,OK,,大家可以通,VisualVM,工具监控远程机器内存使用情况。设置参数如图所示,WAS,参数设置,WAS,参数设置,六,.JVM,参数设置生成,dump,文件,在性能测试中会出现内存溢出的现象,想查看内存性能常用到生成,dump,文件进行分析,如何设置,WAS,中设置,JVM,生成,dump,文件,通过,WebSphere Application Server,控制台设置,应用程序服务器,Server_name,进程定义,环境条目,有两步骤如下,1,单击,“,新建,”,,,“,名称,”,字段中,输入,IBM_HEAPDUMP,。在,“,值,”,字段中,输入,true,。单击,“,确定,”,。,2,重复步骤,1,,将,IBM_HEAPDUMP_OUTOFMEMORY,设置为,true,。单击,“,保存,”,,然后在下一个屏幕中再次单击,“,保存,”,即可。,WAS,参数设置,3,开命令提示符并转至,/WebSphere/AppServer/bin,目录,执行,kill-3 XXXXX,命令来调用堆转储,其中,XXXXX,是进程标识。此时,dump,文件已经生成,生成目录一般是:,/opt/IBM/WebSphere/AppServer/profiles/Node01/*.phd,。通过各种工具打开,dump,文件,推荐,ha405,、,IBM Support Assistant 4.1,工具进行分析。工具使用这里不作介绍。,WAS,参数设置,七,.,设置会话管理,会话管理来配置控制超文本传输协议(,HTTP,)会话支持行为的会话管理器属性。这些设置既适用于,SIP,容器,也适用于,Web,容器,过,WebSphere Application Server,控制台设置,应用程序服务器,Server_name,会话管理,如图,WAS,参数设置,WAS,参数设置,结论:经过多次调整内存中最大会话量和设置超时,对性能指标未出现明显的影响,所以会话管理可以使用默认值。这里注意的是,WAS,可以把会话信息序列化存入数据库,对于集群和克隆的,WAS,服务器来说,这一特性是建议启用的。与在内存中保存会话信息相比较,启用这一特性会降低,WAS,的性能。因此,如果你不想持久化你的会话,可以把该选项关闭。通过应用程序服务器,Server name,会话管理,分发环境设置,分布式会话,选择,“,无,”,即可。,WAS,参数设置,八,.WEB,容器,servlet,高速缓存,动态加载是一个很有用的功能,它可以在程序运行的时候动态更新,servlet,文件,,web,容器能够自动识别这种更新,并且重新载入新的,servlet,类。在进行程序的调试和开发时,这项技术能够带来很大的方便,避免了频繁的重启应用服务。但是,这种方便性是以牺牲性能为代价的,服务器为了监视文件是否更新,需要耗费一定的系统资源。而对部署的程序来说,一般程序不会进行改动了,因此应该把这个开关关闭。应用程序服务器,Server_name Web,容器,如图:,WAS,参数设置,WAS,参数设置,经过启用,servlet,高速缓存,对性能指标未有明显效果,但是启用,servlet,缓存,,marketSummary.jsp,可以保存在缓存中,这可以从基本上避免这些开销大的数据库查询操作,从而改善用户主页的响应速度,WAS,参数设置,九,.,总结,以上介绍的都是常用的,WAS,参数设置,进行,WAS,参数调优一般情况没必要所有参数不需要全部调配,经常调优的参数如:,JVM,堆的大小、数据库连接池、线程池等。总体说,WAS,参数设置根据不同需求适当的配值参数,参数调大了会影响资源占用的情况或都出现错误信息,参化调小了会影响性能处理能力,且不能满足现场环境应用高负载压力测试,所以要合理调配,WAS,参数。,谢谢大家!,
展开阅读全文