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

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

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

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

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

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

数据库连接池建议初始化调优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参数调整:


参数


参数值


说明


nofiles


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

二、JVM大小的优化

先设置一个经验值,比如最小值2G,最大值4G,同时开启verbose gc。然后做压力测试,或者跑业务,跑一段时间以后根据gc日志再设置一个合理的JVM值。

1、GC日志是设置JVM大小时,最好的参考

2、我看到的很多生产环境GC都是开启的,如果追求极限性能肯定关闭了好

3、session复制是否打开与业务要求相关,性能是是确保业务正常的前提下再考虑的问题

新系统部署上线时,如何评估设置内存大小的合理性?

这个考虑的因素很多,比如,并发用户数,你的应用是不是吃大内存型的?比如要生成大的报表,要返回大的数据库结果集。

通常可以以压力测试来预估一个大致的值,然后再慢慢进行调整。

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

WAS7.0 虚拟机 LINUX集群 F5做负载均衡,经常在业务繁忙期遇到某一节点假死情况,在WAS控制台中查看该节点一切正常,F5由于判定假死节点正常所以正常分发负载,造成分发到改节点的访问用户无法使用应用系统,请问有类似的问题的解决方法吗?

这种问题可以从两方面着手:

1、F5探测的方式要准。可以编写一个应用,然后让F5去探测,返回200/500/501之类定制的代码来进行决定要不要进行分发了。另外一个可以直接用F5 + IHS + ODR + WAS,然后加上健康管理策略的方式进行。

2、后端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

四、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数据里面有会话数这一项。

五、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 应用服务器创建的每个事务总数的变化

监控总的事务的变化

六、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;不知道哪里出现了问题?

1、我服务器端 health center agent 已经开发了 1972端口,并且我查到了这个端口一直在监听等待连接

2、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。

七、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)

八、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

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

九、关于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还是有很大的不同的。

十、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操作系统主动释放

十一、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

时间: 2024-11-10 14:41:19

基于Linux的WebSphere性能调优与故障诊断的相关文章

书讯 —《产品级性能调优与故障诊断分析》

<产品级性能调优与故障诊断分析> 封面巨照 作者简介 郑健,2006~2009连任三届<微软最有价值专家>,荣获<DevWOW微软博客达人>优胜奖,荣获微软<最有影响力开发者>奖项,通过微软[MCSA/MCSE]认证,公司性能优化专家,CSDN 博客专家,著有[庖丁解牛:纵向切入Asp.net 3.5控件和组件开发技术]一书,目前在北京用友软件做产品优化方面的工作. Email: [email protected] 本书主要内容 一个运行中的系统会受到到很多

图书 —《产品级性能调优与故障诊断分析》

<产品级性能调优与故障诊断分析> 封面巨照 作者简介 郑健,2006~2009连任三届<微软最有价值专家>,荣获<DevWOW微软博客达人>优胜奖,荣获微软<最有影响力开发者>奖项,通过微软[MCSA/MCSE]认证,公司性能优化专家,CSDN 博客专家,著有[庖丁解牛:纵向切入Asp.net 3.5控件和组件开发技术]一书,目前在北京用友软件做产品优化方面的工作. Email: [email protected] 本书主要内容 一个运行中的系统会受到到很多

Linux服务器常用性能调优工具

Linux服务器的性能往往受到CPU.内存.磁盘I/O.网络带宽等方面的影响,对于每个Linux后台服务器开发人员来说,掌握一些常用的性能调优工具是十分有必要的.下图几乎涵盖了一个系统的方方面面,图中的工具都可称得上是性能调优方面的“瑞士军刀”,短小精干.功能强大. 1.strace 在Linux中,进程不能直接访问硬件设备,当进程需要进行读取磁盘文件,接收网络数据等访问硬件设备 的操作时,必须由用户态模式切换至内核模式,通过系统调用访问硬件设备.strace可用来跟踪程序使用的底层系统调用,可

websphere性能调优之dump命令

基于WebSphere 构建的企业应用,时常会出现性能问题,在严重的情况下还会提示出内存溢出,这是一件很让人恼怒的事情.在WebSphere Application Server(Was)运行的时候,内存溢出,会生成大量的溢出文件,如Javacore, Heapdump等文件,占用了大量的磁盘空间.在这种情况下,时常会出现一连串的系统问题,如部署在Was的所有应用服务都报错,Was连控制台也无法访问等. 为解决问题,我们通常会选择重新启动整个Was或者服务器,然后分析运行日志SystemOut.

Linux服务器的性能调优理论篇

一.网站架构相关 (1)评估网站性能涉及的专业名词术语 1.PV(Page View) PV即访问量,中文翻译为页面浏览,代表页面浏览量,用户每刷新一次就会计算一次.PV的具体计算方法是:从浏览器发出一个对网络服务器的请求(Request),网络服务器接到这个请求后,会将该请求对应的一个页面(Page)发送给浏览器,从而产生一个PV. 2.UV(Unique Visto) UV即独立访问,访问网站的一台电脑客户端为一个访客,如果按天计算,程序统计会从0:00至24:00这段时间内的电脑客户端,且

linux 多核CPU性能调优

常常感觉系统资源不够用,一台机子上跑了不下3个比较重要的服务,但是每天我们还要在上面进行个备份压缩等处理,网络长时间传输,这在就很影响本就不够用的系统资源: 这个时候我们就可以把一些不太重要的比如copy/备份/同步等工作限定在一颗cpu上,或者是多核的cpu的一颗核心上进行处理,虽然这不一定是最有效的方法,但可以最大程度上利用了有效资源,降低那些不太重要的进程占用cpu资源: 查看系统下cpu信息: cat /proc/cpuinfo taskset就可以帮我们完成这项工作,而且操作非常简单:

linux概念之性能调优

vm

&lt;Linux性能调优指南&gt;主要思路流程

网上IBM很早放出的一本免费电子书, 十来年了,参考意义还是很大. 国内有翻译成中文在线阅读的版本. 见如下两个URL Linux Performance and Tuning Guidelines <Linux性能调优指南> https://www.gitbook.com/book/lihz1990/transoflptg/details ========================================= 服务器优化思路 管理变更流程 管理变更和性能优化并不直接相关,但可能是

Linux性能调优,从优化思路说起

Linux操作系统是一个开源产品,也是一个开源软件的实践和应用平台,在这个平台下有无数的开源软件支撑,我们常见的apache.tomcat.mysql.php等等,开源软件的最大理念是自由.开放,那么linux作为一个开源平台,最终要实现的是通过这些开源软件的支持,以最低廉的成本,达到应用最优的性能.因此,谈到性能问题,主要实现的是linux操作系统和应用程序的最佳结合. 一.性能问题综述 系统的性能是指操作系统完成任务的有效性.稳定性和响应速度.Linux系统管理员可能经常会遇到系统不稳定.响