压测

作者: 柠檬萌呀 | 来源:发表于2019-03-08 09:44 被阅读0次

压测流程规范:

1. 压测机器申请

压测域名: 询问运维人员

压测机器: 看公司使用的服务器

     例如:服务机器(和线上机器一致(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相关信息;

需要熟悉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, 内存观察信息, 可用来做结果分析;

4. 数据分析

a. 接口优化压测:

对比接口优化前后在各个压测参数下的qps, 响应时间, tomcat线程数, gc最大时间, error异常情况;

b. 新上线业务接口:

计算该接口在线上能承受的最大qps, 响应时间, 异常压测出现的error

c. 性能瓶颈分析

对于线上出现cpu告警, 内存告警, 磁盘告警, 502告警等问题, 需要考虑分析系统的性能瓶颈, 瓶颈可能存在

于网络, cpu, 内存, 以及web服务的处理性能; 对于此类问题, 需要根据线上数据, 进行压测环境模拟, 观察

监控数据, 进行分析;

压测相关知识整理:

监控:

网络流量监控:

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 增加插件

相关文章

  • 性能压测学习大纲

    一、压测的目的 二、压测的完整流程 三、压测场景分析/组织测试脚本 四、压测数据准备 五、压测指标监控 七、压测结...

  • 压测tips

    压测前: 明确压测的目的,观测指标; 准备好压测方案,几组case,case分别压测多久; 申请压测环境,告知进行...

  • 阶梯压测

    今天我们来浅谈一下阶梯压测,那么,什么是阶梯压测,什么时候做阶梯压测,阶梯压测和普通压测又有什么区别呢?阶梯压测:...

  • 02_压测流程步骤

    做压测的时候,首先我们得知道压测需求!大部分都是有压测指标的,只要能达到指标就算完成任务! 选择压测工具,编写压测...

  • 流量录制,基于常态化压测

    简介 常态化压测、业务压测、集群压测、全链路压测、等基于特定需求的对后台接口进行的并发式请求,接口自动化压测数据的...

  • 提升cpu使用率

    如何优化压测工具发压能力 -- 提升cpu使用率 压测工具工作流程 压测工具一般在性能压测过程中用于对被压的系统产...

  • go实现的压测工具【单台机器100w连接压测实战】

    本文介绍压测是什么,解释压测的专属名词,教大家如何压测。介绍市面上的常见压测工具(ab、locust、Jmeter...

  • go 实现的压测工具,ab、locust、Jmeter压测工具介

    本文介绍压测是什么,解释压测的专属名词,教大家如何压测。介绍市面上的常见压测工具(ab、locust、Jmeter...

  • 服务端压测总结篇一:如何完整的做一次压测

    服务端压测系列: 服务端压测总结篇二:压测中的疑惑 压测步骤 一般来说,一次完整的线上压测包括以下7个步骤 1.梳...

  • locust压测RPS无法提高问题解决

    1、压测机器负载过高2、压测脚本配置问题3、被压测机器负载过高4、带宽

网友评论

      本文标题:压测

      本文链接:https://www.haomeiwen.com/subject/ugylpqtx.html