`
lydawen
  • 浏览: 472369 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

记一次简单性能调优(b/s)

    博客分类:
  • java
 
阅读更多

  本系统作为接口适配系统,前有系统,后有系统,在现场集成测试中被测试人员认为性能瓶颈制造者。虽后经测试验证发现,性能瓶颈在C系统,但毕竟出现性能问题,于是准备进行一次测试,在不考虑A,C的情况下我们的系统能达到什么样的一个能力。

 

用户->A系统->B系统->C系统,B系统为本系统,负责接口适配。

A系统为门户系统,B为本系统负责接口适配,C系统为运营商系统。

 

现场反馈的情况,在双机(8G内存,CPU*4,具体参数不详)情况下,持续1小时的压力测试,只有200hits/s左右,这与我所想象的差别比较大。

 

本地测试环境:

 

硬件配置:CPU E5620  @  2.40GHz X2(16核),内存 32G
操作系统:CentOS release 5.4(64bit,内核2.6.18)
tomcat5.5,jdk1.6 64bit

 在未做任何调整情况下,单机跑30分钟200多hits/s

 

1、因为后端使用tomcat,所以想到的就是把线程数调大,调到1000,发现处理能力稍有上升,但不理解。

2、调整jvm参数,经过几次对新手代参数,垃圾回收算法的测试后,最终使用参数(因现场内存相对小一些,所以这里也尽量也基于现场内存来考虑):

 

 

-Xmx4g
-Xms4g
-Xmn1g
-XX:PermSize=128m
-XX:MaxPermSize=128m
-XX:+UseConcMarkSweepGC
-XX:MaxTenuringThreshold=3
-XX:CMSInitiatingOccupancyFraction=85
-Dcom.sun.management.jmxremote.port=8899
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false

 最后三行为测试监控需要。这个参数并不完美,但相比之前将young设置较大,gc间隔时间相对长,但一次gc开销的时间完全不能接受,达到0.x秒,监控看到的CPU用来处理GC的时间也较明显。改为上述参数后,GC较频繁,但一次开销时间较少,对CPU的影响基本能忽略。修改上述参数后,单机跑半小时可达到400hits/s,有一些提升,但还未达到目标。

2、visualvm上场,连接远程jvm 8899端口,监控到下图,让我比较意外:



  log4j占用了绝大量的cpu,tomcat http处理线程第二,第三是我们代码。为了验证log4j影响了性能,将log调到error级(这里有个前提,因为系统为接口适配系统,所以A进来的请求、出去到C的请求以及获取到的响应,返回给A的响应都需要info输出)继续监控,发现性能大大改观,见下图:



 从上图能清楚看出,现在CPU都用到该用的地方,跑30分钟下来,达到了800hit/s,出现了几个错误。现在的问题在于tomcat又占用了较多CPU,理想状态是与业务代码7/3,目前还在摸索。

3、因项目情况需要,日志还是需要输出,于是只能在log4j上想办法了,首先将console日志关闭,日志只输出到一个文件中(之前同时输出到指定文件及catalina.out);将写日志缓存设置到800k左右。实测发现,使用AsyncAppender带来的性能提升并不明显。经过这一番折腾,稳定在600hits/s,超过合同所要求的250并发不少。

 

  linux/unix资源监控工具,推荐使用ibm nmon。本人主要做开发,只能记录自己测试的一点小心得。

 

 

  • 大小: 29.7 KB
  • 大小: 58.9 KB
  • 大小: 241.4 KB
  • 大小: 209.7 KB
  • 大小: 251.6 KB
  • 大小: 247.6 KB
  • 大小: 146.1 KB
分享到:
评论

相关推荐

    PB11.5 C/S转B/S操作方法及所需组件包

    5. **调试与测试**:在Web服务器上部署应用程序,进行功能测试和性能调优。 四、转B/S组件包的使用 "PB11.5 C/S转B/S组件包"通常包含必要的库文件、驱动程序以及Web服务器配置指南。例如,ASPAJAXExtSetup_PConline...

    J2EE性能调优.docx

    J2EE性能调优是Java开发中至关重要的环节,特别是在大型企业级项目中。本文将主要探讨针对J2EE应用的调优策略,以WebLogic服务器为例。在进行调优时,我们需要遵循一些基本原则和步骤。 1.1 调优原则: - 性能考虑...

    DBA常用的SQ(性能调优方面)

    根据给定文件的信息,我们可以提炼出Oracle数据库管理(DBA)在性能调优方面常用的一些SQL查询语句。这些语句涵盖了数据库性能分析的关键领域,包括会话管理、等待事件、I/O统计、缓存命中率、索引使用情况等。下面...

    Mysql性能调优专题.zip

    MySQL性能调优是一个涵盖多个方面的复杂主题,包括但不限于数据库引擎的选择、事务处理、索引优化、查询优化以及架构设计。以下是对压缩包中各文件名所对应知识点的详细阐述: 1. **InnoDB引擎底层原理**:InnoDB是...

    深入性能测试:LoadRunner性能测试、流程、监控、调优全程实战剖析 中文PDF

    主要介绍如何使用LoadRunner进行性能测试工作,主要包括四大部分:入门篇、提高篇、监控篇和实战篇。入门篇主要讲述性能测试的基础知识,对...实战篇通过两个案例:C/S架构和B/S架构来介绍性能测试的整个过程。

    基于J2EE平台的B/S系统性能优化设计研究.pdf

    然而,随着系统规模的扩大和用户数量的增长,性能问题逐渐凸显,因此,对基于J2EE平台的B/S系统进行性能优化设计显得尤为重要。本文将深入探讨如何通过各种技术手段提升系统的响应速度、处理能力和资源利用率。 1. ...

    loadunner进行B/S测试的培训PPT下载-老紫竹

    总之,LoadRunner提供了一个全面的平台,从录制用户操作到分析性能数据,帮助测试人员进行B/S应用的性能测试,确保系统在高负载下仍能稳定运行。通过熟练掌握上述知识点,可以更有效地进行性能测试和问题定位。

    B/S网站优化设计

    以上是针对【B/S网站优化设计】的一些关键技术和策略,涉及到的范围包括并发控制、数据库优化、前端性能提升、服务器性能调优以及问题排查等方面。这些技术和策略都是为了确保系统在高并发、高可用性、高性能和安全...

    基于J2EE的三层B/S企业信息系统 (2005年)

    - **性能优化**:通过对系统进行压力测试和性能调优,确保系统在高并发场景下依然能够保持良好的响应速度。 - **容错机制**:通过设置备份服务器和数据复制策略,增强了系统的容错能力和数据恢复能力。 ### 结论 ...

    DB2缓冲池和索引调优的方法.doc

    b.BPNAME BufferpoolName,s.PAGESIZE TBSPageSize,b.NPAGES BufferpoolPages,b.PAGESIZE BufferpoolSize from SYSCAT.BUFFERPOOLS b,SYSCAT.TABLESPACES s where s.BUFFERPOOLID=b.BUFFERPOOLID"|more 三、索引的...

    DB2缓冲池和索引调优的方法

    b.BPNAME BufferpoolName,s.PAGESIZE TBSPageSize,b.NPAGES BufferpoolPages, b.PAGESIZE BufferpoolSize from SYSCAT.BUFFERPOOLS b,SYSCAT.TABLESPACES s where s.BUFFERPOOLID=b.BUFFERPOOLID"|more * 查看 mv_...

    Mysql运维调优

    ### MySQL性能调优 #### 三、查询优化 1. **索引设计**:合理创建索引可以极大地提高查询速度。需要根据业务需求选择合适的索引类型(如B树、哈希索引等),并注意避免索引过多导致的维护成本增加。 2. **SQL语句...

    马士兵jvm调优笔记.docx

    - **复制算法**(Copying):将内存分为大小相等的两块,每次只使用其中一块,在垃圾回收时,将还活着的对象复制到另一块上面,然后再把已使用过的内存空间一次清理掉。这种算法适用于新生代,因为每次回收都有大量...

    性能测试方案(20210921173540).pdf

    测试方案应考虑到Java虚拟机(JVM)的性能调优,包括内存管理、垃圾收集(GC)机制等。 - “TPS”可能指每秒事务处理数(Transactions Per Second),它是衡量系统处理能力的一个重要指标。 - “CPU”指的是中央...

    性能测试方案模版.doc

    性能调优是一个迭代的过程,需要不断地测试和优化,直到系统达到预期的性能水平。 总之,《性能测试方案模版》提供了一套全面的性能测试框架,涵盖了从测试设计到测试执行再到测试结果分析的全过程。遵循这个框架,...

    我的资源-iostat实测

    iostat是一款强大的Linux系统工具,用于监控系统的输入输出性能,特别是在服务器环境中,它能帮助我们及时发现和解决I/O瓶颈问题。通过对iostat的深入理解和实测,我们可以更有效地管理和优化我们的系统资源。 ...

    磁盘io性能监控(linux和windows).docx

    磁盘IO性能监控在IT运维中扮演着至关重要的角色,特别是在服务器性能调优和故障排查过程中。无论是Linux还是Windows系统,了解磁盘IO的状态对于识别系统瓶颈和优化系统性能至关重要。 在Linux环境中,我们通常使用...

    性能测试方案模版.docx

    这份模板涵盖了多个关键方面,包括概述、测试目标、测试设计、统计测试数据、性能测试报告输出以及性能调优与回归。 1. **概述**: 文档概述了对首页、注册、登录、站内交流、站搜索、技术资料上传与下载等模块的...

    bcmall:以教学为目的的电商系统。包含ToB复杂业务,互联网高并发业务,缓存应用; DDD,微服务指导。模型驱动,数据驱动。了解大型服务进化路线,编码技巧,学习Linux,性能调优。 Dockerk8s助力,监控,日志收集,中间件学习。前端技术,逐步实践等。主要技术:SpringBoot + JPA + Mybatis-plus + Antd + Vue3。

    了解大型服务进化路线,编码技巧,学习Linux,性能调优。Docker/ k8s助力,监控,日志主要技术: SpringBoot + JPA + Antd Mybatis-plus + Antd + Vue3 。项目信息通过下面的链接可快速体验。后台管理模块(toB) ...

    数据库应用系统开发课程设计.doc

    8. **数据库性能优化**:学习使用索引来加速查询,理解数据库的性能调优策略。 课程设计涉及的具体项目包括但不限于进销存管理系统、人力资源管理系统、网上校友通讯系统、网上购物系统和高校学生公寓管理系统。每...

Global site tag (gtag.js) - Google Analytics