Date: Tue, 14 Aug 2018 12:30:07 -0700 From: Navdeep Parhar <np@FreeBSD.org> To: Honda Michio <micchie@sfc.wide.ad.jp>, freebsd-current@freebsd.org Subject: Re: TCP server app performance Message-ID: <cc95d407-378c-392e-1f0f-67f22dc89f9e@FreeBSD.org> In-Reply-To: <CA%2BSc9E3_6bw68odAMH2Y-SzR2-PjuxZG6jp8P0JZV6z9LgmwQw@mail.gmail.com> References: <CA%2BSc9E3_6bw68odAMH2Y-SzR2-PjuxZG6jp8P0JZV6z9LgmwQw@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On 8/12/18 9:50 AM, Honda Michio wrote: > Hi, > > I'm measuring TCP server app performance using my toy web server. > It just accept TCP connections and responds back HTTP OK to the clients. > It monitors sockets using kqueue, and processes each ready descriptor using > a pair of read() and write(). (in more detail, it's > https://github.com/micchie/netmap/tree/paste/apps/phttpd) > > Using 100 persistent TCP connections (the client sends 44 B HTTP GET and > the server responds with 151 B of HTTP OK) and a single CPU core, I only > get 152K requests per second, which is 2.5x slower than Linux that runs the > same app (except that it uses epoll instead of kqueue). > I cannot justify this by myself. Does anybody has some intuition about how > much FreeBSD would get with such workloads? > I tried disabling TCP delayed ack and changing interrupt rates, but no > significant difference was observed. > > I use FreeBSD-CURRENT with GENERIC-NODEBUG (git commit hash: 3015145c3aa4b). > For hardware, the server has Xeon Silver 4110 and Intel X540 NIC (activate > only a single queue as I test with a single CPU core). All the offloadings > are disabled. I hope hw L3/L4 checksumming is still on? Are your results similar to what you get with 100 (same number as your test clients) netperf's doing TCP_RR on this setup, or wildly different? Regards, Navdeep
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?cc95d407-378c-392e-1f0f-67f22dc89f9e>