Network improvement 4.8 -> 5.0 for short-lived HTTP/1.1 workload.

karu.pruun karu.pruun at gmail.com
Wed Oct 18 00:25:09 PDT 2017


Nice! Thanks for the overview.

Cheers

Peeter

--



On Tue, Oct 17, 2017 at 5:57 PM, Sepherosa Ziehau <sepherosa at gmail.com> wrote:
> In this release cycle, several items are committed to improve
> performance and reduce/stablize latency.
>
> 30K concurrent connections, 1 request/connection, 1KB web object.
> Server have 24 HT.
>
> Baseline (32 nginx workers w/ 16 netisrs):
> performance 215907.25tps, latency-avg 33.11ms, latency-stdev 41.76ms,
> latency-99% 192.36ms.
>
> The performance for 16 nginx workers is too low to be used as baseline
> (16 nginx workers w/ 16 netisrs):
> performance 191920.81tps, latency-avg 32.04ms, latency-stdev 25.15ms,
> latency-99% 101.37ms.
>
> ===================
>
> Make # of netisr tunable.
>
> If # of netisrs is set to ncpus, this allows two optmized settings in nginx:
> 1) Make # of nginx workers same as # of netisrs.
> 2) CPU-bind nginx workers.
>
> 24 nginx workers w/ 24 netisrs:
> performance 212556.02tps, latency-avg 56.18ms, latency-stdev 7.90ms,
> latency-99% 70.31ms.
>
> 24 nginx workers w/ 24 netisrs, cpu-bound nginx workers:
> performance 210658.80tps, latency-avg 58.01ms, latency-stdev 5.20ms,
> latency-99% 68.73ms.
>
> As you can see, performance dropped a bit.  Though average latency is
> increased, latency is significantly stablized.
>
> ===================
>
> Limit the # of acceptable sockets returned by kevent(2).
>
> 24 nginx workers w/ 24 netisrs, cpu-bound nginx workers:
> performance 217599.01tps, latency-avg 32.00ms, latency-stdev 2.35ms,
> latency-99% 35.59ms.
>
> Compared w/ baseline, performance improved a bit and latency is
> reduced a bit.  However, latency is significantly stabled.
>
> ===================
>
> Summary of the comparison of different web object size:
>
> 1KB web object
>
>              | perf (tps) | lat-avg | lat-stdev | lat-99%
> -------------+------------+---------+-----------+---------
> baseline     |  215907.25 |   33.11 |     41.76 |  192.36
> -------------+------------+---------+-----------+---------
> netisr_ncpus |  210658.80 |   58.01 |      5.20 |   68.73
> -------------+------------+---------+-----------+---------
> kevent.data  |  217599.01 |   32.00 |      2.35 |   35.59
>
> 8KB web object
>
>              | perf (tps) | lat-avg | lat-stdev | lat-99%
> -------------+------------+---------+-----------+---------
> baseline     |  182719.03 |   42.62 |     58.70 |  250.51
> -------------+------------+---------+-----------+---------
> netisr_ncpus |  181201.11 |   68.78 |      6.43 |   80.68
> -------------+------------+---------+-----------+---------
> kevent.data  |  186324.41 |   37.41 |      4.81 |   48.69
>
> 16KB web object
>
>              | perf (tps) | lat-avg | lat-stdev | lat-99%
> -------------+------------+---------+-----------+---------
> baseline     |  138625.67 |   72.01 |     65.78 |  304.78
> -------------+------------+---------+-----------+---------
> netisr_ncpus |  138323.40 |   93.61 |     16.30 |  137.12
> -------------+------------+---------+-----------+---------
> kevent.data  |  138778.11 |   60.90 |     11.80 |   92.07
>
> So performance is improved a bit, latency-avg is reduced by 3%~15%,
> latency-stdev is reduced by 82%~94%, latency-99% is reduced by
> 69%~81%!
>
> +++++++++++++++
>
> And as a bonus, forwarding performance is also improved!  We now can
> do 13.2Mpps (dual direction forwarding, output packets count) w/
> fastforwarding, and 11Mpps w/ normal forwarding.
>
> Thanks,
> sephe
>
> --
> Tomorrow Will Never Die



More information about the Users mailing list