-
Notifications
You must be signed in to change notification settings - Fork 160
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
Degradation of transporting speed in TLS mode after select BLOBs. #483
Comments
Thanks for detailed report! |
@x4m Thx for the answer! |
There's a setting tls_protocols but it seems to be not attached to real TLS creation As far as I understand, when we are using TLS we call read in busy loop even when there is no data from network. Flamegraphs could prove or disprove this... |
@skilyazhnev sorry for the long delay, now I'm, finally, on it. Did you use COPY or just SELECT? |
@x4m only Select (actually we didn't try COPY) |
Hi, we are faced with a problem that affects the speed of the query, to be precise query executed fast enough, but the odyssey doubled (or more) the time of transport through itself.
We use:
* Odyssey 1.3
* PostgreSQL 11
* 5.10.0-21-amd64 #1 SMP Debian 5.10.162-1 (2023-01-21) x86_64 GNU/Linux
* GCP hosts - Machine type: e2-medium (2 core 4GB) or e2-standard-4 (4 core and 16Gb)
Our infrastructure looks like ( {} <- same host ):
1) { | app | }<==> { | odyssey | <==> | HAproxy | } <==> { | PostgreSQL | }
2) { | app | } <==> { | pgbouncer | <==> | HAproxy | <==> | PostgreSQL | }
All connections use TLS. (HAproxy only forwarding port to right host)
At the same time, we have a table with BLOBs objects (only 6 rows but in sum, they size 650Mb in textfile).
When we selecting from this table "select * from blob_table;" we receiving these results by time:
And while data go through odyssey's backend CPU usage goes to the top (100% per odyssey backend). Include a lot of Sys and User time.
During data transfer, you can see this (strace -c -p ):
(and I checked, calling of munmap is approximately evenly )
A lot of time process just looping this pattern:
solutions which don't speed up:
1) Turn off TLS on Odyssey <==> PostgreSQL connection
2) Turning off THP in linux
3) Increase cache option in Odyssey
4) Increase CPU cores and
And what I can't config:
1) tls_protocol option in Odyssey because docs has no answer on which option I can use.
main question is: Which type of problem it can be?
We considered odyssey as a production solution, but so far this behavior is somewhat confusing
Odyssey config:
odyssey_sysctl.txt
The text was updated successfully, but these errors were encountered: