Есть FreeBSD 6.2-RELEASE #0 хост.
С настроенной и реально нормально работающей системной авторизацией через OpenLDAP 2.3 (вот Шуруп сподобится вывесить статью — можно будет дать на неё ссылку).
Жизнь заставила потренироваться на нём с жёсткой оптимизацией (в том числе с изменением умолчательных параметров, кстати, где бы почитать про их взаимосвязь?).
И вот, при подаче не дотягивающих до нормального значения тестовых нагрузок я вижу в системном логе следующие строки:
[root@mx4 /var/log]# grep "could not search LDAP server" messages Oct 9 10:11:07 mx4 named[609]: nss_ldap: could not search LDAP server - Server is unavailable Oct 9 10:11:24 mx4 slapd[754]: nss_ldap: could not search LDAP server - Server is unavailable [root@mx4 /var/log]# bzcat messages.*bz2 | grep "could not search LDAP server" Oct 8 13:29:07 mx4 cron[30698]: nss_ldap: could not search LDAP server - Server is unavailable Oct 8 16:12:15 mx4 cron[99335]: nss_ldap: could not search LDAP server - Server is unavailable Oct 8 16:13:58 mx4 cron[99931]: nss_ldap: could not search LDAP server - Server is unavailable Oct 8 17:39:10 mx4 named[609]: nss_ldap: could not search LDAP server - Server is unavailable Oct 8 17:39:27 mx4 slapd[754]: nss_ldap: could not search LDAP server - Server is unavailable
В логах slapd’а никакой крамолы не нахожу.
Есть подозрение, что затык на уровне тех самых нежно и трепетно любимых параметров ядра (kern.maxfiles уже задран от умолчательного ~2х, моя практика показывает, что если просто увеличивать kern.maxfiles, то вероятен затык ещё на чём-то, но на этот раз подсказки в логах не ищутся).
Я бы просил достопочтенную публику подсказать направление, в котором следует искать решения этой проблемы.
Последние комментарии
- OlegL, 17 декабря в 15:00 → Перекличка 21
- REDkiy, 8 июня 2023 года в 9:09 → Как «замокать» файл для юниттеста в Python? 2
- fhunter, 29 ноября 2022 года в 2:09 → Проблема с NO_PUBKEY: как получить GPG-ключ и добавить его в базу apt? 6
- Иванн, 9 апреля 2022 года в 8:31 → Ассоциация РАСПО провела первое учредительное собрание 1
- Kiri11.ADV1, 7 марта 2021 года в 12:01 → Логи catalina.out в TomCat 9 в формате JSON 1
копать следует в направлении nss_ldap.conf, конфиг в студию, посмотрим.
Целостность базы ЛДАП не нарушенна?
Нет.
Когда нагрузка падает всё возвращается к норме.
Думаешь?
Пожалуйста
вы не с той стороны начинаете траблшутинг. и наличие в проблемных логах слова nss_ldap отнюдь не означает, что копать надо конфиг nss_ldap. Yam — это было вам.
Anarchist
такая надпись при высокой нагрузке означает, что сервер LDAP просто не справляется с запросами. и рыть надо, для начала, в сторону показания диагностических утилит при высокой нагрузке (я думаю каких — вам объяснять не надо). потом рыть в сторону конфига slapd.conf, на предмет отсутствия индексов, на предмет выбора подходящего backend для хранения LDAP базы, также — советую ознакомится с http://www.openldap.org/doc/admin24/tuning.html#Caching если эти параметры еще не тюнились
Логично предположить :)
Причём это утверждение содержится ещё в вопросе.
Не надо переоценивать меня.
Был бы благодарен, если бы Вы раскрыли тему диагностики системы в случае пиковых нагрузок.
База индексирована.
Я же написал: используется OpenLDAP 2.3…
И система перегружена не только (не столько) LDAP’ом.
top, iostat, vmstat. для начала — хватит вывода top
[/quote]
это отлично, что она индексирована. почему бы сразу не привести сюда конфиг? если вы просите помощи, зачем заставлять людей гадать на кофейной гуще?
по поводу того, какая версия — простите, не заметил. но в моем случае — это непринципиально.
[/quote]
прекрасно. какие еще подводные камни в вашем вопросе? если вы расчитываете на помощь — дайте сразу ВСЮ информацию. что работает еще на сервере, что вы крутили уже руками (sysctl, в ядре)?
Проходили и не ограничивались.
Ещё как минимум lsof, ipcs и uptime.
Да, почти забыл, и sockstat.
А Вы уверены, что конфиг slapd’а здесь нужен?
А не что-то иное?
Да, есть мнение, что версия OpenLDAP’а в данном случае не должна быть критична.
Совсем всю — в том числе надёжный способ утопить отвечающих в массиве исходных данных.
Параметры рулятся не только в /etc/sysctl.conf, но и в /boot/loader.conf.
Кстати, может быть Вы сможете ответить почему в FreeBSD 6.X рекомендуют использовать модули? И насколько обосновано это утверждение?
деточка, вы клоун и пиздобол. я поставил вам прямые вопросы, вы нагадили еще пицот красивых букаф.
особенно я порадовался «утилите диагностики uptime» и lsof, который в данном случае — нахуй не нужен.
без конфига slapd.conf и, как минимум, вывода top — с вами говорить не о чем.
впрочем я сливаюсь из темы. скучновато помогать тем, кто помощи не хочет.
Уёбок, я не нанимался метать бисер перед свиньями, продемонстрировавшими «глубину» знания матчасти.
Понял?
Пиздобол, ты бы хотя бы включил мозги (я конечно понимаю, что сложно задействовать то, чего нет)…
Документацию («пониманием» которой ты так любишь понтоваться) ты тоже не читаешь.
Иначе бы знал что полезного присутствует в выводе uptime и зачем в данном случае может потребоваться lsof.
Но не сосункам, рулящим всеми параметрами ядра через sysctl (и не подозревающим о существовании /boot/loader.conf) об этом знать…
Без демонстрации тобой хотя бы понимания матчасти любые цитирования конфигов — не более чем пустая трата времени и забалтывание темы.
Действительно.
Лучше — самому уйти (по возможности громко хлопнув дверью).
А то ещё поймают на незнании матчасти.
ЗЫ: Какова обидчивость некомпетентных аффтаров :)))
замените на
, соответственно и slapd запускать с параметром -h «ldapi://%2fvar%2frun%2fldapi/», в конфиг дописать строчки:
Почему думаю что это поможет, потому что у самого такая же проблема была, nss_ldap цеплялся через ldap:// тоже на каталог расположенный на этой же машине, пока не поменял на ldapi:// и не дописал таймауты и проблема рассосалась.
Yam
не думаю, что проблема в этом. коннект AF_INET и через AF_UNIX может СИЛЬНО различаться в случае совсем корявой системы. честно — даже пока в голову не приходит, что надо сделать для такого :-\
Классический UNIX-сокет и TCP-сокет — суть сильно разные вещи.
База пользователей в LDAP только для локалхоста — хоть даже я могу привести аргументы за, но всё равно — пальба из пушки по воробьям. Локалхостом дело ограничивать не стоит (пусть даже на нём замыкается 95-97% нагрузки).
А вот про таймауты (особенно с учётом того, что я знаю про OpenLDAP) замечание очень интересное (было бы ещё интереснее, если бы ув. тов. Yam хотя бы указал ключик где/как посмотреть умолчательные).
Обязательно обдумаю и опробую. Правда, всё-таки для случая loopback net interface.
с точки зрения приложения — абсолютно одинаковые :) используется один API
по поводу таймаутов. бороться надо с причиной, а не со следствием. ну увеличите вы время ожидания ответа. но LDAP то тормозить не перестанет. и не факт, что вы не сделаете хуже, забив его висящими в таймауте коннектами? ну открылся коннект, база работает, трудится, не отбивается по таймауту клиент.. а новые то приходят
вообще, если выполнять нормальный траблшутинг, я бы делал так, прежде чем плясать с бубном в конфигах:
1. вынес бы LDAP базу в отдельный раздел. ЕМНИП, она по дефолту в /var, который активно занят другими системными базами и, особенно, логами
2. проверил бы, нет ли избыточных индексов. сильно много индексов — не есть хорошо
3. тюнил бы cachesize
и каждое действие сопровождал бы top/iostat в соседней консоли ;)
Исходя из моего опыта и представлений о здравом смысле просто вынос в отдельный раздел большого выигрыша не даёт.
Вынос на отдельный физический диск — да, заметно улучшает ситуацию.
Не поясните ли критерии избыточности?
Касаемо top у меня есть некоторый скепсис, но не суть важно. :)
С учётом ситуации (нагрузка создаётся не LDAP’ом) я бы скорее смотрел в сторону резервирования ресурсов под LDAP (ещё бы понять что и куда крутить для этого…).
А клиент, отбитый по таймауту (в данном случае) возвращается…
Дык вопрос насколько близки умолчательные значения таймаутов к оптимальным?
И как определять эти самые оптимальные?
ну это естественно. я подразумевал это :) мудрено от UFS2 отрезать новый раздел :)
да все просто. индексировать надо только те поля, по которым ЧАСТО происходит поиск. остальные — зря кушают ресурсы памяти и CPU.
ОМГ… я уже понял, что у вас не один LDAP. так вот вам надо понять, КАКИХ ресурсов не хватает и ЧТО нужно под LDAP резервировать. каким образом вы это собираетесь сделать, как не используя утилиты диагностики?
исходя из моего опыта — они оптимальны. если вам не подходят — то определить их можно только эмпирически — меняя и меряя.
Однако можно учесть/предусмотреть на этапе установки ОС :)
А слоты под жёсткие диски в ряде моделей серверов — ресурс сильно ограниченный.
Направление для поиска по теме сбора данной статистики не укажите?
ИМХО данная формулировка не полна.
Дык я же почти сразу говорил, что доля LDAP’а в случае нормальной нагрузки — в пределах единиц процентов. В рассматриваемом случае падает до чуть ли не долей промилле.
Относительно же ресурсов есть подозрение, что проблема не столько в них, сколько в стыках.
Какие утилиты диагностики Вы порекомендуете?
Т.е. по вопросу как их посмотреть Вы не подскажете?
в документации по OpenLDAP в разделе tuning описаны наиболее востребованые поля. посмотрите там и сверьтесь со своей ситуацией. вам виднее, какие запросы приходят к вам в базу.
iostat -x — смотреть wait, svc_t,%b (интерпретация есть в man), gstat, top — обратить внимание на колонку STATE — в каких вызовах/событиях висят ваши сервисы. для начала хватит
По моему опыту документация OpenLDAP не безупречна :(
Репликацию через slurpd так и не заставил работать (здесь может есть и доля моей вины), момент зависимости выражений, определяющих доступ к дереву от параметров запуска не отражён.
Thanks.
Вы так и будите обсуждать разницу между сокетами и таймаутами или всё же попробуете?
ЗЫ неотчаивайтесь, если не осилили репликацию через slurpd, в ldap > 2.4 используется delta syncrepl и slurpd больше не нужен.
Понимаете, проблема с OpenLDAP здесь занимает далеко не первое место в рейтинге значимости.
Поэтому понять суть проблемы (и чем грозит забивание на неё) тоже важно.
Я спокоен как удав. :)
Для ветки 2.3 это тоже не единственный способ репликации.
И, как мне думается, не спроста…