This project is about implementing and describing some tests and measurement concerning Sysrepo project.
Adapted example program from Sysrepo examples is used. Printouts on module changes are removed not to interfere with basic time consumption.
Processor information:
- Architecture: x86_64
- CPU op-mode(s): 32-bit, 64-bit
- Byte Order: Little Endian
- CPU(s): 8
- On-line CPU(s) list: 0-7
- Thread(s) per core: 2
- Core(s) per socket: 4
- Socket(s): 1
- NUMA node(s): 1
- Vendor ID: GenuineIntel
- CPU family: 6
- Model: 94
- Model name: Intel(R) Core(TM) i7-6700HQ CPU @ 2.60GHz
- Stepping: 3
- CPU MHz: 2500.000
- CPU max MHz: 2601.0000
- CPU min MHz: 800.0000
- BogoMIPS: 5183.92
- Virtualization: VT-x
- L1d cache: 32K
- L1i cache: 32K
- L2 cache: 256K
- L3 cache: 6144K
- NUMA node0 CPU(s): 0-7
- Memory: 15G
Sysrepo was running on a local Docker container. It could also be useful to test it on a device and remotely.
On ietf-interfaces module a number of most simple entries was added only containing 'name' of interface and 'enable' value.
Tests were run few times each for combination of every operation and number of entries in a request.
Measures average amount of time for given number of entries and operation processed in a single request
entries/ms | 1 | 2 | 4 | 8 | 16 | 32 | 64 | 128 | 256 | 512 | 1024 | 2048 |
---|---|---|---|---|---|---|---|---|---|---|---|---|
set | 29.828248 | 16.202555 | 16.617822 | 26.491454 | 37.980052 | 27.7456426667 | 28.38218 | 48.7050303333 | 92.3466303333 | 177.184213 | 454.813572 | 1420.526593 |
get | 1.768185 | 2.171163 | 3.31087833333 | 5.640741 | 10.9224743333 | 24.0813563333 | 55.6608143333 | 149.439873 | 490.498112333 | 1818.744884 | 6598.24484633 | 26037.3821507 |
delete | 22.651006 | 38.064887 | 29.2917696667 | 15.553244 | 20.807633 | 29.351339 | 38.4092673333 | 49.784648 | 108.831738333 | 373.296678 | 1397.51568633 | 5476.05380733 |
It is observable that performance of getting leaves is deteriorating fastest while setting is most stable operation and delete is in between.