-
Notifications
You must be signed in to change notification settings - Fork 108
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
Generate charts for Fio benchmark #3549
Generate charts for Fio benchmark #3549
Conversation
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.
You didn't update the pquisby
version in server/requirements.txt
, which I'd expected. What Quisby are you using?
Aside from that, rather than making specific source comments, I pulled the branch and tried it, and what I'm seeing confuses me:
When I run with the current server lock (pquisby==0.0.17
), visualization doesn't work at all for fio: I get errors like Quisby processing failure. Exception: list index out of range
on either of the functional test fio runs and the new one we generated the other day.
On the other hand if I change to pquisby==0.0.25
, which is the latest, one of the two "canned" functional test FIO runs (fio_rw_2018.02.01T22.40.57
) "works" (although the display is a bit odd), but the other canned FIO run and the new one we generated the other day both fail with Quisby processing failure. Exception: not enough values to unpack (expected 2, got 0)
Are you using a different Pquisby version???
And with the one fio dataset that does work, I get
Obviously it's not very "interesting", but that's OK. However, what does it mean that the caption says <>_d-<>_j-<>_iod
? Is that intentional, or a formatting issue? (Or missing data?)
ff9ed5b
to
ecdbbf4
Compare
@dbutenhof I was pointing to the latest version of Since, disk-job value is unknown |
ecdbbf4
to
83393b7
Compare
Hmm. So 0.0.25 is working for you? Because it wasn't for me, on 2 of the three
That's rather ugly, but it sounds like maybe that's some of the extra information Soumya was hoping to get from the server? (Although I'm not sure we know how to find it.) |
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.
I don't think we should leave the pquisby
dependency floating. (I'm not going to block the merge on that basis, but I'm not approving, either....)
Also, I have a concern about the behavior of getChartValues()
when the benchmark isn't suitable for visualization...where do we guard against that misbehavior?
Other than those, I have a few minor things for your consideration.
}, Object.create(null)); | ||
|
||
for (const [key, value] of Object.entries(result)) { | ||
console.log(key); | ||
|
||
const map = {}; |
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.
Noting (new) line 158, should we be using Object.create(null)
at line 161 instead of {}
?
export const toggleCompareSwitch = () => ({ | ||
type: TYPES.TOGGLE_COMPARE_SWITCH, | ||
}); |
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.
If you omit the trailing comma on line 188, I think this will all fit on one line.
pquisby==0.0.17 | ||
pquisby |
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.
Are we sure that we want to let this "float"?
Given recent experiences, I think we should peg this at a "known good" version.
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.
I wondered at Webb's duplicate of my comment, but when I just started re-reviewing today I realized that I never actually published that earlier comment. Ooops!
So I'll just add here that pquisby is now at 0.0.27, vs 0.0.25 when I wrote that earlier comment, and I have no idea what's changed. Does it still work? I really do think we should be deliberately managing this dependency rather than letting it float.
@dbutenhof , In order to analyse Fio benchmark data, knowing the following is important apparently(I am not an expert on FIO)-
which we are adding to the graphs, if it's not possible to fetch this data, we can remove this from the graph (It would have been great if we were able to extract this data tho, it reduces the effort for the user to go back to their runs and check manually the value of these fields). Would love to know your views on this. Accordingly we can plan and modify the graphs. I guess these values are provided while running fio command, if not, default values are taken into consideration. |
We're definitely not FIO experts, either. We've pieced together how to run it in trivial configurations, but the data in the
I assume we could figure out how to extract this information from the more detailed benchmark logs ... but I'm not even sure if it's global configuration or private to each iteration. (Or, for that matter, whether the Pbench "iteration" concept, which is how the Agent organizes the raw data, directly corresponds to the fio "job" configuration...) Each fio "job" seems to be targeted to a specific filesystem path, which would define the disk used. Since the But a lot of these constraints are due to the design of the
This appears to be a global configuration setting on the
As I mentioned above, I'm not entirely certain how the
We can figure this all out, but first we need to figure out the relative importance of figuring it out compared to the other stuff we need to do. 😄 FYI: I've summarized this at PBENCH-1274. |
Just poking around a randomly-selected FIO result, I found the
It looks like the values for If we really want to dig, we have the However, if (for the moment) we want to restrict ourselves to the information that we already have, I think that the Pbench Dashboard can glean the number of disks from the Pbench Server metadata, [I've added this information in a reply to PBENCH-1274.] |
@dbutenhof @webbnh thanks for your input. Yes this process requires a bit of discussion, we can surely look into other major issues first and keep this in backlog as an optimisation task. I will contact with Varshini, and remove this feature for now. |
83393b7
to
947dd97
Compare
That's distressing. I'm not sure whether this is a transient failure in accessing repos or a real change in the dependencies. I'm going to re-trigger the build to see if it happens again. |
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.
I think Webb has some remaining good suggestions, but I don't believe any of them are critical.
Also, I have a concern about the behavior of getChartValues() when the benchmark isn't suitable for visualization...where do we guard against that misbehavior?
The server API returns a useful message in this case, which the dashboard displays:
I think that's fine.
I'm still slightly concerned about allowing pquisby to float, although the latest 0.0.27 seems to work.
On one hand I'd like to give Webb another chance to re-review, but I'm also tempted to merge it this week and deploy onto staging at least by the ops review on Thursday. I'll have to wrestle with that one; but for now I'm going to approve.
(Incidentally, I also think it's intriguing that Jenkins re-ran the CI with my container build fix even though Varshini's commits weren't rebased on top of that.)
@@ -12,7 +12,7 @@ flask-restful>=0.3.9 | |||
flask-sqlalchemy | |||
gunicorn | |||
humanize | |||
pquisby==0.0.17 | |||
pquisby |
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.
While this is OK, given the inconsistency we've seen in pquisby PyPi packages, I think I'd prefer to see pquisby==0.0.25
if that's what we're supporting for uperf and fio visualization. We can change the version later as necessary.
pquisby==0.0.17 | ||
pquisby |
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.
I wondered at Webb's duplicate of my comment, but when I just started re-reviewing today I realized that I never actually published that earlier comment. Ooops!
So I'll just add here that pquisby is now at 0.0.27, vs 0.0.25 when I wrote that earlier comment, and I have no idea what's changed. Does it still work? I really do think we should be deliberately managing this dependency rather than letting it float.
Generate charts for FIO
PBENCH-1214
Generate charts for Fio benchmark