Не совсем сетевой парень, так что потерпите меня.
В настоящее время я размещаю веб-приложение, которое периодически отправляет UDP на все IP-адреса в своей подсети. Это 2048 IP-адресов. Моя проблема в том, что это бросает No buffer space available
через некоторое время.
Я скорректировал некоторые значения, используя sysctl
а именно:
net.ipv4.neigh.default.gc_thresh1 = 2048
net.ipv4.neigh.default.gc_thresh2 = 4096
net.ipv4.neigh.default.gc_thresh3 = 8192
И заработало, но сильно замедляет время отклика сервера. Это написано в Java
и работает в fit-pc2 (1.1ghz, 1gb RAM, SD-карта) Ой, ужас.
Учитывая ограниченные ресурсы, как мне оптимизировать параметры сервера / ядра для решения No buffer space available
проблема?
Это не настройка sysctl как таковая, ваш сервер замедляется, так как он должен постоянно сканировать таблицу arp с 2k записями.
Стоит попробовать:
Однако лучший вариант - отделить сервер от 2k хостов с помощью маршрутизатора.