Linux накладывает очень жесткие ограничения на производительность протоколов UDP, ограничивая размер трафика UDP, который разрешено буферизировать на сокете приема. Настоятельно рекомендуется увеличить эти ограничения ОС как минимум до 25 МБ, прежде чем пытаться запустить UDP-трафик на ваш сервер. 25MB - это всего лишь рекомендация.
Проверьте текущее значение буфера приема UDP/IP по умолчанию и предел, введя следующие команды:
1 2 | sysctl net.core.rmem_max sysctl net.core.rmem_default |
Пример
1 2 3 4 | ~$ sysctl net.core.rmem_max net.core.rmem_max = 212992 ~$ sysctl net.core.rmem_default net.core.rmem_default = 212992 |
Если значения меньше 26214400 байт (25 МБ), необходимо добавить следующие строки в файл /etc/sysctl.conf:
1 2 | net.core.rmem_max=26214400 net.core.rmem_default=26214400 |
Изменения в файле /etc/sysctl.conf не вступают в силу до перезагрузки. Чтобы обновить значения немедленно, введите следующие команды от имени root:
1 | sudo sysctl -a |
Для временного увеличения размеров буфера (до перезагрузки) выполните следующие команды
1 2 | sudo sysctl -w net.core.rmem_max=26214400 sudo sysctl -w net.core.rmem_default=26214400 |