Flash is an inexpensive and fast cache for servers. There are many solutions that manage flash and offer system-wide or application-specific acceleration. Major solutions are as follows:
- Sandisk FlashSoft
- Intel Cache Accelerator Software
- EMC XtremSW
- NetApp FlashCache
- LSI Nytro
- These solutions cache disk blocks and uses flash as the primary tier of storage.
- Since flash is way faster than disk, I/O speed up could reach 2x- 20x.
- These solutions are pure s/w, s/w+h/w, stay in kernel and work at driver level
- Intel CAS can accelerate selected applications on a system
- There is no major differentiators among these solutions, except price 🙂
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/direct_client.py.
- 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.
>Bored of J2EE? I came across a new web app development framework called Ruby on Rails. Based on Agile development philosophy, it’s one of the most popular web framework today.
As name suggests, it let’s you develop your web application faster and conveniently. All you need to know Ruby before getting started.
Check out more at: http://rubyonrails.org/