基于Linux的WebSphere性能调优与故障诊断

1、关于was数据源等问题的配置

 

(1)关于was数据源链接池的最大、最小配置多大合适?怎样去计算?php

(2)关于JVM的配置,64位系统,64位WAS,最值小和最大配置多大最优?怎样去计算?html

(3)应用服务器线程池,怎么样配置最优? 怎样去计算?java

(4)Linux上安装was完成后,linux必须配置哪些参数,was性能最优?若是不配置的话,性能影响大吗mysql


数据库链接池建议初始化调优10-100。was链接池参数说明及调优V1.0:http://www.webspherechina.net/Document/detail/tid/109707
jvm1024-3072,jvm,链接池的请参照文档,官方知识库有些文档,能够当作参考。
线程池100-100。
linux最大文件打开数65536,打开core,用户最大进程数65536
这些都是通常状况下调整,具体的还须要结合实际状况,通常状况下,在系统上线以前,会作压力测试,包括并发测试、疲劳测试等等。在作测试的时候,会不断的调整并发量,压力的时长。这个时候根据每次测试时WAS的运行状况、已经压力测试的结果,会进行不断的调整直到一个满意的值。我在压力测试以前通常把PMI打开,级别是基本,而后每一个WAS实例内存最小值为2G,最大值为4G,同时打开WAS的verbose gc。数据源最小值设置为10,最大值设置为50。web container设置为200。其余更多的调整,好比Linux的调整,你能够根据WebSphere Application Server Performance Cookbook里面的建议进行调整。因为文件比较大接近10M,你能够到IBM官网直接下载PDF格式的文件:https://publib.boulder.ibm.com/httpserv/cookbook/
每次压力测试之后,根据verbose gc的记录状况,PMI的记录状况,再进行针对性的调整。若是发现不是WAS的问题,还须要与开发人员一块对业务代码进行优化。 linux参数调整:linux

参数web

参数值sql

说明数据库

nofileswindows

10000后端

容许打开的文件数。打开文件设置的缺省数目 (2000) 一般足以供大多数应用程序使用。若是对此参数设置的值过小,在打开文件或创建链接时就可能会出错。因为此值限制服务器进程可打开的文件描述符数(软限制)。

Nofiles_hard

10000

容许打开的文件数。打开文件设置的缺省数目 (2000) 一般足以供大多数应用程序使用。若是对此参数设置的值过小,在打开文件或创建链接时就可能会出错。因为此值限制服务器进程可打开的文件描述符数(硬限制)。

TCP_KEEPALIVE_INTERVAL

15

当探测没有确认时,从新发送探测的频度。缺省是75秒。推荐设置为15.

TCP_KEEPALIVE_PROBES

5

在认定链接失效以前,发送多少个TCP的keepalive探测包。缺省值是9。这个值乘以tcp_keepalive_intvl以后决定了,一个链接发送了keepalive以后能够有多少时间没有回应 推荐设置为5.

netdev_max_backlog

 

somaxconn

3000

 

3000

 

当因为入局链接请求比率太高而致使链接故障时,更改下列参数:

echo 3000 > /proc/sys/net/core/netdev_max_backlog

 

echo 3000 > /proc/sys/net/core/somaxconn




2、JVM大小的优化


先设置一个经验值,好比最小值2G,最大值4G,同时开启verbose gc。而后作压力测试,或者跑业务,跑一段时间之后根据gc日志再设置一个合理的JVM值。
一、GC日志是设置JVM大小时,最好的参考
二、我看到的不少生产环境GC都是开启的,若是追求极限性能确定关闭了好
三、session复制是否打开与业务要求相关,性能是是确保业务正常的前提下再考虑的问题

新系统部署上线时,如何评估设置内存大小的合理性?
这个考虑的因素不少,好比,并发用户数,你的应用是否是吃大内存型的?好比要生成大的报表,要返回大的数据库结果集。
一般能够以压力测试来预估一个大体的值,而后再慢慢进行调整。

3、WAS7.0集群某节点假死


WAS7.0 虚拟机 LINUX集群 F5作负载均衡,常常在业务繁忙期遇到某一节点假死状况,在WAS控制台中查看该节点一切正常,F5因为断定假死节点正常因此正常分发负载,形成分发到改节点的访问用户没法使用应用系统,请问有相似的问题的解决方法吗?
这种问题能够从两方面着手:
一、F5探测的方式要准。能够编写一个应用,而后让F5去探测,返回200/500/501之类定制的代码来进行决定要不要进行分发了。另一个能够直接用F5 + IHS + ODR + WAS,而后加上健康管理策略的方式进行。
二、后端WAS既然在业务繁忙出现性能问题,就在业务繁忙的时候抓几个javacore,找到假死的缘由。

有没有分析javacore、GC和heapdump比较好的方法,在平常环境中处理这类问题有没有好的文档供参考。
IBM为javacore、GC和heapdump的提供了一个集成工具,叫IBM Support Assistant,我目前使用的版本仍是4.1.2这个版本。
分析javacore、GC和heapdump,实际上就是跟IBM JDK打交道,我看的文档是IBM JDK的诊断文档,对排错很是有帮助。
diag60.pdf:http://www.webspherechina.net/club/attachment.php?aid=MjE5MDd8ODljNzY4YjN8MTQ3NDE4NTgxMHw5ZTgwTW5IUGRuWld0aDBHcE83Mzc4T3dLMXhDaGRxNjhqdk1ibkVuYzBSQzdHSQ%3D%3D

IBMJava626.pdf:http://www.webspherechina.net/club/attachment.php?aid=MjE5MDl8ZjViODI2NDV8MTQ3NDE4NTgxMHxkMDVhOUpoUjNlbk5iYmd5ZG9VeTlCSDc3bk5KUU1Da29CRE5ycUFPS0lDUWxNZw%3D%3D

4、WAS集群,实现session共享问题


WebSphere Application Server ND版本默认自带2种Session共享方式,一种是基于数据库JDBC类型的,一种是基于内存复制M2M的。除了这两个内置的session共享实现方式之外,还有WebSphere eXtreme Scale实现方式,不过这个在早期WebSphere版本中须要额外购买。
对我本人来讲,节点数少的状况下,我用内存复制方式比较多。内存到内存复制具体配置步骤,分布式环境设置V1.0.docx:http://www.webspherechina.net/club/attachment.php?aid=MjE4Nzl8NDliZTg0MWJ8MTQ3NDE4NTE5OXxiZGQzL0srcjliTm0xSTJONDB6Y3AzbjlGY1RFS2RpSmQ3dTVVdkI5N2dWUzFNMA%3D%3D

量小的话,采用内存到内存复制便可。
量大的话,能够上WebSphere eXtreme Scale进行了。
怎么样监控会话数。启用PMI,PMI数据里面有会话数这一项。

5、WAS 如何监控到位?

目前,监控WebSphere最好的软件是APM范畴的软件。最火的APM范畴的监控工具,好比Quest Foglight、BMC PATROL等等。以oneapm为例,监控内容以下:

使用 OneAPM Java 探针来监控运行在 WebSphere 之上的 Java 应用程序,OneAPM 提供深度高可见性的应用性能管理解决方案,可以抓取到 WebSphere 上 Web 应用程序的行级代码或 SQL 语句调用。OneAPM 还提供了丰富的 JVM 分析、线程、会话等监控信息,能够直观地展现 JVM 堆内存、非堆内存(栈内存、方法区、常量池等)、各个时期对象的内存占用大小、垃圾回收活动详情及类的数量等。

监控 WebSphere 中 Java 应用的主要特色

监视分布式 SOA 应用程序的跨应用程序追踪

将主要业务轨迹的关键业务进行拓扑分析

用性能剖析分析方法调用栈轨迹

深度地监控您的 JVM 健康情况


WebSphere 中 JVM 的内存图表:

堆内存显示图表

非堆内存显示图表

实时显示垃圾回收活动

装载和卸载掉 class count 图表


WebSphere 中 JVM 的线程图表:

活动线程数图表

线程池的活动和空闲线程


WebSphere 中 HTTP Server 的会话图表:

分析每一个应用程序的 HTTP 会话数,包括:活跃、过时、拒绝的会话


