Monitoring I2P performance
There has been some competion coming up. Welcome!
Facts speak for themselves. We will have a
post about network performance later and now give you a tool for
comparing CPU-specific figures. Context switches, CPU usage, time
slices, length of thread activation runs, TCP packet loss, we have
it all.
Bash script developed on Debian Linux.
Others will most likely need to adapt. Run on your current
install, save figures, update to I2Speed and compare.
I2P performance can only be measured after the router has
integrated into the network for some time. Synthetic tests do not
work, they may stumble over bugs or software limits.
Sample output at around 4000 tunnels, 2,500 KBps throughput, 8
core ARM 32, seeding lots of torrents (24 hours uptime
recommended):
CPU 419 % TCP Retransmissons 16 ‰
Ctx switches/sec CPU ms/s timeslice us activ us
Thread Pool vol nvol total run wait run wait run wait
BuildExec 6 3 8 35 4 4149 480 6080 704
BuildHand 4 32 36 205 12 5616 318 48311 2735
DH_Precal 1 7 8 66 3 7999 411 85394 4392
G1_Conc_0 0 2 2 69 1 29395 242687846 5658
GC_Thread 10 2 13 62 7 4922 563 5999 687
I2CP_Inte 20 0 20 3 4 143 220 143 220
I2CP_Read 45 0 46 17 7 364 162 364 162
I2CP_Writ 35 0 35 5 6 132 174 132 174
JobQueue_ 859 303 1161 1570 186 1352 160 1828 217
NTCP_Pump 598 211 809 671 43 830 54 1124 73
PRNG 1 5 6 26 3 4333 439 32074 3247
SimpleTim 1 0 2 3 0 1797 244 2384 324
UDP_Estab 9 14 23 86 6 3772 269 9800 698
UDP_Messa 370 93 463 596 73 1288 158 1611 198
UDP_packe 231 98 329 256 54 780 165 1111 235
UDPReceiv 415 66 481 239 77 497 160 576 186
XDH_Preca 1 3 4 20 2 4865 369 25239 1916
YK_Precal 1 13 14 192 5 13961 349285879 7148
How to read:
- voluntary context switches (number of times a thread goes to
sleep) and total context switches should be low
- wait time is idle wait on the processor run queue, should be
low
- G1 Conc CPU should be lower than GC, otherwise you should
allocate more memory or your I2P version wastes it
- time slices: longer is better
- activation runs: should be longer than 750 µs (minimum Linux
time slice)
Please note that other I2P versions use shorter crypto keys on
this hardware. That reduces their CPU usage mainly in YK Precalc
and I2CP* (we have that in the JobQueue instead of I2CP*).
Questions welcome.
Updated 200316
<-- Back