Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

io_tester: implement latency correction for jobs with RPS #2260

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Commits on May 22, 2024

  1. 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]>
    pwrobelse committed May 22, 2024
    Configuration menu
    Copy the full SHA
    7f0febd View commit details
    Browse the repository at this point in the history