美文网首页
服务端压测流程

服务端压测流程

作者: Nubin4939 | 来源:发表于2019-03-01 14:20 被阅读0次

    压测流程规范:

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

    相关文章

      网友评论

          本文标题:服务端压测流程

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