JAVAJava 杂谈饥人谷技术博客

压测http服务经验:如何搭建tomcat压测环境

2017-12-08  本文已影响0人  拉普拉斯兽

目的

压测服务,找到服务器里应用的瓶颈。

选取业务

选取了高PV的业务,和用户能一步触达的业务(本人指的“一步触达”,是指通过推送或者其他途径,可以快速进入的业务)。如:闪屏广告、评论列表等

测试工具

f9de5eda-9ea0-44c6-9896-a6a04f6da39d.png

1.Jmeter可以配置多种控制器,根据不同需求选择,本人选择的是“简单控制器”;

2.断言,根据响应内容来断定是否请求成功;

3.聚合报告,各路指标,重点考察:平均响应时间/中位数/cpu峰值/错误率/吞吐量(qps)。

503954d8-a571-41be-b0d2-698b6752c280.png

你的文件路径\jdk1.8.0_91\bin

接下来,需要配置tomcat下的catalina.sh


JAVA_OPTS='-XX:+UseG1GC -XX:+UseStringDeduplication -Dcom.sun.management.jmxremote -XX:+HeapDumpOnOutOfMemoryError'

#服务器IP

JAVA_OPTS='-Djava.rmi.server.hostname=121.41.XX.XX'

#监听端口 

JAVA_OPTS="${JAVA_OPTS} -Dcom.sun.management.jmxremote.port=8999"   

JAVA_OPTS="${JAVA_OPTS} -Dcom.sun.management.jmxremote.ssl=false"

#开起用户名密码登录

JAVA_OPTS="${JAVA_OPTS} -Dcom.sun.management.jmxremote.authenticate=true" 

#设置密码文件路径

JAVA_OPTS="${JAVA_OPTS} -Dcom.sun.management.jmxremote.password.file=/mnt/tomcat/tomcat_8181/conf/jmxremote.password" 

#设置用户权限文件路径

JAVA_OPTS="${JAVA_OPTS} -Dcom.sun.management.jmxremote.access.file=/mnt/tomcat/tomcat_8181/conf/jmxremote.access" 

这些配置都会在本地的visualVM登录时使用,登录以后便可查看jvm的堆栈,线程情况

a2e3fc08-4df1-4226-9c2d-fdc8f8712636.png

可以启动脚本


while true ; do

    top -p PID -n 1 -b > temp.log ;

    cat temp.log |  awk 'NR==8  {printf $9 " cpu per "  $10 " memory per " '"\"$(date  +%Y-%m-%d-%H:%M:%S)\""'  " \n"}' | tee -a top_v1.log;

    sleep 1;

done

参数控制

在测试过程中,会对部分参数进行设置,进而观察结果变化。

(mysql和redis的连接数,只有两个结点,没有中间取值)


-XX:+UseG1GC -XX:+UseStringDeduplication

关系图

d04f359d-e983-434f-998e-6f0f6f869a09.png

注意点

上一篇 下一篇

猜你喜欢

热点阅读