-
Notifications
You must be signed in to change notification settings - Fork 18k
x/net/http2: steady performance degeneration seen with HTTP/2 over recent releases #25117
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
Comments
CC: @bradfitz |
I was able to reproduce these
1.9 -> 1.10 is due to https://go-review.googlesource.com/71372. I don't yet have answers in the form of tips for improvement, sources of 1.7->1.8/1.8->1.9 slowdowns or if there are fixes we need. For |
Hey @meirf , thank you for confirming the slowdowns in the earlier versions. However I just re-ran the test on master a bunch of times, and the number looks a bit different from what I reported earlier .. it seems to be a bit closer to 1.10, but with a certain dip in performance still..
I re-ran the test with the latest code from all the branches and here're the results. You're right I don't see a big dip between 1.10 and master. So what I saw earlier could've been an anomaly..
|
@abhinavdangeti If I'm reading those results correctly, you're also seeing a significant speedup from 1.6 to 1.7, where you previously saw a significant decline. Is that correct? If so, it might be helpful to eliminate noise (including thermal effects!) on your test machine and see how significant the remaining effect is. (Note that |
Hmm, never mind. You had that dip in the original post too: any idea why your observed throughput numbers don't track the benchmark timings? |
Hey @bcmills, that's the part that's still a little confusing to me - why our throughput numbers don't match the benchmark timings going from 1.6 -> 1.7, but repeated tests have shown this regression. |
Hello, I work on the full text search engine at couchbase, and we recently moved our scatter gather protocol to use x/net/http2 instead of net/http.
The go version we currently use is go-1.9.3.
In some testing in house .. I've noticed the query throughput over a full text index take a nose dive as I upgraded the x/net release version used. (These numbers are over a system that runs on centos7)
This is how the scatter-gather client is set up in our code using x/net/http2's transport:
And here's how the server is setup, which also uses the x/net/netutil to set up a LimitListener:
I was wondering if there're any known issues around this area, or if there're any additional settings that I'd have to tune in the later branches of x/net.
I also tried writing up a simple server client benchmark unit test, based on your current tests to see if it'd point out anything obvious ..
And here're the results for the above benchmark test from my computer (on OSX 10.13.4):
So although I couldn't reproduce the issue accurately (with 1.6 as the anomaly here), there is some degeneration in time taken per op from 1.7 to master.
This is the go env output from my system:
I'd appreciate any pointers or advise regarding what I'm observing here ..
The text was updated successfully, but these errors were encountered: