Performance
The following measurements were done on an 8-core Intel(R) Core(TM) i5-8250U CPU @ 1.60GHz
, Arch Linux, and foniod
@
43281a7
.
The following command will produce the raw output:
cargo build --release && \
sudo AWS_ACCESS_KEY_ID=x \
AWS_SECRET_ACCESS_KEY=x \
AWS_BUCKET=x \
AWS_INTERVAL=30 \
DNS_IF=wlp61s0 \
RUST_BACKTRACE=1 ./target/release/foniod & sleep 5 \
&& (top -b -d 2 |grep foniod) >top_log & \
iperf3 -t 10 -b 10M -c localhost > iperf_log \
&& sleep 1 && iperf3 -t 10 -b 100M -c localhost >>iperf_log \
&& sleep 1 && iperf3 -t 10 -b 1000M -c localhost >>iperf_log \
&& sleep 1 && iperf3 -t 10 -b 10000M -c localhost >>iperf_log \
&& pkill top \
&& @ pkill foniod
Looking through the logs, we can see that CPU use follows bandwidth:
Bandwidth | CPU % |
---|---|
10M | 1% |
100M | 4% |
1000M | 32% |
10000M | 98% |
This is test only measures the TCPv4 throughput of the one process, but gives a good idea about scaling.