fisher
По поводу маленькими пакетами, когда на каждый пакет новое соединение согласен. Тут действительно сложность установления соединения будет сильно отрицательно влиять на производительность.
Но я хотел обсудить более общую задачу (не совсем сбор логов маленькими порциями без возможности держать открытые соединения). TCP-сессии уже есть (оверхед константный). По ним передаются данные (iperf по сути именно это и моделирует открывая нужное число сессий и передавая по ним данные).
И в пределах датацентра в этой модели получаются следующие результаты:
	
	
		
			Один поток TCP (iperf -c *** --format k -m -p 4334 -t 10):
[ ID] Interval       Transfer     Bandwidth
[  4]  0.0-10.0 sec  1.09 GBytes   936 Mbits/sec
50 TCP:
[SUM]  0.0-10.9 sec  1.16 GBytes   911 Mbits/sec
100 TCP:
[SUM]  0.0-11.8 sec  1.26 GBytes   917 Mbits/sec
UDP (iperf -c *** --format k -m -p 4334 -t 10 -u -b 2000M):
[ ID] Interval       Transfer     Bandwidth        Jitter   Lost/Total Datagrams
[  3]  0.0-10.0 sec   890 MBytes   746 Mbits/sec   0.039 ms    0/634659 (0%)
[  3]  0.0-10.0 sec  1 datagrams received out-of-order
На другой стороне запускалось: iperf -s -p 4334 [-u]
		
		
	 
Больше чем 100 соединений протестировать не получилось, iperf сказал что не может создать потоки(pthread), а подкрутить ulimit на предмет памяти у меня прав не достаточно.
P.S. Наверное будет лучше выделить эту дискуссию в отдельную тему?