Куплю вопросы по PHP, MySQL, Linux и т.д.

phprus

Moderator
Команда форума
fisher
Да, в пределах датацентра одно соединение. Между городами даже 30 (больше не проверяли, так как такое поведение вполне ожидаемо на длинном канале) TCP суммарно медленнее UDP.
 

Farsh

~ on ~ high ~ wave ~

fisher

накатила суть
>>Прошу научить меня использовать гугл!
Эта тема была создана не для обсуждения вопросов и вариантов ответов. 70+ - это хороший результат, и я уверен, что Вы сможете самостоятельно найти ответы на Ваши вопросы ;)
 

fisher

накатила суть
fisher
Да, в пределах датацентра одно соединение. Между городами даже 30 (больше не проверяли, так как такое поведение вполне ожидаемо на длинном канале) TCP суммарно медленнее UDP.
Тогда это классический пример, нет абсолютно ничего удивительного. По-моему это уже обсуждалось, не то в этом треде, не то в соседнем. Вспомните, как устроен TCP и UDP. В TCP чисто на открытые соединения делается куча операций. На передачу небольшой порции данных оверхэд протокола максимален. Теперь смотрите - две модели. A) вам надо отправить кучу данных по одному соединению Б) вам надо отправить данные с кучи нод, мелкими пакетами, постоянно открывая новые соединения. Так вот UDP используется в ситуациях (Б). А Вы протестировали случай (А).
 

phprus

Moderator
Команда форума
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. Наверное будет лучше выделить эту дискуссию в отдельную тему?
 

fisher

накатила суть
Три человека уже получили деньги - и ещё один получит в самое ближайшее время! Если есть интерес - welcome!
 
Сверху