Go 语言项目开发实战
孔令飞
腾讯云专家工程师,前 Red Hat、联想云工程师
41031 人已学习
新⼈⾸单¥68
登录后,你可以任选4讲全文学习
课程目录
已完结/共 61 讲
Go 语言项目开发实战
15
15
1.0x
00:00/00:00
登录|注册

39|性能分析(下):API Server性能测试和调优实战

使用示例
测试结果解析
常用参数
编译并安装
Clone wrk repo
本讲:API接口性能分析
上一讲:Go代码性能分析
主题:API Server性能测试和调优实战
作者:孔令飞
标题:API Server性能测试和调优实战
2. 分享其他API接口性能分析方法
1. 测试项目的API接口并进行性能分析和优化
课后练习
使用go tool pprof工具分析性能
推荐性能测试工具wrk
项目上线前的API接口性能测试
API Server性能测试注意事项
API接口性能参考
使用go tool pprof分析性能
API接口性能参考
使用wrktest.sh测试IAM API接口性能
关闭Debug配置选项
性能测试脚本介绍
测试环境配置
wrk使用简介
wrk的安装方法
常用工具:Jmeter, AB, Webbench, wrk
TPS(Transactions Per Second)
请求响应时间(TTLB)
每秒查询数(QPS)
并发数(Concurrent)
参考文章
课后练习
总结
API Server性能分析
API Server性能测试实践
API性能测试方法
API性能测试指标
API Server性能测试和调优实战

该思维导图由 AI 生成,仅供参考

你好,我是孔令飞。
上一讲,我们学习了如何分析 Go 代码的性能。掌握了性能分析的基本知识之后,这一讲,我们再来看下如何分析 API 接口的性能。
在 API 上线之前,我们需要知道 API 的性能,以便知道 API 服务器所能承载的最大请求量、性能瓶颈,再根据业务对性能的要求,来对 API 进行性能调优或者扩缩容。通过这些,可以使 API 稳定地对外提供服务,并且让请求在合理的时间内返回。这一讲,我就介绍如何用 wrk 工具来测试 API Server 接口的性能,并给出分析方法和结果。

API 性能测试指标

API 性能测试,往大了说其实包括 API 框架的性能和指定 API 的性能。不过,因为指定 API 的性能跟该 API 具体的实现(比如有无数据库连接,有无复杂的逻辑处理等)有关,我认为脱离了具体实现来探讨单个 API 的性能是毫无意义的,所以这一讲只探讨 API 框架的性能。
用来衡量 API 性能的指标主要有 3 个:
并发数(Concurrent):并发数是指某个时间范围内,同时在使用系统的用户个数。广义上的并发数是指同时使用系统的用户个数,这些用户可能调用不同的 API;严格意义上的并发数是指同时请求同一个 API 的用户个数。这一讲我们讨论的并发数是严格意义上的并发数。
每秒查询数(QPS):每秒查询数 QPS 是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。QPS = 并发数 / 平均请求响应时间。
请求响应时间(TTLB):请求响应时间指的是从客户端发出请求到得到响应的整个时间。这个过程从客户端发起的一个请求开始,到客户端收到服务器端的响应结束。在一些工具中,请求响应时间通常会被称为 TTLB(Time to last byte,意思是从发送一个请求开始,到客户端收到最后一个字节的响应为止所消费的时间)。请求响应时间的单位一般为“秒”或“毫秒”。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

本文介绍了API Server性能测试和调优的实战方法。作者首先介绍了API性能测试的指标,包括并发数、每秒查询数(QPS)和请求响应时间。在说明QPS时,需要指明是多少并发数下的QPS,并且介绍了API性能测试方法,推荐了使用wrk工具进行性能测试。作者详细介绍了wrk工具的安装方法和使用方法,并对测试结果进行了解析。接着,作者给出了API Server性能测试的实践,包括测试环境配置和测试架构。通过本文,读者可以了解到API性能测试的重要指标和方法,以及如何使用wrk工具进行性能测试,对于进行API Server性能测试和调优的读者具有很高的参考价值。文章还提供了wrktest.sh性能测试脚本的使用方法和示例,以及对比API Server和原生HTTP Server性能的方法和结果。通过对比图表,读者可以清晰地了解API Server在QPS、响应时间和成功率上的表现,以及与原生HTTP Server的性能对比结果。整体而言,本文为读者提供了全面的API Server性能测试和调优实战经验,对于需要进行类似工作的技术人员具有重要参考价值。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《Go 语言项目开发实战》
新⼈⾸单¥68
立即购买
登录 后留言

全部留言(8)

  • 最新
  • 精选
  • types
    这篇文章系统的介绍了性能指标的测试 性能指标主要是:不同并发量下的QPS+延迟 此处有2个疑问: 1. 如何选取性能指标作为服务能力的上限(并发+QPS+延迟) 2. 如何保护服务的访问不会超过性能上限?(使用微服务的治理方法,限流、熔断之类的?)

    作者回复: 1. 根据业务实际需求吧,另外也根据服务器配置。如果延时<500ms,系统并发和QPS足以支撑业务高峰期,我感觉就是可以的。 2. 对的,通过网关给服务加上限流、熔断、降级的功能

    2021-08-27
    3
  • 阿波罗尼斯圆
    为什么写类接口通常不会有性能问题,写接口不是一般都比读接口慢吗

    作者回复: 写类接口也可能会有性能问题,但影响没有那么大。因为相比于读类接口,读类接口调用频度更高,用户体验影响最大。 在接口性能优化时,写类接口和读类接口性能都要优化

    2022-11-04归属地:广东
    1
  • yandongxiao
    总结: 性能测试一般包括框架测试和API接口测试。 API 性能测试指标:并发数、QPS、请求响应事件(TTLB),注意QPS与TPS的区别。TPS是针对多个接口进行测试。离开并发数谈QPS,毫无意义。 框架性能测试:提供一个很简单的接口,如 /healthz,与 net/http 框架进行对比; API 性能接口:针对写类接口可通过单元测试来测试其性能,针对读类接口,可通过wrk进行测试 介绍 wrk 的使用方法 介绍基于wrk 的输出结果:并发数、QPS、平均响应时间,平均错误数,使用工具绘制图表。

    作者回复: wrk是我自己写的一个性能测试脚本,挺好用的。

    2021-12-04
    1
  • 静心
    在本机压测远程服务的时候,经常由于线程或打开文件数的限制,导致测试机客户端成为并发的瓶颈。不知道老师有没有什么解决的好办法?

    作者回复: 工作中没有遇到过这种问题。可以通过分布式测试,由多个客户端同时发起测试请求,最后汇总结果

    2021-11-03
  • 丁卯
    在满足预期要求的情况下,服务器状态稳定,单台服务器QPS要求在1000+,这个服务器的QPS怎么测?

    作者回复: 可以用wrk这类压测工具来测。 服务器的QPS其实就是应用的QPS。

    2021-10-21
  • types
    这篇文章系统的介绍了性能测试的方法 通过性能测试可以得到在一定并发下的QPS和延迟 得到性能数据以后,产生一个疑问: 1. 如何选取一个性能指标作为服务器的上限(并发 QPS 延迟)

    作者回复: 有回复你

    2021-08-27
  • ppd0705
    太硬核了,写shell来画图
    2021-11-22
    1
  • 随风而过
    一般都是使用Jmeter,wrk倒是没用过,这个工具比Jmeter优秀很多,学到了
    2021-09-09
收起评论
显示
设置
留言
8
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部