-
Notifications
You must be signed in to change notification settings - Fork 1.6k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
io_tester: implement latency correction for jobs with RPS
Currently, for jobs with RPS (request-per-second) rate specified, io_tester measures only service time. It means, that if servicing one of requests takes much longer than available delta time between consecutive requests (issuing the next request is delayed), then the measured latency does not depict that fact. In such case we issue less requests than required and high latency is reported just for the first request. For instance, if there is a latency spike for one of requests, that exceeds the available time of service according to RPS schedule, then the total number of scheduled requests does not match the expected count calculated as 'TOTAL = duration_seconds * RPS'. Furthermore, the percentiles with latency printed at the end of the simulation may show inaccurate data. Firstly, the count of samples is lower than expected. Secondly, if the amount of time needed to handle requests after the latency spike returned to the ordinary value, then our statistics show that handling of only one request was long, but it is not true - io_tester stopped sending requests at given RPS and this way other requests could not be properly measured. This indicates that io_tester suffers from coordinated omission problem. This change implements latency correction flag. When it is enabled, then io_tester measures the total request latency including the delay between the expected schedule time and the actual schedule time. Moreover, if any of requests take more time than available, then io_tester tries to schedule 'delayed' requests as soon as possible to return to the defined schedule. Signed-off-by: Patryk Wrobel <[email protected]>
- Loading branch information
Showing
1 changed file
with
48 additions
and
6 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters