unicorn Ruby/Rack server user+dev discussion/patches/pulls/bugs/help
 help / color / mirror / code / Atom feed
* High number of TCP retransmits on Solaris
@ 2014-07-22 18:52 Paul Henry
  2014-07-22 18:57 ` Michael Fischer
  2014-07-22 20:56 ` Eric Wong
  0 siblings, 2 replies; 8+ messages in thread
From: Paul Henry @ 2014-07-22 18:52 UTC (permalink / raw)
  To: unicorn-public

Hello!

When using unicorn unicorn v4.8.2, we're seeing a high number of TCP
retransmits at a high connection rate.

Smartos version: 20131218T184706Z

Rackup file used:

> cat server.ru
run -> (env) { [200, {"Content-Type" => "text/plain"},
[Time.now.iso8601(6)]] }

To start unicorn:
> bundle exec unicorn -l 9292 server.ru

To benchmark unicorn:
>> Benchmark.measure { 1000.times { time=Benchmark.measure { open("http://<ip>:9292/api/v1/settings/time",
"Host" => "api.wanelo.com")}.real; p (time*1000).round(2) if time > 0.05 } }

After the total number of connections on the system goes above 8,000
(16,000 is the average number of connections), we start seeing delays of
around 1.1 seconds.

We don't see the issue over the local loopback interface, only over the
net. When using Webrick, we also don't see this issue.

Our tcp initial retransmit interval is 1 second. When the interval is
reduced, the occasional latency goes down. We also see the retransmits in
netstat, about 1 - 2 every second.

Anything that we should look at next?

Thanks!
Paul


^ permalink raw reply	[flat|nested] 8+ messages in thread
* High number of TCP retransmits on Solaris
@ 2014-07-22 18:51 Paul Henry
  0 siblings, 0 replies; 8+ messages in thread
From: Paul Henry @ 2014-07-22 18:51 UTC (permalink / raw)
  To: unicorn-public

Hello!

When using unicorn unicorn v4.8.2 and we're seeing a high number of TCP
retransmits at a high connection rate.

Smartos version: 20131218T184706Z

Rackup file used:

> cat server.ru
run -> (env) { [200, {"Content-Type" => "text/plain"},
[Time.now.iso8601(6)]] }

To start unicorn:
> bundle exec unicorn -l 9292 server.ru

To benchmark unicorn:
>> Benchmark.measure { 1000.times { time=Benchmark.measure { open("http://<ip>:9292/api/v1/settings/time",
"Host" => "api.wanelo.com")}.real; p (time*1000).round(2) if time > 0.05 } }

After the total number of connections on the system goes above 8,000
(16,000 is the average number of connections), we start seeing delays of
around 1.1 seconds.

We don't see the issue over the local loopback interface, only over the
net. When using Webrick, we don't see this issue.

Our tcp initial retransmit interval is 1 second. When the interval is
reduced, the occasional latency goes down. We also see the retransmits in
netstat, about 1 - 2 every second.

Any ideas of where to look next?

Thanks!
Paul


^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2014-07-22 22:10 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-07-22 18:52 High number of TCP retransmits on Solaris Paul Henry
2014-07-22 18:57 ` Michael Fischer
2014-07-22 19:03   ` Paul Henry
2014-07-22 20:56 ` Eric Wong
2014-07-22 21:56   ` Paul Henry
2014-07-22 22:07     ` Michael Fischer
2014-07-22 22:10       ` Michael Fischer
  -- strict thread matches above, loose matches on Subject: below --
2014-07-22 18:51 Paul Henry

Code repositories for project(s) associated with this public inbox

	https://yhbt.net/unicorn.git/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).