listening sockets as non sockets

Sepherosa Ziehau sepherosa at gmail.com
Mon Feb 27 01:31:36 UTC 2017


On Mon, Feb 27, 2017 at 1:37 AM, Gleb Smirnoff <glebius at freebsd.org> wrote:
> On Sun, Feb 26, 2017 at 11:37:59PM +0800, Sepherosa Ziehau wrote:
> S> Just got enough time to do some benchmark.  The configuration is
> S> pretty simple, one server box w/ 2x82599, two client boxes w/ 1x82599,
> S> connected through DAC.  nginx-devel is installed through pkg; access
> S> log is disabled, 24 workers, each worker w/ 16384 max connections.  I
> S> use the wrk I mentioned to you.  HTTP/1.1 and 1 request/connection,
> S> 15K concurrent connections from each client boxes, so 30K concurrent
> S> connections total.  Each client has been verified to be able to do
> S> 160Kreqs/s w/ 1KB web object w/ 1 request/connection.  4 different
> S> sized staic web objects are benched, see below.  The solisten was
> S> checked out on Feb 25th.  Several GENERIC options (NFS and SCTP
> S> related) have to be commented out and kernel is built w/ -DNO_MODULES
> S> (CAM ctl module does not compile) and GENERIC-NODEBUG on the solisten
> S> branch.  Each test lasts 2 minutes.  MSL on the server side has been
> S> changed to 10ms, though I don't think it matters here.  Server hw:
> S> 2x2620v2 (HT enabled), 32GB ddr3-1600.  Client hw: i7-3770 (HT
> S> enabled), 16GB ddr3-1600.
> S>
> S> r314268 -> solisten
> S>
> S> 1KB:
> S> Performance (reqs/s)
> S> 77916.71 -> 26240.37
> S> Latency average
> S> 121ms -> 294ms
> S>
> S> 8KB:
> S> Performance (reqs/s)
> S> 77803.72 -> 25968.87
> S> Latency average
> S> 121ms -> 251ms
> S>
> S> 16KB:
> S> Performance (reqs/s)
> S> 75698.77 -> 25047.23
> S> Latency average
> S> 173ms -> 377ms
> S>
> S> 24KB:
> S> Performance (reqs/s)
> S> 73736.80 -> 24946.36
> S> Latency average
> S> 180ms -> 379ms
> S>
> S> So what I have seen is solisten's performance is 1/3 of r314268, and
> S> average latency doubles.
>
> Thanks a lot! Looks like I've put something on the accept path that degrades
> performance. :) I will look at this tomorrow and post an update.
>
> Can you please share exact wrk command you used?

On my testing client (8 HT).
wrk -c 15000 -t 8 -d 120s --delay --latency --connreqs 1 http://server/1K.bin

> Do I understand it correct that there was only 1 listening socket on the
> server side?

Yep, only port 80 is listened on the server side, as a normal website will do.

Thanks,
sephe

-- 
Tomorrow Will Never Die


More information about the freebsd-net mailing list