本系统作为接口适配系统,前有系统,后有系统,在现场集成测试中被测试人员认为性能瓶颈制造者。虽后经测试验证发现,性能瓶颈在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
分享到:
相关推荐
主要介绍如何使用LoadRunner进行性能测试工作,主要包括四大部分:入门篇、提高篇、监控篇和实战篇。入门篇主要讲述性能测试的基础知识,对...实战篇通过两个案例:C/S架构和B/S架构来介绍性能测试的整个过程。
了解大型服务进化路线,编码技巧,学习Linux,性能调优。Docker/ k8s助力,监控,日志主要技术: SpringBoot + JPA + Antd Mybatis-plus + Antd + Vue3 。项目信息通过下面的链接可快速体验。后台管理模块(toB) ...
从Ajax原理,ExtJS在OA型系统中的应用及性能调优出发,设计实现了三农电子商城后台管理系统,并探讨了ExtJS在基于B/S结构的OA型电子商务系统中对用户体验的改善。系统界面美观,操作方便,开发效率高,维护规范,...
了解大型服务进化路线,编码技巧,学习Linux,性能调优。Docker / k8s助力,监控,日志主要技术: SpringBoot + JPA + Antd Mybatis-plus + Antd + Vue3 。 项目信息 通过下面的链接可快速体验。 后台管理模块(toB...
(3)停止->stopped,s,S,2; s Subclass ->指定设备的子类名称,subclass包括什么类型可用参数P显示; t Type ->指定设备类型名称; 查看系统中所有的外置物理磁盘 lsdev -Cc pdisk -s ssar -H name status location ...
一款基于B/S架构的网站在线客服软件或许能解决上述问题!获得最新版本与技术支持联系电话:15559697913 。 Me客服系统特点: 1、通过浏览器就能聊天,兼容市面上所有浏览器,Socket优化主机负载小,Pdo防御性能良好...
PHP 性能分析第三篇: 性能调优实战 PHP 性能追踪及分析工具 xhprof 的安装与使用 Working with PHPUnit and Selenium Webdriver PHPUnit文档 The Clean Architecture in PHP 读书笔记 基于MySQL和PHP的分布式事务...
可以通过SQLab xpert来对当前SQL语句进行全面的分析,给出各种合理的调优意见,只需要单击工具栏上的Tuning按钮: 可以方便的保存,打开和运行SQL脚本 支持对查询结果进行修改, 可以把查询结果以...
6、B/S系统项目(7天) 项目说明 1、网上图书商城。这是一个典型的B2C网上商城,使用经典的复杂三层架构(工厂模式)进行开发。涉及图书管理、搜索、订单管理、导航管理等核心模块。在讲解ASP.Net基础后安排这样一...
内容简介 本书从Hadoop的缘起开始,由浅入深,结合理论和实践,全方位地介绍Hadoop这一高性能处理海量数据集的理想工具。...附录B Cloudera’s Distribution for Hadoop 附录C 准备NCDC天气数据
有近20年使用Oracle技术产品以及Oracle数据库管理员/Oracle数据库应用管理员的经验,是真正应用集群、性能调优以及数据库内部属性方面的专家。同时是一位演讲家及Oracle ACE。 JARED STILL 从1994年就开始使用...
第1章 初识Hadoop 数据!数据! 数据存储与分析 与其他系统相比 关系型数据库管理系统 网格计算 志愿计算 1.3.4 Hadoop 发展简史 ...附录B Cloudera’s Distribution for Hadoop 附录C 准备NCDC天气数据
:从零开始学习关于软件测试,性能测试,软件工程的知识 : 从初级程序员向高级程序员迈进 --- 系统调优公开课 :程序员的必修课 --- 线上紧急故障排除 : 高级软件工程师的必修课 -- 如何进行代码重构 : 关注程序员的...
│ 第54节:性能调优和配置使用建议.avi │ 第55节:Nginx+Varnish组合应用.avi │ 第56节:Varnish对性能的提升和优化.avi │ 第57节:应用上Varnish后的体系结构.avi │ 第58节:Memcached入门和缓存的含义.avi │...