存档

2009年6月 的存档

【每周精华】第一期(6月21日-28日)

2009年6月29日 hashei 没有评论

技术是需要钻研的,但是IT的发展一日千里,闭门造车难免会固步自封;作为公司的初级员工,老板让干啥就干啥又容易成为井底之蛙。所以欢迎添加jaintkiller at gmail dot com为好友,通过Google Reader一起分享优秀文章。当然我也会把自己觉得好的内容以每周一期的形式写在博客上,“问泉哪得清如许,为有源头活水来”。(其实我是偷懒不想更新)

[1]《豆瓣网技术架构变迁》

豆瓣网从2005年到现在的架构发展历程,PPT很早推出了,这次演讲视频总算是千呼万唤始出来。关注架构、关注大型web站点技术内幕的同学可以看看。

地址:http://www.infoq.com/cn/presentations/hongqn-douban

豆瓣的架构—专访豆瓣网站的技术总监洪强宁

[2]虚拟化扑面而来

虚拟化真是越来越近了,以前还只是听到个概念,去年Vmware来公司介绍VMware Infrastructure时还在考虑“一般的企业用不起,用得起的企业看不上”的问题。但现在虚拟化后对服务器利用率的提高、对电力消耗的降低、物理服务器管理的简化等好处已经深入人心,虽然还面对着几大厂商各自为政的窘境和把所有鸡蛋都放一个篮子里的担忧,但是已经有客户主动提出要把现有的非关键应用转移到虚拟机上去了。上次Red Hat来公司介绍的也是他们的RHEL5.0 Advanced Server中的虚拟化技术,所以趁早熟悉一下虚拟机的安装、管理、故障转移是正道——对于系统管理员来说。

服务器市场成本压倒一切

虚拟化整合之势凸显

[3]Java性能分析和监控

现在的主业不能丢:

使用Perf4J进行性能分析和监控

使用Jprofile解决应用服务器内存泄露问题诊断一例

WebSphere 2009年发展方向

WebSphere监控工具之Loadrunner

2009年6月27日 hashei 2 条评论

上一篇《WebSphere和DB2性能问题的发现和处理》中提到了通过定制WebSphere的性能监控基础结构(PMI)的监控对象,然后用自带的TPV(Tivoli Performance Viewer)工具查看运行情况。简单方便实用,却又有几个缺点:

  1. 一次只能监控一个AppServer:从控制台使用TPV时,一个浏览器同时只能观察一个AppServer的运行情况。就算新开窗口选择不同的Server,之前的窗口也会在刷新后变动到之后的Server运行情况。
  2. 在保存数据方面存在缺陷:TPV可以开启日志记录,但是这种日志是XML格式,现在还没有很好的工具能分析,且每采样一次,就会生成一个xml文件,短短1小时后就有上G数据,对于磁盘I/O的压力以及空间大小的占用不可忽视。
  3. 没有报表:我们无法查看某台WAS服务器一小时、一天、一周、一月或是任意指定的时间范围内的性能走势图。
  4. 没有警报功能。

不过TPV本来就并非定位为专业的监控工具,它提供的功能虽简单,但能满足我们分析过程中80%的需求。这个系列将介绍一些WebSphere下的监控和实时分析工具,希望能对TPV是个补充。这次介绍的是Mercury出品的Loadrunner。

“LoadRunner 是一种适用于各种体系架构的自动负载测试工具,通过模拟实际用户的操作行为和实施实时性能监测,来帮助用户排查和发现问题。”我们使用Loadrunner都是作为压力测试工具,单用来作为监控工具有点大材小用。但在做压力测试时,WebSphere的运行情况是重要的观察对象之一。通过在Loadrunner中监控WebSphere,同时监控操作系统的资源占用情况、Web服务器的运行情况,可以对比各个时间点、时间段的应用表现。

比如事务响应时间上升的时候是否是Web服务器积累了许多keep alive的链接没有释放,或者JVM正在做一次垃圾回收,亦或是线程池已经到达最大值、数据库连接已经用光……

