Я ищу решение для ограничения скорости по IP. Сколько пакетов может обработать модуль hashlimit iptables на новейшем ядре процессора Intel x86_64? 1.000 / сек? 1.000.000 / сек?
Наиболее важная дополнительная машина, которую должен пройти netfilter, я вижу из источника, это хеширование новых записей, обновление записей, поиск записей и очистка требуемых базовых хэш-таблиц (см. / Proc / net / ipt_hashlimit) .
Поскольку используются хеш-таблицы, все эти операции выполняются постоянно и довольно быстро, за исключением очистки таблицы. Последнее дорого, если у вас много запросов от разных пользователей.
Если мне нужно сделать приблизительную оценку накладных расходов на ограничение хеширования, я бы добавил максимум 15% к стоимости обработки стандартного набора правил. Как обычно, лучший способ узнать - это измерить. Если да, обновите этот пост :)
В качестве примечания, вы можете проверить PF опция ограничения скорости в BSD.
хеш-таблицы обычно эффективны и в основном имеют линейную масштабируемость.
.. хотя рассматривая варианты, проверьте более внимательно вокруг htable-gcinterval так как это может иметь наибольшее влияние на производительность. Сбор мусора хеш-таблицы, вероятно, самая дорогостоящая операция. Если бы я ожидал узкого места в реализации hashlimit, это было бы вокруг кода gc.