Первое: Linux не является операционной системой реального времени. Невозможно сказать ядру, что некоторые приложения должны реагировать на какое-то событие в заданный период времени, например 3-4 мс, и дать гарантию, что это произойдет. Поэтому всякий раз, когда система загружается, вы должны предполагать, что будут задержки.
Тем не менее, вы можете настроить вещи в пользу вашего приложения приема UDP-пакетов:
В Linux есть управление сетевым трафиком (см., Например, Traffic Control HOWTO, пример скрипта для DSL с ограниченной пропускной способностью ), который вы можете использовать для настройки разных очередей с разными приоритетами, например, для ваших пакетов UDP и для больших пакетов.
В Linux есть cgroups (контрольные группы), которые вы можете использовать для назначения различных приоритетов и пределов ввода-вывода для вашего процесса получения UDP и
ftpd
/ /sshd
процессов, потому что я предполагаю, что дисковый ввод-вывод другими процессами также может остановить ваш Приложение для приема UDP-пакетов (поэкспериментируйте, чтобы узнать, правда ли это).
Опять же: нет способа гарантировать что-либо.