triton-server中的perf_analysis使用指北

使用指北

Measurement Modes

有两种方式:

  • Time Windows 当使用时间窗口测量模式(–measurement-mode=time_windows)时,Perf Analyzer将计算在持续时间为X的窗口内完成了多少个请求(以毫秒为单位,通过–measurement-interval=X设置,默认值为5000)。这是默认的测量模式。
  • Count Windows 使用计数窗口测量模式(–measurement-mode=count_windows)时,Perf Analyzer将从1秒开始窗口持续时间,并在完成X个请求之前(通过–measurement-request-count=X,默认值为50)潜在动态增加这个时间。

Metrics

throughout的计算

性能分析器通过将测量期间完成的请求总数除以测量持续时间(以秒为单位),来计算吞吐量。

Latency的计算

每个请求并发级别的性能分析器报告了从性能分析器看到的延迟和吞吐量,以及服务器上的平均请求延迟。

服务器延迟测量了从请求在服务器接收到响应发送出去的总时间。由于使用HTTP和gRPC库来实现服务器端点,总体服务器延迟通常对于HTTP请求更准确,因为它测量了从接收到第一个字节直到发送最后一个字节所花费的时间。对于HTTP和gRPC,总体服务器延迟可以细分为以下组成部分:

  • queue:等待模型实例可用时,请求在推理调度队列中等待的平均时间。
  • compute:执行实际推理所花费的平均时间,包括将数据复制到/从GPU所需的任何时间。
  • overhead:无法通过gRPC和HTTP库结构化方式正确捕获发送/接收时间中在端点中花费的平均时间。

客户端延迟进一步细分为以下内容(适用于HTTP和gRPC):

  • HTTP:send/recv表示客户端发送请求和接收响应所花费的时间。response wait表示等待来自服务器的响应所需的时间。
  • gRPC:(un)marshal request/response表示将请求数据编组为gRPC protobuf并解组 gRPC protobuf 响应数据所花费 的 时间 。 response wait 表示写入 gRPC 请求到网络、等待响应以及从网络读取 gRPC 响应所需的时间。

使用-v选项可以查看更多输出,包括每个请求并发级别或请求速率运行的稳定性处理。

input data 设置

对于某些模型,普通输入和随机输入对推理速度影响也比较大

参考