@@ -259,3 +259,121 @@ Update rate:
259259> After update each device has config of 1.2k json lines each
260260
26126120 threads were used. No delay among successive updating RPCs
262+
263+
264+ ## GNMI devices
265+
266+ We use gnmi-testtool to simulate devices.
267+
268+ Important caveats:
269+ - Measurement were performed on simulated devices = no device overhead
270+ - Measured on Uniconfig version 5.2.5
271+ - Simulated devices were with small configuration (~ 1144 json lines)
272+ - Devices were installed using optimized RPC connection-manager: install-multiple-nodes (up to 250 devices)
273+
274+ Tests:
275+ - A. Single node deployment of Uniconfig resources: CPU 12 cores and RAM 4 GB
276+
277+ ### Device installation & synchronization
278+ ```
279+ {
280+ "input": {
281+ "nodes": [
282+ {
283+ 'node-id': 'node-36100',
284+ 'gnmi': {
285+ 'schema-cache-directory': 'gnmi-topology-testtool',
286+ 'update-paths': [
287+ '.+'
288+ ],
289+ 'uniconfig-config:whitelist': {
290+ 'path': [
291+ 'openconfig-interfaces:interfaces',
292+ 'openconfig-system:system',
293+ 'openconfig-openflow:openflow'
294+ ]
295+ },
296+ 'uniconfig-config:uniconfig-native-enabled': True,
297+ 'uniconfig-config:install-uniconfig-node-enabled': True,
298+ 'uniconfig-config:sequence-read-active': True,
299+ 'connection-parameters': {
300+ 'host': '10.19.0.253',
301+ 'port': '36100',
302+ 'connection-type': 'PLAINTEXT',
303+ 'credentials': {
304+ 'username': 'admin',
305+ 'password': 'password'
306+ }
307+ },
308+ 'session-timers': {
309+ 'request-timeout': 100,
310+ 'internal-transaction-timeout': 100
311+ },
312+ 'extensions-parameters': {
313+ 'gnmi-parameters': {
314+ 'use-model-name-prefix': False
315+ },
316+ 'force-cached-capabilities': [
317+ 'null'
318+ ]
319+ },
320+ 'stream': [
321+ {
322+ 'stream-name': 'GNMI_testtool',
323+ 'paths': [
324+ 'openconfig-system:system/config',
325+ 'openconfig-system:system/aaa',
326+ 'openconfig-interfaces:interfaces/interface',
327+ 'openconfig-lldp:lldp'
328+ ]
329+ }
330+ ]
331+ }
332+ }
333+ ]
334+ }
335+ }
336+ ```
337+
338+ ### Test A - one node Uniconfig
339+
340+ Inputs:
341+ 6000 x GNMI devices simulated:
342+ 1144 json lines
343+
344+ Evaluation 1:
345+ 6000 devices were registered in 5.2 minutes on single node Uniconfig using 12 cores
346+ Average one device instalation duration = 5.2 minutes / 6000 devices ~ 0.00087 minutes
347+ Average number of json lines per device = 1144 lines
348+ lines of json / per core / per minute = 1144 lines / 12 cores / 0.00087 minutes = 109578
349+
350+ Installation & sync rate:
351+
352+ ** 109,578** * lines of json / per core / per minute*
353+
354+ > A single uniconfig node is capable of installing (and fully syncing)
355+ > ** 6000 GNMI devices with config of 1.1k lines each of formatted json (in Uniconfig)**
356+ > in ** 5.2 minutes** using ** 12 CPU cores**
357+
358+ RPC were sent serially - * connection-manager: install-multiple-nodes * RPC was used (with 100 devices each).
359+
360+
361+ Evaluation 2:
362+ Devices were PATCHED - after PATCH they contain 10 more interfaces - which is 1234 json lines.
363+ Then 6000 devices were updated in 4.3 minutes on single node Uniconfig using 12 cores.
364+ Update process consisted of RPCs: sync-from-network
365+ After sync-from-network each configuration was increased from 1144 to 1234 json lines
366+ Average one device update duration = 4.3 minutes / 6000 devices = 0,00072 minutes
367+ Average number of json lines per device = 1234 lines
368+ lines of json / per core / per minute = 1234 lines / 12 cores / 0,00072 minutes = 142824
369+
370+ Update rate:
371+
372+ ** 142,824** * lines of json / per core / per minute*
373+
374+ > A single uniconfig node is capable of updating (and fully syncing)
375+ > ** 6000 GNMI devices with config of 1.1k json lines each (of formatted json in Uniconfig)**
376+ > in ** 4.3 minutes** using ** 12 CPU cores**
377+ > After update each device has config of 1.2k json lines each
378+
379+ 10 threads were used. No delay among successive updating RPCs. RPC sync-from-network with 60 devices each RPC.
0 commit comments