• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

j2ee性能调优之最小化资源压力测试法则

发布: 2009-1-30 11:52 | 作者: 网络转载 | 来源: 测试时代采编 | 查看: 1770次 | 进入软件测试论坛讨论

领测软件测试网 前面看到有人讲j2ee的性能调优,虽然这块不是自己的专长,但是猪养多了,也忍不住跳出来说几句。

  前面看到有人讲j2ee的性能调优,虽然这块不是自己的专长,但是猪养多了,也忍不住跳出来说几句。

  虽然几乎每本讲性能调优的书籍开篇都会提,没必要的情况下就不要做调优,但是我个人还是认为,所有系统在上线前,都应该做一次基本的压力测试并对相关的性能问题进行检测,但是迫于资源压力,很多项目都无法做正规的压力测试,一直到系统上线出现问题,才倒回来找原因。而正规的压力测试,往往因为需要严格模拟生产环境,需要耗费大量的资源,各类专家配合解决问题,并不是那么轻松的可以做下来的。

  而j2ee应用的特点就是以复杂性来回避传统问题,所以任意一个j2ee的部署,相对于php那样的结构都是比较复杂的。系统一旦发生性能问题,必须在程序、数据库、应用服务器、jvm、操作系统几大块中交叉进行考虑,根据实际情况问题,问题的原因可能异常复杂。我们可以想象一个项目,从来不做UT不做IT,只做一次UAT,然后直接提交给用户上线以后,修补错误的困难度和成本。

  经常看到一些调优的最后解决方案,可以肯定,几乎80%以上都是一些低级的程序错误导致的,剩下的20%虽然可能是用硬件,os参数调整等等问题解决了,但是其中很大一块,归根到底也是程序的问题。而在我们回顾这些错误的时候可以很惊人的发现,大部分都是一些低级错误。

  我提倡使用最小化资源的方式做一次压力测试,排除大部分浅显的应用问题。最小资源的意思,即在pc环境,使用应用可以运行的最小资源状态下,进行压力测试和性能问题侦测的工作。这种做法的优点如下。

  1. 环境容易搭建, 特别是不需要考虑大型硬件和网络条件等等,也回避了开发人员可能不熟悉unix和特定应用服务器等问题

  2. 不需要特别的数据库,操作系统和应用服务器专家配合,开发人员自身即可完成。

  3. 不需要特别的依赖os和应用服务器,jvm的监测工具。选择自己最熟悉的即可。

  4. 开发人员在熟悉这种过程以后,再转到正式的生产环境工作时也更有经验,更容易解决问题。

  对测试过程做一点简单介绍。

  工具准备:

  得益于开源技术的发展,大部分工具都可以免费获得,使用也比较简单。

  1. jvm 监控: 对jvm的运行状态进行分析,可以使用jvm自身带的特性输出日志,结合hp的jmeterprofile进行分析。也可以使用jrockit自带的图形化工具messioncontrol。

  熟悉什么用什么,越简单越好,目的主要是观察内存堆的变化,线程资源变化,gc情况等。

  2. 数据库监控工具:熟悉数据库的使用数据库自身的特性,不熟悉的可以使用第三方工具,主要目的是观察数据库的锁,连接数信息,对于db2我比较喜欢使用questcentral。 oracle使用OEM或者自身的数据字典已经可以。

  3. 应用服务器监控:主要目的是记录方法的调用情况和执行时间,找出频繁调用的方法和执行时间过长的方法。使用jprobe和jprofile都可以很轻松的做到。如果使用的应用服务器比较偏门,那么可以换一个支持这种检测工具的应用服务器。反正主要目的只是在找问题。

  4. sql执行监控:跟踪找出执行时间过长的sql。 我喜欢使用p6spy。

  5. 压力工具: jmeter+badboy ,有条件的可以用loadrunner,和loadrunner近似的还有一个免费的开源产品。 另外web应用的话,也可以使用selenium这样的ff扩展来做。微软vs自带的也不错,反正是什么简单用什么。

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/

TAG: 法则 性能 压力 资源

21/212>

关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备2023014753号-2
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网