服务端压测流程
压测流程规范:
1. 压测机器申请
压测域名: press.XXX.com
压测机器: 服务机器(和线上机器一致(2核8G的机器)), 压测机器(32核16G的机器)
获取压测机器ip: @运维配置, 使用xshell之类工具登录到压测机器上进行压测;
2. 压测工具:
wrk之类工具可以作为轻量压测工具, 具体使用见压测资料文档;
demo: wrk 命令 -t 并发线程数,根据机器cpu核心数进行配置, -c 每个线程发起的http请求连接数 -d 压测持续时间, -timeout 设置请求超时时间并记录
wrk -t2 -c100 -d1m --timeout 5 http:/press.ufotosoft.com/sns/sceneApi/listResource?version=2.17.203&lang=en&sceneId=158&apiLevel=4&compressType=7z&resolution=480&lastStamp=1509179278&eCode=1
阿里云日志:
服务器日志会采集到阿里日志上(包含access访问日志, tomcat线程日志, gc日志, error日志), 可以观察到qps, 响应时间等信息;
账号和密码以及使用方式可找@管理员, 开发人员以及运维人员确认;
控制台地址:http://signin.aliyun.com
服务器状态观察: pingpoint上可以观察到服务具体信息, 包括内存, cpu, jvm相关信息;
账号密码以及使用方式找@管理员, 开发人员确认;
beta地址:
http://54.175.230.211:9192/#/main
需要熟悉Linux的常用命令, 如cd, ls, pwd, top, free, ds, du 等命令, 使用这些命令进行服务器操作;
3. 压测策略
a. 测试空接口, 逐步增加并发请求数, 测试服务处理上限;
b. 测试业务接口, 因为接口有缓存, 为了模仿不同用户访问, 请使用不同参数进行压测;
c. 观察阿里日志, 请指定压测时间, 方便观察qps, 服务处理异常等信息;
d. 压测时, 可在压测机器上使用dstat观察机器状态, 使用pingpoint观察服务的cpu, 内存, jvm虚拟机信息;
e. 请使用excel记录每次压测的参数, wrk 结果, qps, tomcat线程, error, cpu, 内存观察信息, 可用来做结果分析;
压测相关知识整理:
监控:
网络流量监控:
sudo apt install nload 监控机器出入流量, 命令: nload
sudo apt install iftop 监控机器网卡流量: 命令: 通过ifconfig 判断哪个网卡再用, 然后 iftop -i ech0, // ech0 网卡名称
文件句柄数:
ulimit -a, 查看open files, 最大值65535, 不修改会影响socket文件数上限, 导致请求上限较低;
设置文件句柄数: ulimit -n 65535
cpu和内存监控;
压测工具:
tsung:
ubuntu下安装: sudo apt install tsung
tsung 配置文件http_sample.xml:
/usr/share/doc/tsung/examples 对应案例
配置文件详解:
官网地址:
http://tsung.erlang-projects.org/ 官网介绍地址
http://tsung.erlang-projects.org/user_manual/conf-file.html 官网配置文件讲解地址
相关概念了解:
系统吞吐量:
系统承压能力, 与request请求对cpu消耗, 磁盘io, 网络传输等紧密相关;
重要指标:
QPS(每秒请求量), TPS(每秒事务量), 并发数(系统同时处理的request请求数或事务数), 响应时间(各个区间的平均响应时间)
关联关系: 并发数 = QPS * 平均响应时间, QPS(TPS) = 并发数/ 平均响应时间;
常用系统监测命令:
top: 系统进程监控, 显示出 CPU 的使用、内存的使用、交换内存、缓存大小、缓冲区大小等;
htop: 升级版top,
安装命令: sudo apt install htop
netstat: 网络统计, -p 显示进程pid, -a 显示端口
netstat -ntlp 查看进程所占端口
netstat -a |more 查看所有的服务端口
vmstat: 用于显示虚拟内存、内核线程、磁盘、系统进程、I/O 模块、中断、CPU 活跃状态等更多信息;
lsof:
iotop: 监控磁盘i/o
安装命令: sudo apt install iotop
iostat: 输入输出统计
安装命令: sudo apt install sysstat
iftop: 网络带宽监控
dstat: 性能监控, dstat 是一个可以取代vmstat,iostat,netstat和ifstat这些命令的多功能产品
安装命令: sudo apt install dstat
命令介绍: https://linux.cn/article-3215-1.html
强烈推荐
注: linux相关压测工具使用说明: https://shimo.im/docs/lmimulUb7eUh801R
推荐资料:
https://www.cnblogs.com/wangiqngpei557/p/7953453.html 大佬压测实例
https://lihz1990.gitbooks.io/transoflptg/content/ 强烈推荐
https://blog.csdn.net/MenofGod/article/details/79009646 jmeter 增加插件