WebSphere 应用服务器事务:

WebSphere 事务管理、活跃事务监控

监控 WebSphere 应用服务器建立的每一个事务总数的变化

监控总的事务的变化

6、ISA healthcenterclient 链接不上agent


问:服务器was8.5 、WAS SDK1.6(was自带),ISA5最新版(默认SDK1.8)、本地电脑jdk1.8
was节点虚拟机上已开启 1972 agent代理端口
2016-8-16 9:51:50 com.ibm.java.diagnostics.healthcenter.agent.mbean.HCLaunchMBean startAgent
INFO: Health Center agent started on port 1972.
health center 链接 1972 端口报错:
在 193.28.6.8 上的端口 1972 未检测到 JVM

答:办法1:用JDK 1.6版本对应的health center client
办法2,你试试看看好使很差使:
${WAS_HOME}${YOUR_JAVA_HOME}jrelibhealthcenter.properties
from:
com.ibm.java.diagnostics.healthcenter.agent.transport=iiop
to:
com.ibm.java.diagnostics.healthcenter.agent.transport=jrmp
相关说明:
com.ibm.java.diagnostics.healthcenter.agent.transport(仅限 Java 应用程序)
设置用于客户机与代理之间链接的传输协议,能够是 IIOP 或 JRMP。若是将 Health Center V1.3.0 或更高版本与 WebSphere® Application Server for z/OS® 一块儿使用,请将该属性设置为 jrmp。缺省值是 iiop。

问:还有Performance tuning toolkit 和这个isa有什么区别和联系;pmi方式和如今的jmx方式链接诊断工具;PTT应该就是soap协议收集pmi的数据吧?isa应该是使用JMX协议收集PMI的数据吧?
答:能够这样简单理解:PTT是在线监控WAS、离线分析WAS监控数据的工具;ISA是离线分析工具的合集。


问:我如今很是困恼,为啥health center client 没法在 端口 1972 未检测到 JVM;不知道哪里出现了问题?
一、我服务器端 health center agent 已经开发了 1972端口,而且我查到了这个端口一直在监听等待链接
二、health center agent 这个代理是was8.5 sdk1.6自带的。
我猜想是否须要升级服务器端 这个agent?


答:com.ibm.java.diagnostics.healthcenter.agent.transportSets the transport protocol to use for the connection between the client and the agent, either IIOP or JRMP. If you are using Health Center version 1.3.0 or later with WebSphere® Application Server for z/OS, set this property to jrmp. The default value is iiop.
经过把传输协议从IIOP 改成 JRMP,能够连通了。高版本的healthcenter client链接低sdk自带的healthcenter agent。

7、was有默认的permsize么?有的话初始值多大?

基于SUN JDK改的IBM JDK,都有permsize。好比下面的based on Oracle 7u79-b14,指的就是基于SUN JDK改的。操做系统主要是windows、linux、solaris平台,设法跟普通的SUN JDK没什么区别。好比64位的JDK,我通常都设置:

-XX:PermSize=256m -XX:MaxPermSize=512m

D:IBMjavajava1.7.0_64_SR9FP1bin>java -version

java version "1.7.0"

Java(TM) SE Runtime Environment (build pwa6470sr9fp1-20150602_01(SR9 FP1))

IBM J9 VM (build 2.6, JRE 1.7.0 Windows 7 amd64-64 Compressed References 20150406_242981 (JIT enable

d, AOT enabled)

J9VM - R26_Java726_SR9_20150406_1443_B242981

JIT - tr.r11_20150401_88894

GC - R26_Java726_SR9_20150406_1443_B242981_CMPRSS

J9CL - 20150406_242981)

8、WebSphere Process Server : 如何手工清理垃圾实例 ??

 

操做 WebSphere Process Server 环境,第 3 部分: 设置、配置和维护 WebSphere Process Server Business Process Choreographer 数据库

http://www.ibm.com/developerworks/cn/websphere/library/techarticles/0912_grundler/0912_grundler.html

以上这篇文章里面有相应的脚本,你须要根据项目的实际状况,对脚本进行定制,以便完成手工清理的工做。

