工作中的一个老系统,最近变的很慢,开发人员也没找到原因,用的是tomcat5 , 硬件配置还是很强的,8核CPU+8G内存,系统慢的现象是:页面打开的速度还可以,但查询很慢,一到人多时,查询就很慢,最后用jdk6中带的visualVM 工具,观察后,发现用的数据源居然是 Spring 自带的那个用于测试的数据源,这个数据源仅用于自已的开发环境,对于生产环境而,最少得用于dbcp,c3p0,等,后来把它改成了ali 的 durid 后,观察了一天,正常了 。
后来PM要求对系统做个压力测试,一想到LoadRunner 它太大了,我的机器又安装不了,最后看到了apache中的ab测试工具,真是感谢Apache ,后面又找到了一个Apache的JMeter 也是个不错的工具,完全是java开发的。
以下在解讲下 apache2.2中的ab测试,这个很简单,可以去google,有人说测试的不太准,但也可以用来测试看看。
1.tomcat的配置为:
catalina.bat:
set JAVA_OPTS= %JAVA_OPTS% -Xms1024m -Xmx1024m -XX:MaxPermSize=128M
这里也可以加上远程调试和 JMX 监控的脚本,见另一小记。
server.xml
<Connector port="8080" maxHttpHeaderSize="8192" useBodyEncodingForURI="true"
maxThreads="1000" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
compression="on" compressionMinSize="2048"
compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain"
connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="UTF-8"/>
进入apache/bin中的目录:
F:\Tomcat\Apache2.2\bin>ab -n 1000 -c 60 http://135.192.10.24:9001/qhcrm/query/a
ddressQuery.jsp
This is ApacheBench, Version 2.3 <$Revision: 655654 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/
Benchmarking 135.192.10.24 (be patient)
Completed 100 requests
Completed 200 requests
Completed 300 requests
Completed 400 requests
Completed 500 requests
Completed 600 requests
Completed 700 requests
Completed 800 requests
Completed 900 requests
Completed 1000 requests
Finished 1000 requests
Server Software: Apache-Coyote/1.1
Server Hostname: 135.192.10.24
Server Port: 9001
Document Path: /qhcrm/query/addressQuery.jsp
Document Length: 695 bytes
Concurrency Level: 60
Time taken for tests: 2.078 seconds
Complete requests: 1000
Failed requests: 0
Write errors: 0
Total transferred: 927000 bytes
HTML transferred: 695000 bytes
Requests per second: 481.20 [#/sec] (mean)
Time per request: 124.688 [ms] (mean)
Time per request: 2.078 [ms] (mean, across all concurrent requests)
Transfer rate: 435.62 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 2 5.2 0 16
Processing: 0 118 19.7 125 156
Waiting: 0 67 35.8 63 156
Total: 0 120 19.6 125 156
Percentage of the requests served within a certain time (ms)
50% 125
66% 125
75% 125
80% 125
90% 141
95% 141
98% 156
99% 156
100% 156 (longest request)
可以直接用ab 查看它里面有很多参数,现就主要两个:-n 总的请求数, -c 并发数,后面再加上请求的页面地址。
因我的tomcat 5上的 server.xml不是如上所设,在70并发时会有错误,
F:\Tomcat\Apache2.2\bin>ab -n 1000 -c 70 http://135.192.10.24:9001/qhcrm/query/a
ddressQuery.jsp
This is ApacheBench, Version 2.3 <$Revision: 655654 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/
Benchmarking 135.192.10.24 (be patient)
apr_poll: 由于系统缓冲区空间不足或列队已满,不能执行套接字上的操作。 (730055)
不知是怎么原因,准备把参数调大,再来测试。
2. 关于JMeter ,它是Java开发的,首先从apache上下载 apache-jmeter-2.8.gz
这是一个分布式的,在你的服务器上,也是tomcat所有的机器上也有copy 一份。
1. 直接解压,运行
apache-jmeter-2.8\bin 下的 jmeter-server.bat linux 下中 jmeter-server.sh , 如果显示有1099端口的冲突,就要改 jmeter.properties 中的
# RMI port to be used by the server (must start rmiregistry with same port)
server_port=1098 ------------- 把下面注掉的打开改为 1098 或别的端口
#server_port=1099
2, 在你本机放一个相同版本的jmeter, 最好每个机器上的jmeter都是一样的,
修改 jmeter.properties中的
# Remote Hosts - comma delimited
remote_hosts=127.0.0.1:1098 --- 找到以下注掉的,打开,改为 远程机的IP:端口号,这里可以配多个,用,隔开,即可,在下面的客户端中会看到可以测试多个远程机上的系统。
#remote_hosts=localhost:1099,localhost:2010
Jmeter 是通过RMI 来远程连接的。
3. 启动后,就打开发客户端:
如果,配了多个,在运行那里会显示出多个出来。
4. 在测试计划中新建一个 线程组:
5.
在这个界面上,配置测试系统的IP :Port, 页面PAth:
6.
再右键加入监听器,里面有很多种,可以都加上来看看,
这样,就可以启动了,在上面Tool bar中有一个启动的图标,点一下它就会运行,就可以在监听器中查看所有的结果。
,它还可以测JDBC,WebService 等 ,功能很强大,需要的话,参考官方文档,在些只做入门。
对了,新建的线程组,还要对它另存为,保存为一个 .jmx 的文件,下次还可以打开再看。
- 大小: 119.2 KB
- 大小: 99.6 KB
- 大小: 81 KB
- 大小: 116.8 KB
- 大小: 105.6 KB
- 大小: 141.7 KB
分享到:
相关推荐
例如,首先使用nmon监控系统基线,然后用badboy录制用户交互作为测试脚本,接着利用Jmeter进行大规模的压力测试,最后用ab进行简单的性能基准测试。通过这样的组合,我们可以全面了解系统的性能表现,找出可能存在的...
在测试过程中,我们需要关注的关键指标包括响应时间、吞吐量(每秒完成的请求数)、错误率以及CPU和内存的使用情况。通过调整PHP配置参数(如max_execution_time、memory_limit等),优化数据库查询,或者使用缓存...
8. **性能测试**:测试节点也可能用于压力测试,例如使用Apache JMeter或ab工具模拟高并发访问,以评估系统在极限条件下的性能和稳定性。 9. **安全测试**:测试节点也可能涉及安全测试,如SQL注入、XSS攻击等,以...
3. **负载测试**:使用工具如Apache JMeter或ab(ApacheBench)模拟大量并发请求,测试HAProxy在高负载下的性能和稳定性。 4. **故障转移测试**:模拟后端服务器故障,查看HAProxy是否能自动将流量切换到健康的...
你可以使用JMeter、ab等工具模拟大量并发请求,测试Elasticsearch的响应时间和吞吐量。同时,监控系统的资源消耗,如CPU、内存、磁盘I/O等。 8. **恢复与备份**:在测试过程中,可能会涉及到数据的恢复和备份。...
- 使用工具(如`ab`或`JMeter`)进行压力测试,确保服务器能够承受预期的负载。 - 安装和配置日志监控工具,如Logrotate,定期清理和备份日志,便于故障排查。 完成上述步骤后,你将拥有一个在CentOS 7上运行的、...
其次,进行性能评估,通过工具如ab、JMeter、TcpCopy等进行压力测试,监控CPU、网络、磁盘IO等关键指标。第三步是找出性能瓶颈,这可能涉及代码优化、配置调整等,例如检查auto_prepend_file配置是否合理,以减少...
例如,可以使用`ab`(ApacheBench)或`JMeter`来模拟用户请求,测试IIS的响应速度和并发处理能力。 **S3C44B0** 是三星公司生产的一款基于ARM7TDMI内核的微处理器,常见于嵌入式系统中。在IIS的上下文中,这可能是...
18. **性能测试与调优方法论**:介绍性能测试工具,如JMeter、Ab,以及系统调优的一般步骤和策略。 通过《MySQL性能调优与架构设计》的学习,读者将能够掌握MySQL的全方位知识,从基础操作到高级优化,从单机到...
8. **性能监控**:使用工具如Apache JMeter、ab(ApacheBench)进行性能测试,评估服务器负载能力,对服务器性能进行持续监控。 9. **更新与维护**:定期检查并更新Apache到最新版本,以修复安全漏洞和引入新特性。...
8. **性能监控工具**:了解如何使用工具(如`ab`、`wrk`或`JMeter`)来测量和分析Nginx的性能,这对于优化和调试至关重要。 9. **Dockerfile和容器化部署**:学习如何使用Docker构建和部署Nginx服务,这在现代云...