Прежде чем планировать какое-либо специальное программирование, вы должны провести некоторое тестирование, чтобы увидеть, сколько вы можете обработать с помощью ванильной системы. Настройте фиктивный файл данных и процесс отправки на компьютере-производителе и простой приемщик / анализатор на компьютере-потребителе и проведите кучу профилирования - где вы столкнетесь с проблемами с данными? Можете ли вы использовать более качественное оборудование, или вы можете настроить свою обработку так, чтобы она была быстрее?
Убедитесь, что вы начинаете с платформы HW, которая может поддерживать ожидаемые скорости передачи данных? Если вы работаете с чем-то вроде сетевой платы Intel 82598EB, убедитесь, что она подключена к слоту PCIe 2.0, предпочтительно к слоту x16, чтобы обеспечить полную пропускную способность от сетевой карты до чипсета.
Существуют способы настройки параметров драйвера NIC для вашего потока данных, чтобы получить максимальную отдачу от ваших настроек. Например, убедитесь, что вы используете гигантские кадры в ссылке, чтобы минимизировать издержки TCP. Кроме того, вы можете поиграть со скоростью дроссельной заслонки водителя, чтобы ускорить обработку низкого уровня.
Является ли обработка вашего набора данных распараллеливаемой? Если у вас есть одна задача, выгружающая данные в память, можете ли вы настроить еще несколько задач для одновременной обработки фрагментов данных? Это позволит использовать многоядерные процессоры.
Наконец, если ничего из этого недостаточно, используйте собранные данные профилирования / синхронизации, чтобы найти части системы, которые можно настроить для повышения производительности. Не просто предполагайте, что вы знаете, где вам нужно настроить: подкрепите его реальными данными - вы можете быть удивлены.