9、关于WCS8.0 双节点双Solr节点的搭建

问:最近一直在作Websphere Commerce 维护工做,最近要搭了一套WCS双节点后,业务系统在经过WEB访问时,刷新一次就访问到随机的后端app上,后发现多是solr群集可能配置有问题,在双节点上都在dmgr中部署了solrcluster,appcluster2个群集,也是正常启动的,更改solrconfig.xml,正常网页访问出错,wcs后台没有问题,把solrconfig.xml改为默认网页能正常,web访问会游离致使不正常的页面,请问具体的was8.5 solr群集部署

答:Websphere Commerce的集群实施是很是复杂繁琐的,而且还须要根据项目要求进行各类个性化设置。你能够参考DW社区的两篇针对性的文档:WebSphere Commerce 以及 Search Engine 双集群环境的搭建:http://www.ibm.com/developerworks/cn/websphere/tutorials/1111_mazq_commmers/

在 WebSphere Commerce V7.0 中部署 solr search 的一些最佳实践:http://www.ibm.com/developerworks/cn/websphere/library/techarticles/1306_liq_solr/1306_liq_solr.html

Commerce8.0 采用了自动化部署方式,在Ibm knowlege Center里面,有不少看完后跟Commerce7.0仍是有很大的不一样的。

10、9080端口占用致使的was启动失败

环境,绩效考核系统Linux6.2,was6.1ND单实例Was正常关闭,可是9080端口迟迟不能释放,使用netstate -an |grep 9080 发现一些链接一直不能释放,那么问题是若是9080端口释放不了,在启动was的时候就会上报端口绑定失败,启动失败,有没有好的办法让这些tcpip的了解快速释放,减小业务停机时间。故障现象记录:

在WAS进程不存在后,使用netstat命令查看9080端口,发现以下结果:

#netstat -aon|grep 9080

tcp 0 153305 ::ffff:20.100.99.40:9080 ::ffff:20.101.37.14:63336 FIN_WAIT1 probe (0.66/0/0)

答:参考调优

http://www.ibm.com/support/knowledgecenter/SSEQTP_6.1.0/com.ibm.websphere.nd.doc/info/ae/ae/tprf_tunelinux.html

在sysctl.conf文件里面增长:

net.ipv4.tcp_fin_timeout = 30

Linux操做系统主动释放

 

11、was书籍推荐

关于WebSphere的技术知识,我主要是看如下这几本redbook网站下载的电子书

redp4580 WebSphere Application Server V7 Session Management.pdf

redp4855 WebSphere Application Server V8.5.5 Technical Overview.pdf

redp4870 WebSphere Application Server New Features in V8.5.pdf

sg246798 WebSphere ApplicationServer V6 Problem Determination for Distributed Platforms.pdf

sg247461 WebSphere Application Server V6.1 Problem Determination IBM Redpaper Collection.pdf

sg247584 IBM WebSphere Application Server V6.1 on the Solaris 10 Operating System.pdf

sg247615 WebSphere Application Server V7 Administration and Configuration Guide.pdf

sg247708 WebSphere Application Server V7.0 Concepts, Planning, and Design.pdf

sg248022 WebSphere Application Server V8.5 Concepts, Planning, and Design Guide.pdf

sg248043 Enterprise Caching Solutions using IBM WebSphere DataPower SOA Appliances and IBM WebSphere eXtreme Scale.pdf

sg248048 WebSphere Application Server V8.5 Migration Guide.pdf

sg248056 WebSphere Application Server V8.5 Administration and Configuration Guide for the Full Profile.pdf

sg248076 IBM WebSphere Application Server Liberty Profile Guide for Developers.pdf

sg248076 WebSphere Application Server Liberty Profile Guide for Developers.pdf

sg248079 POWER7 and POWER7+ Optimization and Tuning Guide.pdf

sg248194 Configuring and Deploying Open Source with IBM WebSphere Application Server Liberty Profile.pdf

sg248194 Configuring and Deploying Open Source with WebSphere Application Server Liberty Profile.pdf

tips1024 From Development to Production with the IBM WebSphere Application Server Liberty Profile.pdf

相关文章
相关标签/搜索