diff --git a/README.md b/README.md index ad2683a..d7a889a 100644 --- a/README.md +++ b/README.md @@ -125,12 +125,9 @@ Supports IPv4 and IPv6. #### Performance -![UDP BitTorrent tracker throughput comparison](./documents/aquatic-udp-load-test-illustration-2021-11-08.png) +![UDP BitTorrent tracker throughput comparison](./documents/aquatic-udp-load-test-illustration-2021-11-28.png) -More details are available [here](./documents/aquatic-udp-load-test-2021-11-08.pdf). - -Since making this benchmark, I have improved the mio-based implementation -considerably and removed the glommio-based implementation. +More details are available [here](./documents/aquatic-udp-load-test-2021-11-28.pdf). #### Optimisation attempts that didn't work out diff --git a/TODO.md b/TODO.md index 98be979..05b380d 100644 --- a/TODO.md +++ b/TODO.md @@ -17,14 +17,12 @@ * cargo-deny * aquatic_udp + * consider bounded channels with size 0 meaning unbounded + * check config field and group names, including in load tester * look at proper cpu pinning (check that one thread gets bound per core) * then consider so_attach_reuseport_cbpf * what poll event capacity is actually needed? * stagger connection cleaning intervals? - * notes - * load testing shows that with sharded state, mio reaches 1.4M responses per second - with 6 socket and 4 request workers. performance is great overall and faster than - without sharding. io_uring impl is a lot behind mio impl with new load tester * aquatic_http: * clean out connections regularly diff --git a/documents/aquatic-udp-load-test-2021-11-28.pdf b/documents/aquatic-udp-load-test-2021-11-28.pdf new file mode 100644 index 0000000..79f0917 Binary files /dev/null and b/documents/aquatic-udp-load-test-2021-11-28.pdf differ diff --git a/documents/aquatic-udp-load-test-illustration-2021-11-28.png b/documents/aquatic-udp-load-test-illustration-2021-11-28.png new file mode 100644 index 0000000..eeddbf5 Binary files /dev/null and b/documents/aquatic-udp-load-test-illustration-2021-11-28.png differ