Networking Performance Project
A list of measurements we need to take and, if possible, automate. Results should be pointed to by this page, but not directly stored here.
Tools
Conductor: https://github.com/gvnn3/conductor
- pkt-gen: Currently in the tree in src/tools/tools/netmap
iperf: https://iperf.fr
netperf: https://github.com/gvnn3/netpeerf) (a project that contains Conductor scripts and some results
Things to Measure
A list of things we ought to measure in our tests.
* Config lock-related
- ioctls/etc.
- measure read/write lock ratio
- global ifnet
- ifnet address locks + ifaddr
- lltable + llentry
- firewall lists
- nfirewall rules
- nhost cache - IPv6
- routing table + rtentries
- inpcbinfo
- UDP
- TCP
- syncache
- nd6 prefix list, etc.
- connection groups
- ethernet bridge config
- SNMP-monitored things
- netisr
- BPF
- new connection setup
- investigate Nicholais file descriptor optimisation = non-linear fd allocation (possibly not a big deal for real http)
- Lock traces for common paths, stats
- Cache-line contention measurements
- packet narrative traces
- measurement scenarios:
- classic web
- web w/ lagg
- varnish
- mySQL
- tunnel services / VPN / L2TP
- (full) BGP actively changed (peak 25/s ?)
- NFS scenarios
- different LAN sites
- dynamic firewall rules
- ethernet bridge
- DNS-like (heavy UDP)
- Add VNET to any of the above as well.