esrally报告中的service time和latency区别

参考:https://esrally.readthedocs.io/en/stable/faq.html?highlight=create

What do latency and service_time mean and how do they relate to the took field that Elasticsearch returns?

The took field is included by Elasticsearch in responses to searches and bulk indexing and reports the time that Elasticsearch spent processing the request. This value is measured on the server so it includes neither the time it took for the request to get from the client to Elasticsearch nor the time it took for the response to arrive back at the client. In contrast, service_time is measured by Rally as the length of time from when it started to send the request to Elasticsearch until it finishing receiving the response. Therefore service_time does include the time spent sending the request and receiving the response.

The explanation of latency depends on your choice of benchmarking mode:

  • Throughput benchmarking mode: In this mode, Rally will issue requests as fast as it can: as soon as it receives a response to one request it will generate and send the next request. In this mode latency and service_time are identical.
  • Throughput-throttled mode: You may prefer to run benchmarks that better simulate the traffic patterns you experience in your production environment. If you define a schedule (e.g. a target throughput) then Rally runs in throughput-throttled mode and generates requests according to this schedule regardless of how fast Elasticsearch can respond. In this mode the generated requests are first placed in a queue within Rally and may stay there for some time. latency includes the time spent in this queue whereas service_time does not: latency measures the time from generating the request until the response is received whereas service_time measures the time from sending the request to Elasticsearch until a response is received.
原文地址:https://www.cnblogs.com/to-here/p/14680021.html