qps、tps、峰值估算、jmeter相关工具

我们系统并发量最大的服务是房价,然后在k8s有14个容器,每个容器的资源设置如下

resources:
    limits:
       cpu: '16'
       memory: 16Gi
    requests:
       cpu: 800m
       memory: 5153960755200m

换算memory: 5153960755200m,大概是5G多

换算规则如下:

cpu只有单位m或者没有单位。换算为:1CPU=1000m。

Memory的换算相对要复杂一些。Memory的单位分为两类:

两个单位间相差10的三次方的单位:E,P,T,G,M,K,k,m,u,n。(这个是1000来换算)
两个单位间相差2的十次方的单位:  Ei, Pi, Ti, Gi, Mi, Ki。(这个是1024来换算)

 

虽然之前写过jmeter很多相关内容,但是翻起来看,还是有点费劲,偏理论。这里记录下常用的场景

一、面试点

1、qps和tps

TPS:事务数/秒,指一个客户机向服务器发送请求然后服务器做出反应的过程。以下2种情况都视作一个事务
    a、单个接口内部的多个查询或操作
    b、多个接口的组合。例如:一个用户登录接口和一个获取用户信息接口,那么这两个接口的组合也可以被视为一个事务。
QPS:每秒处理的查询数,每个查询通常是一个独立的请求(请求内部可以包含多个查询操作,比如查询redis、数据库、接口)。
    qps可以看做tps的子集。

tps三位数就可以算高并发;qps看场景,比如广告上万qps都是正常的。

 2、性能测试三个方面

负载测试,不限制软件的运行资源,测试软件的数据吞吐量上限,以发现设计上的错误或验证系统的负载能力;
压力测试,在计算机数量较少或系统资源匮乏的条件下运行测试。通常资源包括内内存、CPU 可用性、磁盘空间和网络带宽;
并发测试,当测试多用户并发访问同一个应用、模块、数据时是否产生隐藏的并发问题,如内存泄漏、线程锁、资源争用问题

3、示例

系统要求能支撑500人1s内同时登录,响应时间在2s以内。
通过出具性能测试报告来证明系统的能力。

 4、峰值估算

28定律:80%的用户 在20% 时间请求接口
假设:   10w用户,高峰期是早上8点 - 12 点
估算的峰值:(10w * 80%) / (4*60*60 * 20%) 人/sec

 

二、Jmeter相关

1、英文翻译,因为即便设置简体中文,但还有些是没有翻译的

  Apply to:适用范围
  Main sample and sub-samples:  作用于父节点取样器及对应子节点取样器
  Main sample only:仅作用于父节点取样器
  Sub-samples only:  仅作用于子节点取样器
  JMeter Variable:  作用于jmeter变量(输入框内可输入jmeter的变量名称)

2、显示运行日志

  选项——勾选日志查看,即可显示运行日志

  选项——日志级别,即可设置日志级别 

3、json提取器,适用于上一个的出参是下一个的入参

  提取的返回数据如下,上面的提取规则类似python中json的取数,只是不需要引号:
  {"code":200,"obj":                                 {"userName":"XIONGSI","token":"eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJVc2VyTmFtZSI6IlhJT05HU0kiLCJFeHBpcmVUaW1lQnlNaW51dGVzIjoxLCJTdGFydFRpbWUiOiJcL0RhdGUoMTYxNTEwNjA4NDMzMilcLyJ9.QcCe78BkBYkmvriKanLjfNAfaoslWR_ihm9PKWe2PoHiTFXFa9LFLk0GPVvcLSnmC5fgL2sVNhnciUCIEyVrvA  "}}

3、bean shell  ,主要用于Java脚本的运行,下图就是在bean shell打印了token,然后在日志中验证是否拿到了token

 

posted @ 2021-03-07 16:47  whitewall  阅读(929)  评论(0)    收藏  举报