Knot DNS resolver Cache
iotop начал выдавать интересную вещь: 
загрузка IO 99% от процесса [kworker/u16:0+flush-8:112]
После поисков вариантов проблемы оказалось, что knot-resolver имеет персистентный кеш на жестком диске.
Т.е. при 10Gb кеша в оперативке, имеем еще 10Gb кеша на винте.
Нужно это для того, чтобы после рестарта можно было отдавать данные с кеша, а не заново их получать.
Учитывая, что рестарты крайне редки для резолвера (по сути, еще ниразу не было за год с лишним), то смысла в кеше на диске я не вижу.
Отключить дисковый кеш у knot-resolver у меня не получилось.

В результате, пришлось уменьшить кеш в оперативной памяти и смонтировать дисковый кеш в ту же таки оперативную память.
 
~]# cat /etc/fstab |grep knot-resolver
tmpfs        /var/cache/knot-resolver        tmpfs   rw,size=5G,uid=knot-resolver,gid=knot-resolver,nosuid,nodev,noexec,mode=0700 0 0
~]# cat /etc/knot-resolver/kresd.conf|grep cache.size
-- Refer to manual for optimal cache size
cache.size = 4990 * MB
~]# systemctl stop kresd@1
~]# mount /var/cache/knot-resolver
~]# systemctl start kresd@1
Кеш оперативки в конфиге должен быть немного меньше, чем смонтированный раздел.
tkapluk
2021-08-05 09:08:22
Avatar
Не тестировал производительность по сравнению с  Google и Cloudflare?
Foster
2021-08-05 15:16:53
Avatar
Не тестировал производительность по сравнению с  Google и Cloudflare?
не совсем корректно будет
свой днс отдает зоны еще свои внутрь
пинг хоста дает
1.1.1.1 => 11ms
8.8.8.8 => 25ms
свой хост => 0.2ms

По идее с кеша будет отдавать очень быстро, поэтому локально будет быстрее, чем гнать пользователей на другие.

namebench выдает такое

dns-test-1.png

dns-test-2.png

dns-test-3.png

dns-test-4.png
 
tkapluk
2021-08-06 08:57:32
Avatar
В Киеве "пинги" на указаннуказанные айпишки существенно меньше. Собственно только для внутренних днс оно и надо. Загонять туда клиентов особо смысла нет.
Kiano
2021-08-07 09:20:58
Avatar
Если нет ната - нет смысла. С натом - всегда есть смысл.
muff
2021-08-07 12:02:02
Avatar
Если есть значительное количество устройств в сети - используем DNS-сервер провайдера. 
Если есть провайдер - обязательно используем собственный резолвер для пользователей.

Да, решения от Google и Cloudflare популярны, но вот "отдебажить" проблему никак не получится в случае ее возникновения. Что "под капотом" - не узнать, поскольку это сторонний сервис. И вероятность срабатывания ограничений на количество запросов всегда будет "неизвестным".
 
tkapluk
2021-08-07 14:43:55
Avatar
 С натом - всегда есть смысл.
И в чем смысл? 
 
Да, решения от Google и Cloudflare популярны, но вот "отдебажить" проблему никак не получится в случае ее возникновения.
и что ты там дебажижшь? 
l1ght
2021-08-07 16:36:41
Avatar
И в чем смысл? 

лимиты per ip
и что ты там дебажижшь? 

чаще приходится дебажить свой собственный резолвер которому сто лет в обед и никто его не обновляет
то dnssec отвалится, то udp size не тот 
да и в целом по ртт смотреть не всегда хорошо, так как есть ещё скорость работы самого приложения и у тех же гуглов что-то самописное на реактивном топливе в этом плане 
Kiano
2021-08-07 19:13:17
Avatar
И в чем смысл? 
 и что ты там дебажижшь? 

не грузить нат, не напарываться на лимит по ипу
tkapluk
2021-08-07 20:58:08
Avatar
Нагрузка на нат такая, что ею можно просто пренебречь. Ну а лимиты какие-то там конечно  есть, но в нормальных условиях Гугель задолбет каптчой на странице поиска, прежде чем  лимитом ДНС сервера.
Вы должны войти

loading