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

Adds ability to calculate standard deviation for randomread and randomwrite ops #181

Closed
wants to merge 1 commit into from

Conversation

keesturam
Copy link

I believe this should fix #180
@acalhounRH ?

Signed-off-by: Krishnaram Karthick <kramdoss@redhat.com>
@rht-perf-ci
Copy link

Can one of the admins verify this patch?

@keesturam keesturam changed the title Returns standard deviation for randomread and randomwrite ops Adds ability to calculate standard deviation for randomread and randomwrite ops May 21, 2020
@jtaleric jtaleric requested review from acalhounRH and bengland2 May 21, 2020 11:16
@jtaleric jtaleric added the ok to test Kick off our CI framework label May 21, 2020
Copy link
Contributor

@bengland2 bengland2 left a 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.

@acalhounRH
Copy link
Contributor

@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.

Copy link
Contributor

@acalhounRH acalhounRH left a 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.

@jtaleric
Copy link
Member

@bengland2 @acalhounRH Can we close this since it seems unnecessary (based on Alex's latest comment)?

@bengland2
Copy link
Contributor

@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

@keesturam keesturam closed this Jul 23, 2020
@keesturam
Copy link
Author

Closing the PR based on Alex's inputs.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ok to test Kick off our CI framework
Projects
None yet
5 participants