Serezha
Artem
если бинд не поднят, то насколько знаю напрямую
Serezha
все зависит от реализации gethostbyname на твоей платформе
Serezha
внутреннего кеша нет
Serezha
судя по исходникам
Serezha
но локальная служба ДНС обычно кеширует
Yuriy
ну да. Я прошелся по clib/inet кэширования не нашел. Буду писать свое
Yuriy
спасибо за ответ
Maxim
ну да. Я прошелся по clib/inet кэширования не нашел. Буду писать свое
https://tproger.ru/explain/domain-name-system/ А что будет кэшировать то что вы собираетесь написать? Тоже с такой проблемой столкнулись
Yuriy
https://tproger.ru/explain/domain-name-system/ А что будет кэшировать то что вы собираетесь написать? Тоже с такой проблемой столкнулись
Да мне на kamailio надо чтобы не гонять каждый раз к dns закэшить имя и его ip. По факту просто внутри сервиса мап хранить имя=>ip
Maxim
Да мне на kamailio надо чтобы не гонять каждый раз к dns закэшить имя и его ip. По факту просто внутри сервиса мап хранить имя=>ip
А не пробовали завести локальный dns сервер и обращаться к нему? Чтоб не писать свой велосипед
Yuriy
А не пробовали завести локальный dns сервер и обращаться к нему? Чтоб не писать свой велосипед
Да нет там никакого велосипеда. Простая функция которая резолвит через socket.dns.toip и потом складывает это во внутренний кэш сервиса. Каш с таймером. Там уже все есть. Остаётся только при обращении к фенкции делать запрос кэш и смотреть есть ли там значение. Если нет то заново резолвит. Всё в себе. Без 3d party service. Удобнее
Yuriy
Приложуха ансиблом собирается. Ip неизвестен но известно имя. Ip меняется крайне редко. Поэтому локально кэшить лучше чтобы избежать оверхеда
Maxim
Чтобы не ходить на сервер куда Отправлю с запросы лишний раз.
DNS запросы одни из самых быстрых, в чем оверхед в вашем случае?
Maxim
В их наличии
А как вы определили что эти запросы можно характеризовать как оверхед? Какие именно параметры вас привели к такому решению? У нас в офисе холивар на эту тему и пока не пришли к общему решению, может быть у вас есть какие то реальные данные и расчеты?
Yuriy
А как вы определили что эти запросы можно характеризовать как оверхед? Какие именно параметры вас привели к такому решению? У нас в офисе холивар на эту тему и пока не пришли к общему решению, может быть у вас есть какие то реальные данные и расчеты?
Ну у меня банально есть выбор слать запрос или нет) чтобы отправить запрос системе как минимум нужно собрать пакет и отправить его через сетевой интерфейс. В случае кэша - этого делать не нужно. Как то так)
Yuriy
Это копеечные затраты
Если я могу даже копеечных затрат избежать то почему нет? Вообще мне непонятна честно Говоря суть дискуссии. Мне надо. Я сделал. Кому не надо тот не далает. В чем вопрос?
Maxim
Ну у меня банально есть выбор слать запрос или нет) чтобы отправить запрос системе как минимум нужно собрать пакет и отправить его через сетевой интерфейс. В случае кэша - этого делать не нужно. Как то так)
Ну так вам все равно придется делать запрос к вашему внутреннему кэшу, пусть этот кэш висит в памяти например, вам все равно не обойтись без этого запроса, и для того что бы принять решение обычно берут и сравнивают время или ресурсы, в вашем случае необходимо и то и другое, кэш имеет свойства "расти" и "занимать какое то место", ну и скорость запрос/ответ вы наверняка хотел ли бы сравнить, неужели вам безразличны эти параметры?
Yuriy
Ну так вам все равно придется делать запрос к вашему внутреннему кэшу, пусть этот кэш висит в памяти например, вам все равно не обойтись без этого запроса, и для того что бы принять решение обычно берут и сравнивают время или ресурсы, в вашем случае необходимо и то и другое, кэш имеет свойства "расти" и "занимать какое то место", ну и скорость запрос/ответ вы наверняка хотел ли бы сравнить, неужели вам безразличны эти параметры?
На практике кэширование данных всегда работает быстрее. У меня были ситуации когда дело упиралось в dns. Кэширование в этом плане снимал проблему. Запросов у меня много - это sip сервер со своим блэкджеком и куптизанками. Трафика там много. Сессии сложнее чем в http. Запрос к локальной памяти выходит быстрее чем запрос к сетевому ресурсу. Как то так.
Yuriy
А кешите только A или ещё и AAAA? Весь рекордсет? Уважаете ttl записей?
У меня внутренний кэш с таймером. Кэшу только А. Кэшу на 10 минут.
Yuriy
да, только кеш не стоит хранить дольше TTL. А то может получиться некрасиво
По ttl - согласен. В моем случае это сбор метрических данных так что если что то не долетит - не страшно
Maxim
Нет у меня возможности биндить локально. Есть определённые ограничения
У вас нет возможности поднимать что то локально рядом с вашим sip?
Yuriy
А как же ipv6 и ttl?
Ipv6 не использую. По ttl выше описал
Fljúgandi Kettlingur
Лучше unbound
я не настаиваю на Классическом Решении :)
Yuriy
У вас нет возможности поднимать что то локально рядом с вашим sip?
Мне не нужен 3d service. Функции в 10 строчек хватает
Maxim
Мне не нужен 3d service. Функции в 10 строчек хватает
А как вы спланировали объем кэша? С kamailio и огромным количеством запросов в короткое время - кэш наверняка будет не из пяти записей состоять, и как быть в пиковые часы? Хватит ли ресурсов держать "вот это вот все" в локальном map ?
Maxim
Мне не нужен 3d service. Функции в 10 строчек хватает
Никто не может вас заставить не писать эти 10 строк, но, например, мне интересно на чем основан ваш выбор, так как на работе примерно такая же проблема и у нас нет шанса на ошибку, если завалится то нам грозит "тазик, ноги, бетон, река"
Yuriy
2 мб на него отвели - что уже как по мне много. Но мб ещё пару сервисов тудп положить нужно будет
Yuriy
Никто не может вас заставить не писать эти 10 строк, но, например, мне интересно на чем основан ваш выбор, так как на работе примерно такая же проблема и у нас нет шанса на ошибку, если завалится то нам грозит "тазик, ноги, бетон, река"
У меня есть возможность потерять данные. То есть высокой степени синхронизации не требуется. Но! Мне важно чтобы это никак не аффектило прохождение пакета, или аффектило на в очень малой степени.
Yuriy
1 запись в кэше? Это как?
Есть сервис доступный по доменному имени. Задача не резолвит его при прохождении каждого пакета. Как можно быстрее отправить данные и продолжить выполнение
Egor
поднять свой днс сервер и закэешировать там )
Egor
но нет ничего проще файла хостс
Yuriy
прописать в файл хостс?
Я уже писал выше что у меня нет варианта ни в hosts ни в 3d сервис
Yuriy
Обращаяться по IP с хедером хост
С каким хедером хост? Куда обращаться? У меня там udp голый который херачет безудержно пакеты в сторону сервиса сбора метрик.
Egor
а ты по ип тогда кидай туда данные, нахера тебе резолвить доменное имя?
Yuriy
А на каком уровне у вас происходит резолв этого домена сейчас?
На уровне локального dns подсети в которой работаем
Yuriy
У меня есть только доменное имя
Maxim
Потому что нет у меня изначально ip
То есть домен один, а ip у него могут быть разные, верно?
Yuriy
Да. Я не знаю его ip изначально. Был бы ip и вопроса не стояло
Maxim
Да. Я не знаю его ip изначально. Был бы ip и вопроса не стояло
Так меняется ip у домена? Или ip постоянный? Может узнать заранее ip домена и указать его в место домена?
Yuriy
Так меняется ip у домена? Или ip постоянный? Может узнать заранее ip домена и указать его в место домена?
Он может поменяться. Блин) я 3 раз уже пишу что единственный вариант узнать ip - сделать резолв. В моем случае)
Артём
https://tproger.ru/digest/sysadmin-compilation/#17
Классная подборка, спасибо
Egor
socket.dns.toip()
не проще написать этот резолвер отдельно? т.е. чтобы он чекал раз в секунду
Yuriy
не проще написать этот резолвер отдельно? т.е. чтобы он чекал раз в секунду
вообще мысль хорошая. Но есть определённые сложности как это сделать в kamailio. Но возможно тем не менее. Я не хочу 3d сервис. Но у камаилио есть возможность выделить подпроцесс под timer. Покапаю. Спасибо
Egor
Случайно тут нет кстати пхпшника? ) я вот спустя хммм 5 лет решил написать сайтик, а оказалось silex уже умер -__- есть пара вопросос симфонисту
Roman
В чем ужас?
_гарантии доставки_
Egor
_гарантии доставки_
это метрики епт
Egor
на тсп все сдохнет, если много данных
Yuriy
_гарантии доставки_
Я последние 8 лет очень плотно работаю с UDP. Если в процентном соотношении посчитать сколько данных было не доставлено - то это примерно 0,0000000000000001%
Roman
это метрики епт
И что? У тебя 30% метрик потерялось, норм же, да? )
Den
Roman
Вообще насрать
Зачем вам тогда метрики с данными на которые насрать?
Yuriy
И я хз что у вас за сеть если у вас 30% трафика теряется. Даже 3g 5% теряет. Вы там по диалапу работаете?
Egor
У меня все например в пределах одной серверной и ничего не теряется.