Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
languagebash
echo -e "Threads\tTime"
for threads in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 20 30 40 50; do
	echo -n -e "$threads\t"
	/usr/bin/time -f "%e" curl --silent --output /dev/null --fail --show-error \
		--header "Authorization: Basic Y3BzdXNlcjpjcHNyMGNrcyE=" \
		--get "http://localhost:8883/cps/api/v1/dataspaces/openroadm/anchors/owb-msa221-anchor/node?xpath=/openroadm-devices/openroadm-device\[@device-id='C201-7-[1-25]A-[1-40]A1'\]&include-descendants=true" \
		--parallel --parallel-max $threads --parallel-immediate
done

Results

ThreadsTime (s)SpeedupComments
1140.41.0
271.62.02 threads is 2x faster than 1 thread
348.52.9
437.23.8
531.04.5
626.65.3
723.85.9
821.66.5
920.07.0
1018.77.510 threads is 7.5x faster than 1 thread
1117.77.9
1216.88.4There are exactly 12 CPU cores (logical) on test machine
1316.78.4
1416.78.4
1516.88.4
2016.88.4
3016.78.4
4016.88.4
5016.78.4

Observations

  • There were no failures during the tests (e.g. timeouts or refused connections).
  • Performance increases nearly linearly with increasing thread count, up to the number of CPU cores.
  • Performance stops increasing when the number of threads equals the number of CPU cores (expected).
  • Verbose statistics show that each individual request takes around 0.14 seconds, regardless of thread count (but with multiple CPU cores, requests are really done in parallel)

...