Есть некий сервер под управлением FreeBSD.
На него предполагается установить достаточно интенсивно нагруженный сервер БД PostgreSQL (установившийся размер базы прогнозируется ~16Gb).
Параметры сервера по умолчанию не обеспечивают полного использования аппаратных ресурсов.
Производительность тоже недостаточная.
Пилим параметры ОС увеличивая следующие параметры.
kern.ipc.semmni kern.ipc.semmns kern.ipc.semume kern.ipc.semmnu
kern.ipc.shmmax
и как оказалось если есть желание разрулить параметры запуска без пересборки ядра, то необходимо задать ещё один параметр
kern.ipc.shmall=262144
Проблема первая: документация постгреса не даёт ответа на вопрос: «$скока вешать в байтах$"? Списки рассылки — немногим лучше :(
Проблема вторая: увеличили параметры ядра, база запустилась с новыми параметрами, использует столько системных ресурсов, сколько хочешь ей дать.
Даёшь нагрузку (пока тестовую) — серверу плохеет.
Исходя из логов — из-за достижения предела kern.maxfiles.
Увеличиваю kern.maxfiles, даю нагрузку — серверу снова плохеет.
Но на сей раз в логах подсказки нет :(
Handbook утверждает только что:
kern.maxfiles can be raised or lowered based upon your system requirements. This variable indicates the maximum number of file descriptors on your system. When the file descriptor table is full, “file: table is full” will show up repeatedly in the system message buffer, which can be viewed with the dmesg command.
Each open file, socket, or fifo uses one file descriptor. A large-scale production server may easily require many thousands of file descriptors, depending on the kind and number of services running concurrently.
Главный вопрос: где бы почитать про взаимосвязи параметров ядра (на двух разных серверах kern.maxfiles принимает разные умолчательные значения) в FreeBSD 6.X (в перспективе — 7.Х).
Что-нибудь поконкретнее Хэндбука.
Последние комментарии
- OlegL, 17 декабря 2023 года в 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
Умолчательные значение kern.maxfiles зависят от maxusers. C 5.0 maxusers подбирается автоматически на старте ядра. До этого, надо было выставлять в config. Поэтому на разных машинах maxfiles будет разным.
По сути вопроса: где почитать — не знаю. Разве что, freebsd-performance@ или freebsd-hackers@ поможет…
По вышеприведённой ссылке написано, что так было во времена 4.Х
Вопрос: как?
maxfiles зависит от железа (в первую очередь — RAM).
И далеко не факт, что на разных машинах он будет разным.
Только если подписываться и то маловероятно.
Вообще, код открыт, но ладно, я сделал это за тебя.
И там дальше ещё всякое интересное идёт.