接口压测指南
接口压测指南
- 一、 为什么需要进行接口压测
- 二 、接口压测的目标是什么
- 三、 用什么工具进行接口压测
- 四、 接口压测核心指标
- 4.1 JMeter的报告模板
- 4.2 ApiPost报告模板
- 五、 接口慢如何排查
- 5.1 大体排查思路
- 5.2 排查工具
- 5.3 压测经验
一、 为什么需要进行接口压测
- 突然有一天领导反馈他在使用产品功能时,感觉到页面有卡顿、停留时间过长
- 客服反馈用户投诉页面加载速度慢
- 运营推广/活动大促
- 为了能够彻底的了解为啥慢,活动能够承接多少用户/流量,此时此刻就需要进行对相应的产品功能对应的接口进行摸底,性能压力测试
二 、接口压测的目标是什么
在做接口压测之前,需要定义清楚本次压测希望达到什么效果,符合什么样的预期,只有清晰的量化指标,才可以有效指导接口压测。
例如:在100个并发的情况下,该接口响应时间P95百分位在200ms
三、 用什么工具进行接口压测
压测工具一般有开源和自研,本文档主要罗列有哪些开源的接口压测工具
工具 | 网址 |
---|---|
ab | https://httpd.apache.org/docs/2.4/programs/ab.html |
jmeter | https://jmeter.apache.org/ |
LoadRunner | https://www.microfocus.com/zh-cn/products/loadrunner-professional/overview |
ApiPost | https://www.apipost.cn/ |
四、 接口压测核心指标
- 响应时间: 平均、中位数、P75、P90、P95、P99、最小值、最大值
- 吞吐量: 每秒能够处理多少个请求
- 接收报文:每秒接收多少KB的数据
- 发送报文:每秒发送多少KB的数据
其中响应时间、吞吐量为最核心的两个指标
4.1 JMeter的报告模板
4.2 ApiPost报告模板
五、 接口慢如何排查
5.1 大体排查思路
- 确定接口的内部逻辑是怎样的,做了哪些事情
- 是不是资源层面的瓶颈、硬件、参数配置的问题?
- 针对查询类接口,是不是增加了必要的缓存?若有缓存还慢,进一步分析是不是缓存key多大?
- 是不是有依赖于三方接口?若有依赖,是否配置连接超时时间,读取数据超时时间?
- 是不是sql语句慢?(是否建立索引、是否连表查询)
- 是否是网络层面的问题?(带宽不足、DNS解析慢、丢包等等)
5.2 排查工具
- Arthas可以帮忙诊断某个接口具体某个方法耗时多少
- Prometheus或者听云APM、Skywalking收集JVM数据,内存、线程
- Top命令查看服务器负载
- jstack/jconsole/jstat/jhat分析JVM进程
5.3 压测经验
- 一般情况下,我们通过优化SQL语句、合理使用缓存、串行改并行几个手段就能取得不错的效果;
- 资源层面出问题了一般就需要进行架构调整,单纯改代码很难有质的变化;
- 网络带宽出问题一般是一种幸福的烦恼,因为这意味着你负责的系统用户流量上来了;
- 懂得压测比较容易,难得是如何分析压测的结果,如何采集压测期间的各种指标数据(JVM的指标、接口指标,Redis服务指标、数据库指标,Docker指标、物理机指标),如何把收集到的指标放在一起分析,解读
相关文章:
接口压测指南
接口压测指南 一、 为什么需要进行接口压测二 、接口压测的目标是什么三、 用什么工具进行接口压测四、 接口压测核心指标4.1 JMeter的报告模板4.2 ApiPost报告模板 五、 接口慢如何排查5.1 大体排查思路5.2 排查工具5.3 压测经验 一、 为什么需要进行接口压测 突然有一天领导…...
计算机辅助药物设计AIDD-小分子-蛋白质|分子生成|蛋白质配体相互作用预测
文章目录 计算机辅助药物设计AIDD【小分子专题】AIDD概述及药物综合数据库学习机器学习辅助药物设计图神经网络辅助药物设计自然语言处理辅助药物设计药物设计与分子生成 计算机辅助药物设计【蛋白质专题】蛋白质数据结构激酶-Kinase相似性学习基于序列的蛋白质属性预测基于结构…...
深度学习-yolo目标检测-机器学习-计算机视觉-python学习路线(呕心沥血出品-绝对精品-附资源链接)
学习路线 1. 计算机视觉基础知识 图像处理基础:了解图像的基本处理技术,如滤波、边缘检测、直方图等。数字图像处理:熟悉数字图像的表示、颜色模型、图像增强等基本概念。opencv课程链接:Python for Computer Vision with OpenCV and Deep Learning资料推荐: 书籍:《数字…...
ubuntu2204 防火墙ufw限制某ip对某端口的访问
公司内部有个ip为10.10.10.1的网关,每天定时端口扫描,然后扫描发送的数据包http server解析不了,日志里就会记录这个错误,有点烦, 用防火墙过滤一下 ubuntu的防火墙命令是 ufw, 跟ufo挺像的,也…...
常见代码优化案例记录
1. 使用StringBuilder优化字符串拼接: // 不优化的写法 String result ""; for (int i 0; i < 1000; i) {result i; }// 优化的写法 StringBuilder resultBuilder new StringBuilder(); for (int i 0; i < 1000; i) {resultBuilder.append(i)…...
【android开发-04】android中activity的生命周期介绍
1,返回栈 android中使用任务task来管理activity,一个任务就是一组存放在栈里的活动的集合,这个栈被称为返回栈。栈是一种先进先出的数据结构。当我们启动一个新的活动,他会在返回栈中人栈,并处以栈顶的位置࿰…...
java后端技术演变杂谈(未完结)
1.0版本javaWeb:原始servletjspjsbc 早期的jsp:htmljava,页面先在后端被解析,里面的java代码动态渲染完成后,成为纯html,再通过服务器发送给浏览器显示。 缺点: 服务器压力很大,因为…...
UDS 诊断报文格式
文章目录 网络层目的N_PDU 格式诊断报文的分类:单帧、多帧 网络层目的 N_PDU(network protocol data unit),即网络层协议数据单元 网络层最重要的目的就是把数据转换成符合标准的单一数据帧(符合can总线规范的),从而…...
kafka的详细安装部署
introduce Kafka是一个分布式流处理平台,主要用于处理高吞吐量的实时数据流。Kafka最初由LinkedIn公司开发,现在由Apache Software Foundation维护和开发。 Kafka的核心是一个分布式发布-订阅消息系统,它可以处理大量的消息流,并…...
【数据分享】2015-2023年我国区县逐月二手房房价数据(Excel/Shp格式)
房价是一个城市发展程度的重要体现,一个城市的房价越高通常代表这个城市越发达,对于人口的吸引力越大!因此,房价数据是我们在各项城市研究中都非常常用的数据!之前我们分享过2015-2023年我国地级市逐月房价数据&#x…...
PTA 7-226 sdut-C语言实验-矩阵输出(数组移位)
输入N个整数,输出由这些整数组成的n行矩阵。 输入格式: 第一行输入一个正整数N(N<20),表示后面要输入的整数个数。 下面依次输入N个整数。 输出格式: 以输入的整数为基础,输出有规律的N行数据。 输入样例: 在…...
Android 各平台推送通知栏点击处理方案
示例代码如下: RongPushClient.setPushEventListener( new PushEventListener() { Override public boolean preNotificationMessageArrived( Context context, PushType pushType, PushNotificationMessage notificationMessage) { //透传通知时,调用。…...
什么是网络安全 ?
网络安全已成为我们生活的数字时代最重要的话题之一。随着连接设备数量的增加、互联网的普及和在线数据的指数级增长,网络攻击的风险呈指数级增长。 但网络安全是什么意思? 简而言之,网络安全是一组旨在保护网络、设备和数据免受网络攻击、…...
【前端】-【electron】
文章目录 介绍electron工作流程环境搭建 electron生命周期(app的生命周期)窗口尺寸窗口标题自定义窗口的实现阻止窗口关闭父子及模态窗口自定义菜单 介绍 electron技术架构:chromium、node.js、native.apis electron工作流程 桌面应用就是…...
Python中的类(Class)和对象(Object)
目录 一、引言 二、类(Class) 1、类的定义 2、类的实例化 三、对象(Object) 1、对象的属性 2、对象的方法 四、类和对象的继承和多态性 1、继承 2、多态性 五、类与对象的封装性 1、封装的概念 2、Python中的封装实现…...
dp-拦截导弹2
所有代码均来自于acwing中的算法基础课和算法提高课 Description 某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统。但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度, 但是以后每一发炮弹都不能高于前一发的高度。…...
初识动态规划算法(题目加解析)
文章目录 什么是动态规划正文力扣题第 N 个泰波那契数三步问题使用最小花费爬楼梯 总结 什么是动态规划 线性动态规划:是可以用一个dp表来存储内容,并且找到规律存储,按照规律存储。让第i个位置的值等于题目要求的答案 >dp表:dp表就是用一…...
Vue2.0与Vue3.0的区别
一、Vue2和Vue3的数据双向绑定原理发生了改变 Vue2的双向数据绑定是利用ES5的一个API,Object.definePropert()对数据进行劫持 结合 发布 订阅模式的方式来实现的。通过Object.defineProperty来劫持数据的setter,getter,在数据变动时发布消息…...
探索人工智能领域——每日20个名词详解【day6】
目录 前言 正文 总结 🌈嗨!我是Filotimo__🌈。很高兴与大家相识,希望我的博客能对你有所帮助。 💡本文由Filotimo__✍️原创,首发于CSDN📚。 📣如需转载,请事先与我联系以…...
C++初阶 | [七] string类(上)
摘要:标准库中的string类的常用函数 C语言中,字符串是以\0结尾的一些字符的集合,为了操作方便,C标准库中提供了一些str系列的库函数, 但是这些库函数与字符串是分离开的,不太符合OOP(面向对象)的思想&#…...
Django总结
文章目录 一、Web应用Web应用程序的优点Web应用程序的缺点应用程序有两种模式C/S、B/S C/S 客户端/服务端局域网连接其他电脑的MySQL数据库1.先用其他电脑再cmd命令行ping本机ip2.开放MySQL的访问 B/S 浏览器/服务端基于socket编写一个Web应用 二、Http协议1.http协议是什么2.h…...
【qml入门系列教程】:qml QtObject用法介绍
作者:令狐掌门 技术交流QQ群:675120140 博客地址:https://mingshiqiang.blog.csdn.net/ 文章目录 QtObject 是 Qt/QML 中的一个基础类型,通常用作创建一个没有 UI 的(不渲染任何东西的)纯逻辑对象。可以使用它来组织代码、存储状态或者作为属性和方法的容器。 以下是如何…...
2分图匹配算法
定义 节点u直接无边,v之间无边,边只存在uv之间。判断方法:BFS染色法,全部染色后,相邻边不同色 无权二部图中的最大匹配 最大匹配即每一个都匹配上min(u, v)。贪心算法可能导致&…...
[EndNote学习笔记] 导出库中文献的作者、标题、年份到Excel
菜单栏Edit中,选择 Output Styles 在默认的 Annotated上进行修改,在Bibliography栏下的Templates中修改想要导出的格式 其中,每个粗体标题表示,针对不同的文献类型,设置相应的导出格式。一般为Journal Article&…...
SQL Sever 基础知识 - 数据查询
SQL Sever 基础知识 - 一、查询数据 一、查询数据第1节 基本 SQL Server 语句SELECT第2节 SELECT语句示例2.1 SELECT - 检索表示例的某些列2.2 SELECT - 检索表的所有列2.3 SELECT - 对结果集进行筛选2.4 SELECT - 对结果集进行排序2.5 SELECT - 对结果集进行分组2.5 SELECT - …...
Vue入门——v-on标签
文章目录 规则v-on 一、案例总结 规则 v-on 作用:为html标签绑定事件语法: v-on:事件名:“函数名”简写为 事件名“函数名” 注意:函数需要定义在methods选项内部 一、案例 我们给案件绑定一个单击事件 <!DOCTYPE…...
JVM:双亲委派(未完结)
类加载 定义 一个java文件从编写代码到最终运行,必须要经历编译和类加载的过程,如下图(图源自b站视频up主“跟着Mic学架构”)。 编译就是把.java文件变成.class文件。类加载就是把.class文件加载到JVM内存中,得到一…...
Leetcode 2661. 找出叠涂元素
Leetcode 2661. 找出叠涂元素题目 给你一个下标从 0 开始的整数数组 arr 和一个 m x n 的整数 矩阵 mat 。arr 和 mat 都包含范围 [1,m * n] 内的 所有 整数。从下标 0 开始遍历 arr 中的每个下标 i ,并将包含整数 arr[i] 的 mat 单元格涂色。请你找出 a…...
vscode代码调试配置
C/C代码调试 点击 vscode左侧的 run and debug,新建launch.json 和 tasks.json,并进行配置如下 launch.json {// Use IntelliSense to learn about possible attributes.// Hover to view descriptions of existing attributes.// For more informati…...
PTA 7-225 sdut-C语言实验- 冒泡排序中数据交换的次数
听说过冒泡排序么?一种很暴力的排序方法。今天我们不希望你用它来排序,而是希望你能算出从小到大冒泡排序的过程中一共进行了多少次数据交换。 输入格式: 输入数据的第一行为一个正整数 T ,表示有 T 组测试数据。 接下来T行,每行…...
网站数据抓取怎么做/有哪些平台可以发布推广信息
解决报错,包版本低了,特别是用的低版本springboot自动引入的 解决:自己去引入 <dependency><groupId>com.google.code.gson</groupId><artifactId>gson</artifactId><version>2.8.9</version><…...
网站打开出现建设中/搜索引擎优化的简称是
虚拟化由于其带来的维护费用的大幅降低而受到追捧,如能减少服务器占用空间,降低购买软硬件设备的成本,大幅度提高系统的利用率。然而对其安全问题,人们也一直在争论不休,一方观点认为虚拟化技术能有效提升系统的安全性…...
洛阳做网站的公司/sem竞价托管公司
0x01、基于mysql实现分布式锁基于分布式锁的实现,首先肯定是想单独分离出一台mysql数据库,所有服务要想操作文件(共享资源),那么必须先在mysql数据库中插入一个标志,插入标志的服务就持有了锁,并对文件进行操作&#x…...
百度推广让我先做虚拟网站后/搜索网站关键词
一,贝叶斯决策论 贝叶斯决策论是概率框架下实施决策的基本方法。对分类任务来说,在所有相关概率都已知的情况下,贝叶斯决策论考虑如何基于这些概率和误判损失来选择最优的类别标记。 具体来说,若目标是最小化分类错误率ÿ…...
做网站公司 营销/百度竞价开户哪家好
为什么80%的码农都做不了架构师?>>> 药品API列表 API描述基础www.tngou.net/api/drug/classify 取得药品分类,可以通过分类id取得药品列表重要www.tngou.net/api/drug/list取得药品列表,也可以用分类id作为参数一般www.tngou.net…...
福州做网站/如何把网站推广
今年蓝港卖版权卖了近7000[来源:GameRes.com]万人民币(官方称1000多万美金),年收入不到2亿人民币。也就是说1.3亿是国内运营收入,一半是西游记,也就是说6500万是西游记,平均每月西游记也就500多…...