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

goodput higher than throughput #606

Open
miniHive opened this issue Feb 15, 2025 · 2 comments
Open

goodput higher than throughput #606

miniHive opened this issue Feb 15, 2025 · 2 comments

Comments

@miniHive
Copy link

We have repeatedly observed goodput higher than throughput (for TPC-H and YCSB on PostgreSQL);

{
"Start timestamp (milliseconds)":1739569996066,
"Current Timestamp (milliseconds)":1739572194220,
"Elapsed Time (nanoseconds)":2198000068342,
"DBMS Type":"POSTGRES",
"DBMS Version":"PostgreSQL 17.3 on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0, 64-bit",
"Benchmark Type":"tpch",
"Final State":"EXIT",
"Measured Requests":22,
"isolation":"TRANSACTION_SERIALIZABLE",
"scalefactor":"1",
"terminals":"1",
"Latency Distribution":{
"95th Percentile Latency (microseconds)":8171213,
"Maximum Latency (microseconds)":1046028244,
"Median Latency (microseconds)":1145302,
"Minimum Latency (microseconds)":47069,
"25th Percentile Latency (microseconds)":381294,
"90th Percentile Latency (microseconds)":5461144,
"99th Percentile Latency (microseconds)":1046028244,
"75th Percentile Latency (microseconds)":2895255,
"Average Latency (microseconds)":49201791
},
"Throughput (requests/second)":0.010009098869862678,
"Goodput (requests/second)":0.020018197739725355
}

This seems counter-intuitive.

@bpkroth
Copy link
Collaborator

bpkroth commented Feb 18, 2025

Thanks. I've seen that before too and haven't looked into it yet. Will try and add it to the queue. Also happy to take PRs in case you get to it before me.

@dwslim
Copy link

dwslim commented Feb 21, 2025

I have observed this before too. I read the implementation and noticed that the calculation of goodput includes the requests processed during the warmup phase.

@miniHive You may want to check if that is the case? A simple check involves just multiplying throughput by the duration of (WARMUP + MEASURE) phases, and comparing that with the goodput and see if they roughly correspond.

I was confused but thought it was somehow intended.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants