-
-
Notifications
You must be signed in to change notification settings - Fork 2.2k
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
Persistent connections to volume servers through FUSE #1802
Comments
@chrislusf It seems enough to enable the reuse connection by means of tcp How does curl
|
Current code does try to exhaust the responses https://github.com/chrislusf/seaweedfs/blob/master/weed/util/http_util.go#L373 Maybe the per host connection count is too high? https://github.com/chrislusf/seaweedfs/blob/master/weed/util/http_util.go#L24 |
Need to test |
try set MaxIdleConns = MaxIdleConnsPerHost
For example you have 10 volume server, then there are 10 connections per server |
adjusted with 487e435 but how to verify the fix? |
Shall I test something? I can build a new binary and run it. |
You incorrectly mean FastOpen for Socket but I have not found how to enable it for net/http |
Hm, what I really mean is how can we keep connections up without dying? At least for some configurable amount of time. |
@Woellchen try to adjust Existing code also disconnects if there are no data traffic. https://github.com/chrislusf/seaweedfs/blob/master/weed/util/net_timeout.go#L58 |
@chrislusf thanks! That actually helped. I still see degraded performance when loading files from time to time, so the root cause were not the kept-alive TCP connection. |
Do you configure concurrent writers? Make sure it does not create too many goroutines.
|
I've got one question regarding FUSE mounts and connections to volume servers.
As far as I could see on my server/s and from the code, retrieving or saving files to volume servers happens in dedicated HTTP requests. This is probably the case for all volume server operations.
Would it not be possible to keep the connections alive all the time? Or have some kind of connection pooler that keeps a bunch of idle connections that can be reused?
Making a new request each and every time is very expensive and adds a lot of overhead. It degrades the overall performance. Especially when the connections are also encrypted (TLS handshake..).
Did I miss something or could this be a nice feature for SeaweedFS?
The text was updated successfully, but these errors were encountered: