-
Notifications
You must be signed in to change notification settings - Fork 56
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
Adds ability to calculate standard deviation for randomread and randomwrite ops #181
Conversation
Signed-off-by: Krishnaram Karthick <kramdoss@redhat.com>
Can one of the admins verify this patch? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is not calculating standard deviation between samples. We want to add up per-pod throughputs to get cluster-level throughput, but then we want to look at different samples to see if the cluster-level throughput is consistent. It appears to me that you are calculating %deviation between pod throughputs, which is not the same thing. It might be a useful statistic, but it's not what I was after. If you look in fio_wrapper.py you'll see a loop on self.sample, those are the samples we want to calculate %deviation on. Unfortunately we can't do that until all the samples have been run, and you don't have access to all of them from inside emit_actions(). It would be possible to save the throughputs in a self.throughputs[rw][bs] list and then calculate average and %deviation on that at the end of the loop, but the result wouldn't be associated with a single fio run, it would be associated with the collection of fio runs with the same "bs" and "rw" parameters under that uuid.
@bengland2 The original code does calculate the standard deviation. fio_analyzer is paired with fio_wrapper such that after all test have ran it evaluates std-dev as you have stated. The original code did accomplish randread and randwrite evaluation, the if statement is valid if read/write was present in the operation field (read/write/randwrite/randread). This code is just explicit checking for randread or randwrite. With this version of code the read and write checks will still be valid and the extra randread/randwrite if statements will never be invoked. The only limitation that this code has is that it does not process rw, rw, readwrite Mixed sequential reads and writes. if the user is not seeing the randread or randwrite std-dev data in elasticsearch or Grafana I can work with them 1-on-1. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Changes are not necessary, currently the if-statement catches reads writes randread and randwrite.
improvement could be that we include randr or randw, if the user uses these short hand version of randread/randwrite they will not be processed.
@bengland2 @acalhounRH Can we close this since it seems unnecessary (based on Alex's latest comment)? |
@keesturam this is getting stale, we should either cancel this or go forward, can you discuss with Alex in next couple of days if you really need this or we'll close it? I lost track of this one, sorry -ben |
Closing the PR based on Alex's inputs. |
I believe this should fix #180
@acalhounRH ?