Производительность TCP IP на той же машине - PullRequest
0 голосов
/ 18 февраля 2012

Когда я запускаю TCP-сервер и клиент на одной машине, я наблюдаю, что время отправки клиентом (то есть timestampT1, send (), timestampT2; timestampT2 - timestampT1) значительно выше в хвостовых процентилях, чем если бы язапустить один и тот же сервер на другой машине.

При всех параметрах TCP, программных и машинных характеристиках, которые равны, если клиенту в среднем требуется 10 микросекунд и 20-25 микросекунд в 90-99-м процентиле на 1 миллион отправок, если сервер и клиент находятся на разных компьютерах, это занимает 10 мкс в среднем и 70-100 мкс в 90-99-м процентиле для сервера и клиента на одном компьютере.

Я попытался поиграть с межпроцессной изоляцией, размером буфера отправки сокетов и закреплением ЦП без существенных улучшений.Это RHEL 5.6.

Любое возможное объяснение этому?

1 Ответ

2 голосов
/ 18 февраля 2012

Принцип неопределенности Гейзенберга в широком смысле.В частности, если у вас на компьютере есть две программы, одна из которых отправляет данные, а другая анализирует их, - тогда вы нагружаете ЦП двумя задачами, когда программа мониторинга работает на другом компьютере - ваш отправительПреимущество в том, что вам не нужно конкурировать с кем-либо еще, и это всегда будет быстрее.

Не проверяйте пропускную способность сети с обеими программами на одном компьютере.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...