Форум русскоязычного сообщества Ubuntu


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: Инструкция - как увеличить количество семафоров для работы PostgreSQL  (Прочитано 894 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн SNIKERSMRG

  • Автор темы
  • Активист
  • *
  • Сообщений: 353
  • Хм...
    • Просмотр профиля
Довольно часто встречаю проблему связанную с тем, что PostgreSQL имеет в стандартной настройке 100 разрешенных подключений к базе.
Бывает что этих подключений не хватает. и например, вы можете решить ее поставив значение в 2000 подключений.
Но иногда и этого не хватает, и например вы ставите значение в 5000 или 10000 тысяч, и рестартуете PostgreSQL. Но он не запускается.

В логах пишет следующие ошибки:
FATAL:  could not create semaphores: No space left on device
DETAIL:  Failed system call was semget(5432127, 17, 03600).
HINT:  This error does *not* mean that you have run out of disk space.....

Решается эта проблема следующим образом. Нужно выполнить команду от пользователя root:

sysctl -w kernel.sem="250 32000 32 1000"

И можно перезапускать PostgreSQL с количеством подключений равным в 10000, и все будет работать.

Но после перезагрузки компьютера, эти настройки слетают. Чтобы не слетали, нужно в конце файла /etc/sysctl.conf прописать:
kernel.sem=250 32000 32 1000

И перезагрузить компьютер.

Примечание: если вы захотите увеличить количество подключений еще больше, то тогда в файле /etc/sysctl.conf в строчке
kernel.sem=250 32000 32 1000 вы должны изменить последнее число. Например вместо 1000 поставить 10000.

p.s. На момент написания инструкции, проверял ее на Centos 7.4.1708, но она плюс минус без проблем должна подходить и для Ubuntu
« Последнее редактирование: 28 Мая 2018, 11:01:02 от SNIKERSMRG »
Notebook Samsung NP350V5C: 1366x768, Core i5 3210m, 6Gb Ram, 750Gb HDD, Radeon 7670m, Ubuntu 16.04

 

Страница сгенерирована за 0.013 секунд. Запросов: 19.