`
youxinrencwx
  • 浏览: 71537 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

服务集成平台性能测试与优化(应用与环境)

 
阅读更多

目标:

根据四方面的配置调整,观察SIP5.5(服务集成平台)在高并发下的性能情况。

由于SIP接收的请求都是服务型处理请求,因此认为Apache+Jboss只会带来多余的转发损耗,所以正好这次也作一个验证,看看Apache+JBoss是否不适合于这种纯动态服务请求的情况。

四方面环境比较:

1. JBoss APR模式与Http1.1模式性能差异。(确切来说应该是JBoss内置Tomcat采用APR的情况)。

2. 是否采用Apache+JBossApache不同的转发模块带来的性能差异。

3. Memcached Client版本优化后对性能影响。

4. ISP有不同延时对于SIP的性能影响。

前置条件:

SIP版本5.5,并发用户600ISP默认耗时20msApache配置和JBoss WebContainer配置,一些优化配置参见附加信息。

最终结果:

SIP采用Apache(Mod_jk)+JBoss(APR)+Cache2.4.2,具体配置参见附加信息。

测试结果表格:

详细的测试报告可以参看:http://spreadsheets.google.com/pub?key=pcsQ9Wm01cIEjjQcistPNDg

JBoss配置差异测试比较:

Apache(2.0.52)配置

JBoss(4.2.1)配置

Cache Client Version

TPS

TPS区间

APR

2.4.2

1705

1600-1900

HTTP1.1

2.4.2

1615

1550-1700

Mod_jk(1.2.27)

HTTP1.1

2.4.2

2090

1800-2800

Mod_jk(1.2.27)

APR

2.4.2

3223

3200-3400

补充:

配置成为Http1.1模式的两种情况下,测试结果TPS波动频率很高,在Mod_jk模式下波动幅度也很大。

1. 可以证实在非APR模式和高并发的情况下Web容器处理请求能力不稳定,同时也直接影响到了SIP的性能。

2. 在测试中发现不采用APR模式的情况下,Web容器会消耗大量的socket连接通道。

Apache模块差异测试比较:

Apache(2.0.52)配置

JBoss(4.2.1)配置

Cache Client Version

TPS

TPS区间

APR

2.4.2

1705

1600-1900

Mod_jk(1.2.27)

APR

2.4.2

3223

3200-3400

Weblogic.so

APR

2.4.2

1033

350-1400

补充:

Weblogic.so模块是以前系统遗留的http请求转发模块。在测试过程中Weblogic模块的测试中波动频率和幅度都很大。根据测试结果可以看出:

1. APR模式下,Apache+JBoss对于SIP这种无静态资源访问,纯API性质的服务来说依旧会有比较好的优化效果,特别是在接受请求环节。(不论是TPS还是TPS波动区间和频率都有很好的表现)

2. Weblogic.so这个模块性能绝对不行,稳定性极差。

Cache客户端版本差异测试比较:

Apache(2.0.52)配置

JBoss(4.2.1)配置

Cache Client Version

TPS

TPS区间

APR

2.4.2

1705

1600-1900

APR

2.4

1615

1550-1700

Mod_jk(1.2.27)

APR

2.4.2

3223

3200-3400

Mod_jk(1.2.27)

APR

2.4

2485

2650-2800

补充:

2.4.22.4版本在单独测试的环境下:500并发用户,每个并发用户1000getset,性能相差40%左右。

上面测试结果可以看出:

1. 在无apache时,性能有所提升,但不明显,而在有apache时,性能大幅提升,证明在无apache的情况下,memcache客户端已经不是性能瓶颈,因此替换版本效果不大,在http请求处理性能大幅提升的情况下,memcache客户端性能优化的优势就得到了体现。

2. 在测试中也发现Apache + JBoss波动频率和区间都小于其他几个测试情况,图形十分平稳,证明处理请求不是系统瓶颈。

ISP响应时间差异测试比较:

Apache(2.0.52)配置

JBoss(4.2.1)配置

Cache Client Version

ISP响应时间(ms)

TPS

TPS区间

Mod_jk(1.2.27)

APR

2.4.2

20

3223

3200-3400

Mod_jk(1.2.27)

APR

2.4.2

110

Mod_jk(1.2.27)

APR

2.4.2

900

这部分测试尚未结束,测试的崔同学去海南度假了^_^,避开了杭州的连绵阴雨。等下周继续。

测试优化总结:

1. 不要认为内存使用无关性能。现在很对开发者认为内存申请分配是由gvm来管理,但是内存是否合理使用很可能会影响互联网应用的高并发下性能。GC带来的系统短暂停滞会在高并发下影响性能。

2. 使用java的方法需要有足够的“理由”和“度”。Java1.5以后对concurrent方面做了很不错的支持,但是这些并发处理毕竟会消耗资源,因此在能够避免频繁使用的情况下尽量优化流程。在一些简单的场景下,是否有必要使用一些比较耗时的方法,例如split,用起来很方便,但是在设计底层通信操作的时候还是分秒必争(JProfiler看看消耗的时间占用的比例以及调用的次数),用一些自己简单的方式替换。

3. 眼见未必为实,测试才得真知。在SIP5.5中考虑连接后端ISP方式由HttpURLConnection替换成为HttpClient,感觉HttpClient的开发模式更加容易认为是共享传输通道(Get,Post都单独作为包来交由HttpClient单个实例),虽然看到HttpURLConnection说明中提到会共享通道。结果一压,HttpClient根本上不去,原因是构建这些Get,Post本身也很耗时,同时HttpURLConnection底层共享优化的也很不错。HttpClient的优势还是在于去构建简单的客户端,能够处理附加cookies等额外需求。

4. 链式处理的情况下,上下文中共享信息减少数据频繁访问缓存。

5. 操作系统配置以及Web容器的配置会直接影响应用的性能,特别是一些Socket交互比较频繁,会有很大并发的应用。具体的配置可以参见最后的说明。

6. APR模式对于服务器处理能力有很大的影响,EpollUnix socket都会来带很大的性能提高(降低资源消耗)。

7. 在过去谈过异步Servlet的方式(Servlet3.0的特性之一),但是JBoss5测试下来看,稳定性并不好,并且可能会有一些并发问题。

8. 先列出性能瓶颈可能点,然后分别对已经优化的模块进行单独测试,最后整合并且通过多场景测试来验证优化结果。


附加信息:

JBoss Web Container配置:

<Connector port="8128" address="${jboss.bind.address}"

maxThreads="1024" maxHttpHeaderSize="8192"

emptySessionPath="true" protocol="HTTP/1.1"

enableLookups="false" redirectPort="8443" acceptCount="1024"

connectionTimeout="20000" disableUploadTimeout="true" useBodyEncodingForURI="true"/>

Apache work的配置:

Keep alive off

<IfModule worker.c>

ServerLimit 80

ThreadLimit 128

StartServers 10

MaxClients 8000

MinSpareThreads 64

MaxSpareThreads 800

ThreadsPerChild 100

MaxRequestsPerChild 10000

</IfModule>

Linux配置信息:

执行:vi/etc/sysctl.conf

添加一行:net.ipv4.ip_local_port_range = 1024 65535

再执行:sysctl -p

更改ulimit –n属性,可用端口数,还有ip_conntrack_max

APR

Tomcat优化了IO(sendfile,epoll,OpenSSL)。操作系统的一些函数(随机数的产生,系统状态的获取等),本地进程优化(共享内存,NT的管道,UnixSocket)Tomcat有配置监听器直接会检测APR模块是否存在,在bin目录下建立native目录,并且放置对应的so或则dll即可。

分享到:
评论

相关推荐

    《Android性能测试》 PDF

    《Android性能测试》这本书深入探讨了Android应用性能优化的关键技术和实践方法。在移动开发领域,尤其是在竞争激烈的Android市场,提供高性能、低资源消耗的应用是开发者必须面对的重要挑战。本篇文章将依据书中的...

    开发者测试、web功能测试、移动应用功能测试、web性能测试

    整个测试流程涵盖了开发者测试、Web功能测试、移动应用功能测试和Web性能测试,这些测试互为补充,共同确保软件产品的质量和用户体验。测试不仅是找错,更是提升产品价值的过程,通过不断优化和改进,可以打造更加...

    J2EE性能测试

    从需求分析阶段就要开始考虑性能指标,在开发、部署、维护等各个阶段都要进行性能测试,持续优化应用性能。 11. 持续集成与性能测试:在持续集成的过程中集成性能测试,可以加快性能问题的发现和解决速度,提升软件...

    性能测试的分享PPT来自业界

    - **定义**:性能测试是指在受控环境中执行测试套件的过程,在不同的负载条件下进行,目的是理解系统(包括软件应用及其关联环境)如何满足特定业务需求。 - **目的**: - 测量事务响应时间。 - 确定应用吞吐量...

    APP性能测试工具

    在IT行业中,应用程序的性能...通过手机整机性能测试、功耗测试、CPU与内存采集以及自动化工具测试,开发者可以全面了解APP在实际环境中的表现,找出性能问题,进行针对性的优化,从而打造出更高效、更稳定的应用程序。

    flazr 视频流服务性能测试工具

    Flazr是一款强大的视频流服务性能测试工具,它专为评估和优化视频传输效率而设计。在当前数字化时代,高质量的视频流体验已经成为用户的基本需求,因此,对视频流服务进行性能测试至关重要。Flazr的出现,为开发者和...

    阿里云-性能测试服务产品简介-D.docx

    阿里云的性能测试服务是一款全面且强大的性能测试解决方案,旨在帮助企业和开发者发现并优化应用程序的性能瓶颈。该服务采用SAAS(Software as a Service)模式,具备强大的分布式压测能力,能够模拟海量用户的真实...

    性能测试\性能测试实践.ppt

    - 持续集成与持续测试:将性能测试融入开发流程,定期进行性能测试,确保性能稳定。 7. **注意事项** - 在不同应用阶段(如功能测试后)进行性能测试,以便更准确地发现问题。 - 针对不同场景(高峰/平常)设计...

    JAVA性能测试工具

    JAVA性能测试工具是IT行业中用于评估和优化JAVA应用程序性能的关键组件。这些工具旨在模拟真实世界的负载情况,帮助开发者识别和解决性能瓶颈,确保应用程序在高负载下仍能保持稳定和高效运行。以下是对几种主要JAVA...

    性能测试load11

    9. **WebStudio.nt**:可能是一个集成开发环境或测试工具的名称,用于创建和执行Web性能测试场景。 10. **zlib.nt**:zlib是一个广泛使用的开源库,用于数据压缩。在这个上下文中,可能涉及HTTP压缩性能测试,如...

    loadrunner性能测试培训ppt

    通过性能测试,我们可以发现系统的响应时间、并发用户数、资源利用率等方面的问题,从而提前优化,避免在生产环境中出现故障。相比于功能测试,性能测试更关注于系统的承载能力和稳定性,尤其是在大数据量和高并发...

    robot framework集成环境与web测试资料

    Selenium与JMeter集成.docx可能讲述了如何将两者结合,进行功能测试的同时,进行负载和性能测试,以评估Web应用在高并发情况下的表现。 5. **Robot Framework自动化测试**: "robot_framewok自动化测试 (1).pdf...

    安卓性能测试工具

    在安卓平台上,性能测试是确保应用质量和用户体验的关键环节。这个"安卓性能测试工具"包集成了多种工具,用于全面评估手机软件的性能表现,包括FPS(帧率)、CPU使用率、内存占用以及电量消耗等核心指标。下面我们将...

    行业应用软件测试平台和方案

    从给定的文件信息来看,该主题围绕着行业应用软件的测试实践展开,详细介绍了测试策略、工具选择、平台构建、环境设置以及团队文化建设等多个维度的知识点,旨在通过一系列最佳实践来提升测试效率与效果。...

    ArcGIS 性能测试

    - **Visual Studio 2005 Team Edition for Testers**:微软提供的集成开发环境中的测试组件,适用于.NET平台的应用程序。 #### 三、实际案例分析 ##### ArcGIS/ArcFM and ArcSDE – 大型电力公司 在实际应用中,...

    TinyShop性能测试报告1

    TinyShop性能测试报告的编写目的在于评估和优化TinyShop电子商务系统的性能,确保其在实际运营环境中能够稳定、高效地运行。本报告详细记录了测试过程、测试环境、测试内容以及所使用的工具,为系统性能改进提供了...

    itc测试应用集成

    5. **测试工具**:许多工具被用于ITC测试,如Apache JMeter用于性能测试,Postman或SoapUI用于API测试,Selenium用于UI自动化测试,以及Jenkins或GitLab CI/CD用于持续集成和部署。 6. **挑战与解决方案**:集成...

    Grpc和WebApi性能测试用例

    在IT行业中,性能测试是确保系统能够高效运行的关键环节,特别是在构建分布式服务时。本案例主要探讨了两种常见的服务通信协议:gRPC和WebAPI的性能对比。gRPC基于HTTP/2协议,采用Protobuf(Protocol Buffers)作为...

Global site tag (gtag.js) - Google Analytics