Skip to content


Openstack swift: EADDRNOTAVAIL error


swift-bench keeps EADDRNOTAVAIL error with a highly concurrency setting and multiple swift-bench clients.


Ubuntu 13, Swift single machine installation (refer SAIO), swift-client runs local with no-proxy mode.


  • EADDRNOTAVAIL stands for either unavailability of ephemeral ports and a known kernel bug.
  • Check your range of ports: $cat /proc/sys/net/ipv4/ip_local_port_range
  • swift-bench in no-proxy mode uses direct client class based on Python’s HTTPLib. I saw that code for object write and read did not have connection close call. So, I added that. Please refer swift/common/
  • The kernel bug is based on usage of bind() call during a connection setup from client. swift-bench so not use bind. So this possibility is ruled out.
  • Swift administration guide advises of following setting:
The following settings should be in /etc/sysctl.conf:
# disable TIME_WAIT.. wait..
net.ipv4.tcp_tw_reuse=1# disable syn cookies
net.ipv4.tcp_syncookies = 0
To load the updated sysctl settings, run $sudo sysctl -p

The above mentioned solutions reduced the problem significantly. If there is a better solution, let me know.

Openstack Swift: Introduction for Developers (Part II)

Object server

  • Source File
  • Swift object serve is the storage server for objects.
  • Each object is stored as files on native file-system.
  • Object server keeps object with its metadata on a plain file.
  • PUT, GET and HEAD are useful to look at.

Running benchmarking tools

  • swift-bench
  • ssbench
  • cosbench

swift-bench is the easiest to use. You need to get sample config file and change accordingly. There are two ways to run swift-bench:

  1. With proxy (default config)
  2. Without proxy, where application directly writes to an object server
%d bloggers like this: