Linux环境下Tomcat性能测试方法
ab、wrk),并通过包管理器(如apt、yum)或官网下载安装。例如,Ubuntu下安装ab:sudo apt install apache2-utils。JMeter是功能强大的开源负载测试工具,支持模拟多用户并发、复杂场景(如登录、数据库操作),并能生成详细的HTML报告。
核心步骤:
./jmeter(Linux下)。/index.jsp)。ab是Apache自带的命令行工具,适合快速进行基准测试,输出简洁的关键指标(如QPS、平均响应时间)。
基本命令:
ab -n 1000 -c 100 http://<Tomcat服务器IP>:8080/
参数说明:-n表示总请求数(1000次),-c表示并发数(100个并发),最后跟测试URL。
结果解读:输出中的“Requests per second”即为吞吐量(QPS),“Time per request”(平均响应时间)是核心性能指标。
wrk是基于Lua脚本的高性能工具,支持多线程和Lua扩展,适合高并发场景(如10万级QPS)。
基本命令:
wrk -t12 -c100 -d30s http://<Tomcat服务器IP>:8080/
参数说明:-t表示线程数(12个),-c表示并发连接数(100个),-d表示测试持续时间(30秒),最后跟测试URL。
扩展功能:可通过Lua脚本模拟复杂请求(如登录、提交表单),例如:
wrk.method = "POST"
wrk.headers["Content-Type"] = "application/x-www-form-urlencoded"
wrk.body = "username=admin&password=123456"
。
测试过程中需实时监控以下指标,判断Tomcat性能瓶颈:
top -b -n 1查看%Cpu(s),若长期超过80%需优化线程池或代码。free -m查看used/total比例,若超过80%需调整JVM堆内存(-Xms、-Xmx)。iostat -x 5查看%util(磁盘利用率),若超过70%需优化磁盘或缓存。netstat -an | grep ESTABLISHED | wc -l查看当前连接数,若接近maxThreads需扩容。根据测试结果调整Tomcat配置,提升性能:
conf/server.xml中的<Connector>标签,调整maxThreads(最大线程数,默认200,可根据CPU核心数×2调整,如40核设为80)、acceptCount(等待队列大小,默认100,若并发高可适当增加,但不宜超过1000)。bin/catalina.sh(Linux下),添加JAVA_OPTS参数,设置初始堆内存(-Xms)和最大堆内存(-Xmx)为相同值(避免频繁扩容),例如:JAVA_OPTS="-Xms2048m -Xmx2048m -Xss512k"(根据服务器内存调整,如16G内存可设为8G)。org.apache.coyote.http11.Http11AprProtocol,提升静态资源处理性能(需安装tomcat-native包)。maxThreads)。