-
Notifications
You must be signed in to change notification settings - Fork 300
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
Various changes to perf code #3037
base: master
Are you sure you want to change the base?
Conversation
Skipping CI for Draft Pull Request. |
092512b
to
3c7086c
Compare
48a81ab
to
a65a20b
Compare
a65a20b
to
643546c
Compare
@@ -174,15 +179,20 @@ def get_parser(): | |||
parser.add_argument( | |||
"--query_str", | |||
help="Specify the qps or conn query_str that will be used to query your y-axis data based on the CSV file." | |||
"For example: conn_query_str=ActualQPS==1000, qps_query_str=NumThreads==16." | |||
"For example: conn_query_str=ActualQPS==1000, qps_query_str=NumThreads==16.", |
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.
not sure what that example is but if ActualQPS is from fortio json, it's very unlikely to be a nice exact round number - if you ask for 1000 you're likely to get 999.97 or some such
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 my formatter might have caught this. Having the hard equals isn't great, I agree. But it gets rounded to an int, so if you run it for long enough, the actual qps ends up being the desired qps (most of the time).
else: | ||
if not data[metric_name].head().empty: | ||
if metric_name.startswith('cpu') or metric_name.startswith('mem'): | ||
y_series_data.append(data[metric_name].head(1).values[0]) | ||
else: | ||
y_series_data.append(data[metric_name].head(1).values[0] / data["ActualQPS"].head(1).values[0]) | ||
y_series_data.append(data[metric_name].head(1).values[0] / 1000) |
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.
not sure why it was using data["ActualQPS"] before but maybe comment on the change?
(also fortio data, in the json files, is in seconds not ms (even if the UI shows in ms for human consumption) so not sure what the 1000 is for either?
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.
After some digging I think this is correct (but a comment would help). Fortio reports data in seconds, but the script that pull data from the fortio client converts it to microseconds
tools/perf/benchmark/runner/fortio.py
Lines 60 to 64 in 2030a1d
p = h["Percentiles"] | |
for pp in p: | |
obj["p" + str(pp["Percentile"]).replace(".", "") | |
] = int(pp["Value"] * 10 ** 6) |
so I have to divide by 1000 to get it back to milliseconds
@Stevenjin8: The following tests failed, say
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here. |
No description provided.