#化鲲为鹏,我有话说#在鲲鹏上调优Tomcat的一个实践

举报
KP001 发表于 2019/11/19 15:50:03 2019/11/19
【摘要】 环境准备在鲲鹏弹性云服务器A上部署Tomcat 8.5(OpenJDK 1.8),云服务器使用规格/镜像使用 4vCPUs | 8GB | kc1.xlarge.2/CentOS 7.6 64bit with ARM。在同一个可用区同一个VPC子网下使用另外一个云服务器B( 2vCPUs | 4GB | kc1.xlarge/CentOS 7.6 64bit with ARM),用于部署压测...

环境准备

在鲲鹏弹性云服务器A上部署Tomcat 8.5(OpenJDK 1.8),云服务器使用规格/镜像使用 4vCPUs | 8GB | kc1.xlarge.2/CentOS 7.6 64bit with ARM。


在同一个可用区同一个VPC子网下使用另外一个云服务器B( 2vCPUs | 4GB | kc1.xlarge/CentOS 7.6 64bit with ARM),用于部署压测工具wrk(https://github.com/wg/wrk


压测方法

测试命令参考:./wrk -t12 -c400 -d30s http://EIP:8080/

(使用12个线程,建立400个链接,对 http://EIP:8080/ 进行压测30秒)


样例输出:

Running 30s test @ http://EIP:8080/

  12 threads and 400 connections

  Thread Stats   Avg      Stdev     Max   +/- Stdev

    Latency   635.91us    0.89ms  12.92ms   93.69%

    Req/Sec    56.20k     8.07k   62.00k    86.54%

  22464657 requests in 30.00s, 17.76GB read

Requests/sec: 748868.53

Transfer/sec:    606.33MB


本文使用Requests/sec这个指标来作为评估tomcat性能的指标。


默认配置下性能

在A上部署完Tomcat后,直接运行startup.sh启动web服务器;

在B上编译wrk压测工具,运行./wrk -t8 -c1024 -d120s http://EIP-of-A:8080/ ,对A上的Tomcat进行压测,测试5次求平均,数据如下:



Requests/sec

第一次

21838.58

第二次

21547.30

第三次

21709.64

第四次

21761.35

第五次

21785.64

5次平均

21728.5


几个调优方法

  1. 关闭access_log,在conf/server.xml文件中找到下面这一段AccessLogValve,并注释掉

image.png

  1. 开启APR

    安装tomcat-native:yum install tomcat-native

      在conf/server.xml文件中找到下面这一段:

      image.png

      并修改为如下:

      image.png


上述两步完成后,重启tomcat服务:bin/shutdown.sh && bin/startup.sh



调优效果

再使用wrk进行压测5次:


Requests/sec

第一次

29445.73

第二次

29466.23

第三次

29186.04

第四次

29073.79

第五次

29145.23

5次平均性能

29263.4


调优提升性能 29263.4/21728.5  -  1 = 34.6%


【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。