前言
前面我们演示了 Dapr 基于 HTTP 和 gRPC 协议的 Service invoke 案例,这两种协议下的服务调用性能差距如何呢?

基于上面的疑问,就需要对相关接口进行相应的性能压力测试,那常用的性能压测工具有哪些,接下来我们简单的了解下性能压测工具。
常用的性能压测工具
对于压测工具,业界常用的有以下这些:
- Apache JMeter
一款广为流传的开源压测产品,在早期应用于Web应用测试,如今JMeter可以用于测试静态和动态资源,例如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库、FTP 服务器等等,还能对服务器、网络或对象模拟巨大的负载,通过不同压力类别测试它们的强度和分析整体性能。另外,JMeter能够对应用程序做功能/回归测试,通过创建带有断言的脚本来验证你的程序返回了你期望的结果。为了最大限度的灵活性,JMeter允许使用正则表达式创建断言。
- LoadRunner
一种预测系统行为和性能的负载测试工具,通过模拟实际用户的操作行为进行实时性能监测,来帮助测试人员更快的查找和发现问题。
- TCPCopy
一种请求复制(所有基于 TCP 的 packets)工具,支持对 Internet 服务器应用程序的真实测试。 可以把在线流量导入到测试系统中去(也可以在测试系统内部放大流量),从而模拟真实运行环境,以便排查测试系统的性能问题和风险。TCPCopy 的优势在于其实时性及真实性,除了少量的丢包,可以完全拷贝线上流量到测试机器,真实的模拟线上流量的变化规律。
- Apache Bench(简称ab)
是 Apache 超文本传输协议(HTTP)的性能测试工具。其设计意图是描绘当前所安装的Apache 的执行性能,主要是显示你安装的 Apache 每秒可以处理多少个请求。既可以用来测试 Apache 的负载压力,也可以测试 Nginx、Lighthttp、Tomcat、IIS 等其它 Web 服务器的压力。
ab 命令对发出负载的计算机要求很低,它既不会占用很高CPU,也不会占用很多内存。但却会给目标服务器造成巨大的负载,其原理类似CC攻击。自己测试使用也需要注意,否则一次上太多的负载。可能造成目标服务器资源耗完,严重时甚至导致死机。
- WRK
wrk 是一款针对 HTTP 协议的基准测试工具,它能够在单机多核 CPU 的条件下,它将多线程设计与可扩展的事件通知系统(如 epoll 和 kqueue)相结合,对目标机器产生大量的负载。可选的 LuaJIT 脚本可以执行 HTTP 请求生成、响应处理和自定义报告。
- WRK2
wrk2 经过 wrk 修改以产生恒定的吞吐量负载,并将准确的延迟详细信息精确到高 9 秒(即当运行足够长的时间时,可以产生准确的 99.9999%'ile)。除了 wrk 的参数之外,wrk2 还通过 --rate 或 -R 参数(默认值为 1000)获取吞吐量参数(以每秒请求数为单位)。
了解更多的压测工具,请参考以下文章

本文对比了Dapr基于HTTP和gRPC协议的服务调用性能,并介绍了常用的性能压测工具,如Apache JMeter、LoadRunner、TCPCopy和wrk2。通过wrk2进行接口性能压测,展示了不同模式下的性能表现,包括原生dotnetrun和Daprsidecar模式。测试结果显示,Daprsidecar模式下性能有所损耗,而HTTP和gRPC协议的Serviceinvoke性能差距不明显。
最低0.47元/天 解锁文章
1573

被折叠的 条评论
为什么被折叠?



