diff options
author | Eric Wong <normalperson@yhbt.net> | 2011-01-05 16:19:17 -0800 |
---|---|---|
committer | Eric Wong <normalperson@yhbt.net> | 2011-01-05 16:22:30 -0800 |
commit | 4060b7742d047c0000fd1bf4ac2c3b9cae95585a (patch) | |
tree | a08bcf85730b69abdaf91c3e1fb7edc28fa264ef /lib/rainbows.rb | |
parent | 9b6679ec50ecd184fccd195bd14bda3c6ea2070f (diff) | |
download | rainbows-4060b7742d047c0000fd1bf4ac2c3b9cae95585a.tar.gz |
Nagle's algorithm is harmful with the write-write-read sequence during keepalive, so we disable it performance for users using keepalive. We always write headers with a separate write because Rack response bodies may not always be ready for writing when headers are. This requires Unicorn 3.3.0
Diffstat (limited to 'lib/rainbows.rb')
-rw-r--r-- | lib/rainbows.rb | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/lib/rainbows.rb b/lib/rainbows.rb index 3f9058e..a8bfa78 100644 --- a/lib/rainbows.rb +++ b/lib/rainbows.rb @@ -1,8 +1,15 @@ # -*- encoding: binary -*- require 'kgio' require 'unicorn' -# the value passed to TCP_DEFER_ACCEPT actually matters in Linux 2.6.32+ -Unicorn::SocketHelper::DEFAULTS[:tcp_defer_accept] = 60 +Unicorn::SocketHelper::DEFAULTS.merge!({ + # the value passed to TCP_DEFER_ACCEPT actually matters in Linux 2.6.32+ + :tcp_defer_accept => 60, + + # keep-alive performance sucks without this due to + # write(headers)-write(body)-read + # because we always write headers and bodies with two calls + :tcp_nodelay => true, +}) module Rainbows |