在给客户进行应用程序维护的过程中,我注意到一些关于高负载条件下的性能问题。理论上,增加对应用程序的负载会使性能有所下降,但是我认为性能下降的比率远远高于负载的增加,同时我也发现,性能可以通过改变应用程序的逻辑来提升。为了更详细地了解这一点,我们需要做一些性能分析,这时,我们自然就要用到一些性能分析工具。Java有许多的性能分析工具,可以帮助我们弄清楚这个问题,但是我们应该使用哪一款工具呢?为了做出正确的选择,我列出性能分析应满足一些最低要求:必须包括对应用程序的类、方法及时间的监测必须包括对内存的监测必须具有易用性我配置了一个使用RESTful接口的Spring应用程序,使用MongoDB作为数据存储,还使用Solr搜索,并在Tomcat服务器上部署。
最近给Global Mail做了一次性能测试,由于要支持不同帐号进行并发请求,原计划使用的Apachebench就只能放弃,从而使用Apache Jmeter这个性能测试工具,完成了这次的测试需求,下面我就来简单介绍下这个工具和我第一次使用时遇到的问题及如何去解决的。apache jmeter是100%的java桌面应用程序,它被设计用来加载被测试软件功能特性、度量被测试软件的性能。设计jmeter的初衷是测试web应用,后来又扩充了其它的功能。jmeter可以完成针对静态资源和动态资源(servlets, perl脚本, java对象, 数据查询s, ftp服务等)的性能测试。jmeter可以模拟大量的服务器负载、网络负载、软件对象负载,通过不同的加载类型全面测试软件的性能。并且jmeter提供图形化的性能分析
Benchmark Factory是一种高扩展性的强化测试、容量规划和性能优化工具,可以模拟数千个用户访问应用系统中的数据库、文件、Internet及消息服务器,从而更加方便地确定系统容量,找出系统瓶颈,隔离出用户的分布式计算环境中与系统强度有关的问题。无论是服务器,还是服务器集群,Benchmark Factory都是一种成熟、可靠、高扩展性和易于使用的测试工具。很多产品测试特别是Web服务程序都会使用的测试软件,主要用于测试Web页面性能及稳定性。BenchmarkFactory通过记录和回放多用户测试中的事务处理过程,使IT专业人员能够更加方便地完成这一任务。
当今,计算机和软件工程发展越来越快,新的概念名词和技术手段层出不穷,可谓日新月异。在软件性能测试范畴内就有很多,诸如并发测试、压力测试、基准测试、测试场景等概念和名词,这让刚接触性能测试的新手眼花缭乱,目不暇接。但我们如果能深入软件性能测试的本质,从哲学的角度看问题,找出其内在联系,比如因果关系、形式内容关系,甚至重叠关系等,理清思路之后,那么做软件性能测试就会如庖丁解牛,游刃有余。
Apache JMeter是100%纯java桌面的应用程序,用于测试Web的应用工具,是一个压力测试工具,被设计用来测试客户端/服务器结构的软件(例如web应用程序)。它可以用来测试包括基于动态和静态资源程序的性能,例如静态文件,Java Servlets,Java对象,数据库,FTP服务器等。JMeter可以用来在一个服务器、网络或者对象上模拟负载来测试它的强度或者分析在不同的负载类型下的全面性能。另外,JMeter提供一个基于GUI的应用程序,用于设计和执行多种可重用的测试计划。它还支持以XML格式捕捉测试结果,用于测试后的统计分析。可以使用它做性能的图形分析或在大并发负载测试你的服务器/脚本/对象。
1.性能测试的主要指标2.性能测试的主要类型3.分析需求设计测试用例4.讨论1.性能测试的主要指标响应时间吞吐量并发并行资源利用率响应时间:响应时间指的是客户端发出请求到得到响应的整个过程所经历的时间。响应时间=网络传输时间*2+服务器处理时间+客户端显示时间。性能指标之响应时间吞吐量:是指单位时间内流经被测系统的数据流量,一般单位为b/s,即每秒钟流经的字节数。吞吐量是指单位时间内系统处理的客户请求的数量,直接体现软件系统的性能承载能力。
由ThoughtWorks员工开发并维护的Selenium(http://selenium.thoughtworks.com)正是帮助我们解决上述问题的得力工具。简单地说,Selenium是一个自动化的web应用功能测试工具——我知道,这个短语不足以让读者了解它所描述的对象。所以,在进一步介绍之前,我想先请读者来看一个活生生的例子。
JProfiler简介是一个全功能的Java剖析工具(profiler),专用于分析J2SE和J2EE应用程序。它把CPU、执行绪和内存的剖析组合在一个强大的应用中。JProfiler可提供许多IDE整合和应用服务器整合用途。JProfiler直觉式的GUI让你可以找到效能瓶颈、抓出内存漏失(memory leaks)、并解决执行绪的问题。
Apachejmeter是一个100%的纯java桌面应用,用于压力测试和性能测量。它最初被设计用于Web应用测试但后来扩展到其他测试领域。Apachejmeter可以用于对静态的和动态的资源(文件,Servlet,Perl脚本,java对象,数据库和查询,FTP服务器等等)的性能进行测试。它可以用于对服务器,网络或对象模拟繁重的负载来测试它们的强度或分析不同压力类型下的整体性能。你可以使用它做性能的图形分析或在大并发负载测试你的服务器/脚本/对象。
JMeter是基于Java的,开放源代码的性能测试工具, 能够对HTTP和FTP服务器进行压力和性能测试, 可以对任何数据库进行同样的测试(通过JDBC), 各种负载统计表和可链接的计时器可供选择, 缓存和离线分析/回放测试结果, 完全多线程框架, 高可扩展性。
Apache JMeter 是100%纯JAVA桌面应用程序, 被设计为用于测试C/S结构的软件. 可以用于测试静态和动态资源的性能, 例如:静态文件、Java Servlets、CGI Scripts、Java Object、数据库和FTP服务器等等. Jmeter还可以用于模拟大量负载来测试一台服务器的性能或者对象的健壮性或者分析不同负载下的整体性能.
改善Java服务器的性能需要模拟负载下的服务器。创建一个模拟环境、搜集数据并且分析结果可能是对许多开发人员的挑战。这里介绍了使用JProfiler跟踪分析Java服务器的性能。 简单的性能问题很容易分离并解决,然而,大的性能问题,如内存溢出或者系统的罢工,通常在系统处于高负载情况下发生,就不能这么简单的处理了。这些问题需要一个独立的测试环境、一个模拟的负载,并且需要仔细地分析和跟踪。
在中间件应用服务器的整体调优中,有关于等待队列、执行线程,EJB池以及数据库连接池和StatementCache方面的调优,这些都属于系统参数方面的调优,本文主要从另外一个角度,也就是从应用的角度来解决中间件应用服务器的内存泄露问题,从这个角度来提高系统的稳定性和性能。
JMeter,一个100%的纯Java桌面应用,它是Apache组织的开放源代码项目,它是功能和性能测试的工具。JMeter可以用于测试静态或者动态资源的性能(文件、Servlets、Perl脚本、Java对象、数据库和查询、ftp服务器或者其他资源)。原先Jmemer是为Web/HTTP测试而设计的,但是它已经扩展以支持各种各样的测试模块。它和用于HTTP和SQL数据库(使用JDBC)的模块一起运送。它可以用来测试静止资料库或者活动资料库中的服务器的运行情况,可以用来模拟对服务器或者网络系统加以重负荷以测试它的抵抗力,或者用来分析不同负荷类型下的所有运行情况。它也提供了一个可替换的界面用来定制数据显示,测试同步及测试的创建和执行。
Apache JMeter 是100%纯JAVA桌面应用程序, 被设计为用于测试CS结构的软件. 同时也可以用来测试静态和动态资源的性能, 例如:静态文件, Java Servlets, CGI Scripts, Java Object, 数据库和FTP服务器等等. JMeter可用于模拟大量负载来测试一台服务器,网络或者对象的健壮性或者分析不同负载下的整体性能.
Jmeter脚本的第一个要素是线程组(Thread Group),因此首先让我们往返顾一下。每个线程均独立运行测试计划。因此, 线程组常用来模拟并发用户访问。假如客户机没有足够的能力来模拟较重的负载,可以使用Jmeter的分布式测试功能来通过一个Jmeter控制台来远程控制多个Jmeter引擎完成测试。
JVM监控工具,可很好的监视CPU、线程和内存 可与Eclipse进行整合,也可单独监控某一进程 可监控远程计算机上的进程 观察每个对象的生存情况,提升模块性能 可观察GC情况、CPU使用情况、堆使用情况等
JProfiler工具介绍。JProfiler是一个全功能的 Java 剖析工具,JProfiler 直觉式的 GUI 可以让用户通过视觉上的观察就能方便的找到瓶颈和内存漏失等问题。
众所周知,Java语言是一门非常适合网络开发的语言,用Java语言进行性能测试脚本开发将会大大提高测试开发效率。LoadRunner中提供了对Java虚拟用户的支持。Java虚拟用户依托于JDK,这大大扩充了LoadRunner的脚本开发功能。测试人员既可以用Java虚拟用户来测试基于Java的应用系统的性能,又可以使用Java语言的强大开发脚本功能来测试其他平台的系统性能。
因前段时间碰到java.lang.OutOfMemoryError:PermGenspace问题,想到检控TOMCAT及调优问题,从网上搜到这个工具,一开始配置了N久后也未配起来,后来偶然间配置好了,随把过程写到此,以便共享测试:tomcat5+jprofiler_windows_5_1_4它的注册码可到官网上注册一个,免费试用,当然是有期限的有的时候Tomcat跑Web应用会慢慢死掉,CPU100%占用。