废话说完,接下去是如何监控WebSphere6.X的方法。

首先要准备好Loadrunner8.1,并打上Fp4补丁。LR8.0虽然能够连接到WebSphere,但是不能获得计数器,Loadrunner9.0和9.1是大的不像样了,一个软件上G,所以没有尝试过。

WebSphere 中的配置 – 设置 PMI 规格级别

默认情况下,WebSphere 服务器中的基础架构性能监视(Performance Monitoring Infrastructure,PMI)的规范级别为“Standard”。 可以把它改成“全部”,这样可以监控更多的计数器。性能方面,会有5%~10%的下降,这也是没有办法的。你可以在确保应用一切正常后关闭监控功能,用Loadrunner得到更符合生产环境的结果。

  1. 连接到管理控制台 – http://ip:port/ibm/console
  2. 点击左侧树的“监视和调整”,点击“性能监视基础结构(PMI)。
  3. 点击需要启用数据收集的服务器。
  4. 点击基础架构性能监视(PMI)链接。然后启用 PMI 并为当前监视的统计集选择“全部”,应用变更。

安装perfServletApp.ear

  1. 点击企业应用程序,点击安装以安装 perfServletApp.ear 文件(默认在WebSphere/AppServer/installableApps目录下)
  2. 如果服务器启用了管理安全性,那么还需要“做下关联设置,perfServletApp安装完毕,进控制台重新设置这个该应用的“安全角色到用户/组映射”,选择“monitor”后点“查找用户”,然后搜索,将控制台中所有的帐户所有出现,将你需要授权访问改应用的帐户选择到右边。“确定”出来后再选择“所有已认证的用户吗”,让“monitor”关联到这个帐户。”

完成上述两步后重启服务器,让配置生效。

在浏览器中输入http://ip:port/wasPerfTool/servlet/perfservlet,若能够看到WebSpere的xml格式瞬时性能指标则配置成功。启用安全性的会让你输入用户名和密码,如果没有做过上面第二部的mapping操作,会报

PerformanceMonitor responseStatus=”failed” version=”6.1.0.0″
Error retrieving PMI data. javax.management.JMRuntimeException: ADMN0022E: Access is denied for the getStatsArray operation on Perf MBean because of insufficient or empty credentials.

Loadrunner设置

Loadrunner运行“Run Load Tests”,然后在场景的Run中,设置显示窗口为6个(默认4个)

点击新添加到一个窗口,双击左侧“Available Graphs”中“Web Application Server Graphs”中的“WebSphere 4.x-5.x”,对,你没看错,是4.x-5.x。

在新出来的窗口上右键点击Add Measurements,在出来的对话框中点击“Monitored Server Machines”下的add,选择WAS运行平台,Name中输入http://ip:port/wasPerfTool/servlet/perfservlet

或者你可以修改LR的配置文件
dat\monitors子目录下的xmlmonitorshared.ini文件,进行如下修改
[WAS4ServletMonitor]
DescrīptionFile=WebSphereDesc.xml
ServletName=perfservlet/
ServletAlias=wasPerfTool/servlet
然后添加monitor machine 时只要输入ip和端口即可

然后点击下面那个add,就会出现添加计数器画面

loadrunner1

之后你就能在窗口中看到计数器的监视情况了

loadrunner2

我一般会监视下面这些计数器

loadrunner3

上副图中完美的蓝色锯齿状曲线就是UsedMemory,当然你可以根据需要添加不同的计数器,可以看缓存的使用情况、命中率,Servlet的执行时间等等。比TPV可以说更加方便和“稳定”(使用过TPV的应该会有这个感受)。

最后附上监控IHS的方法

编辑httpd.conf文件,将LoadModule status_module modules/mod_status.so前的注释去掉,同时去掉下述几行前的注释。把Allow from中的.your_domain.com更换为你允许监控的IP来源即可,我的是本地地址。

<Location /server-status>
SetHandler server-status
Order deny,allow
Deny from all
Allow from 127.0.0.1
</Location>

重启IHS,在http://localhost/server-status 中你可以看到运行情况的概要,http://localhost/server-status?auto.Details是详细信息。在Loadrunner中添加“Web Server Resource Graphs Apache”这个Monitor即可。

预告

2009年6月24日 hashei 2 条评论

这两天因为出差,所以没怎么更新,接下去准备介绍WebSphere的监控工具。包括Loadrunner,Jprofile,HPjtune,同时也会很遗憾的告诉大家,JDK中自带的Jconsole无法使用在WebSphere6.1中。

敬请期待。

Google Docs不能打开问题

2009年6月24日 hashei 2 条评论

这两天不知道是否是由于众所周知的原因,Google Docs无法打开,所以请大家自己在http后添加s,以https的方式访问,应该就可以访问。

刚才又测试了一把,google.com、gmail都无法访问,用代理可以。64.233.189.99的google.com能上,216.234.179.13的google.com上不了了,现在通过ipconfig /flushdns之后都能访问,能上的google.com的ip为208.67.219.230,同时google docs也能打开了。

所以大家如果遇见不能访问的情况,请先施展十八般武艺,实在不行留邮件地址。

ps:希望这是我自己的问题,不是对google下刀的前兆。

分类: 生活感想 标签: ,

WebSphere和DB2性能问题的发现和处理

2009年6月21日 hashei 3 条评论

今天分享一个由IBM应用开发合作中心撰写的关于WebSphere性能调优的PDF,阐述了在目前典型的J2EE应用系统中,如何判断性能问题或瓶颈。从中间件层和数据库服务器两个方面给出了指导意见,特别是WebSphere V5的监控,采用客户端模式,而并非V6.1中的从管理控制台直接查看。现在用5版本的项目比较少,也算是一个知识点的学习。

使用“定制”性能监控基础结构(PMI)的监控对象,

在应用服务器响应慢的时候主要查看

Web Container(Web容器)中

  1. Thread Creates
  2. Thread Destroys
  3. Active Threads(活动的线程,如果该值比较高,说明有较多的请求在被处理,如果该值和设置的最大值一样大,则Web容器无法响应新的请求了)
  4. Pool Size

在JDBC连接池中

  1. Num Creates(创建的物理连接)
  2. Num Closes
  3. Num Allocates(从池中分配给程序的次数)
  4. Num Returns(程序使用完后释放给池的次数)
  5. Pool Size
  6. Free Pool Size
  7. Concurrent Waiters(并发等待连接数,如果该值比较高,说明有较多的线程无法获取数据源。)
  8. JDBC Time(每个JDBC调用时间,包括网络传输)。

具体内容,可前去阅读

启用安全性后无法停止WAS的解决方法

2009年6月20日 hashei 没有评论

按照前一篇启用WebSphere管理安全性,你也许已经为WAS添加了密码来防止未授权的访问。但是当你想在Windows服务中重启、停止websphere时,你会发现无法停止,提示你“发生内部错误”。而在Systemout.log中,则有:

00000056 RoleBasedAuth A SECJ0305I: 对于 admin-authz 操作 Server,基于角色的授权检查失败:stop:java.lang.Boolean:java.lang.Integer。用户 UNAUTHENTICATED(唯一标识:unauthenticated)未被授予下列任何必需角色:administrator, operator。

这是由于was服务启动用户一般是“本地系统”或者“Administraotr”,而这两个用户都是非认证(unauthenticated)的。如果没有被添加为服务,或者在Unix/Linux环境下,停止服务器时就会提示你输入用户名和密码,或者运行命令时添加“-username 用户名 -password 密码”参数。

所以解决的方法很简单,只要更新一下WAS服务属性即可。在wasHome下的bin目录中,运行

wasservice -add 服务名(跟在IBMWAS61Service – 后的那部分)-serverName server1 -profilePath E:\IBM\WebSphere\AppServer\profiles\AppSrv02 -stopArgs “-username 用户名 -password 密码”

启动服务时不需要用户名密码,所以不需要添加-startArgs参数。得到提示:

Service already exists, updating parameters…

阅读全文…