[Openstack] [Swift] Running out of ports or fds?

Shrinand Javadekar shrinand at maginatics.com
Tue Jul 8 23:26:10 UTC 2014


Hi,

I have a question about the http connections made between the various
swift server processes. Particularly between the swift proxy server
and the swift object server.

I see that these servers do not use a persistent http connection
between them. So every blob get/put/delete request will create a new
connection, use it and tear it down. In a highly concurrent
environment with thousands of such operations happening per second,
there could be two problems:

i) Time required for creating the new connections could hamper performance.
ii) After the requests are complete, several connections will be in
the TIME_WAIT state and it might be possible that the proxy server and
object server node will run out of ports or fds.

If the proxy and object servers are on the same machine, the problem
is exacerbated. I have one such instance and at one point saw ~30K
sockets in the TIME_WAIT state. Though, this would've included
connections with the account server and container server also.

Does this analysis make sense? If yes, are there ways to do something
about it (other than asking clients to slow down :P)?

Thanks in advance.
-Shri




More information about the Openstack mailing list