Postgres -система, настроенная с использованием менее 32 МБ общей памяти - PullRequest
2 голосов
/ 20 декабря 2011

установив Postgres на мой mac, я получил предупреждение об общей памяти.Он направил меня в файл readme, чтобы изменить это, но это не на 100% ясно для меня.

Если установить kern.sysv.shmall равным kearn.sysv.shmmax, т. Е. (Установить 1610612736), будет ли теперь правильно настроена общая память?

На MacBook Pro с 2 ГБ ОЗУsysctl.conf автора содержит:

kern.sysv.shmmax=1610612736
kern.sysv.shmall=393216
kern.sysv.shmmin=1
kern.sysv.shmmni=32
kern.sysv.shmseg=8
kern.maxprocperuid=512
kern.maxproc=2048

Note that (kern.sysv.shmall * 4096) should be greater than or equal to
kern.sysv.shmmax. kern.sysv.shmmax must also be a multiple of 4096.

Ответы [ 3 ]

2 голосов
/ 20 декабря 2011

Это, безусловно, охватит то, что вам нужно сделать с PostgreSQL.

Я не знаю, установил бы я SHMMAX на 1,6 ГБ, но если вам нужно получить его выше 32 МБ, просто установите SHMMAX на

kern.sysv.shmmax=67108864

остальное вы можете оставить как есть.

0 голосов
/ 06 февраля 2016

взято из файла README в вашей директории загрузки / установки,

!!! протестировано и работает.

Установщик PostgreSQL в один клик README

Общая память

PostgreSQL широко использует разделяемую память для кэширования и межпроцессного взаимодействия.К сожалению, конфигурация Mac OS X по умолчанию не позволяет создавать подходящие объемы разделяемой памяти для запуска сервера базы данных.

Перед запуском установки убедитесь, что ваша система настроена на использование большего размера.количество общей памяти.Обратите внимание, что это не «резервирует» какую-либо память, поэтому безопасно настроить гораздо более высокие значения, чем вам может понадобиться изначально.Вы можете сделать это, отредактировав файл /etc/sysctl.conf - например,

% sudo vi /etc/sysctl.conf

На MacBook Pro с 2 ГБ ОЗУ, авторской sysctl.conf содержит:

kern.sysv.shmmax = 1610612736

kern.sysv.shmall = 393216

kern.sysv.shmmin = 1

kern.sysv.shmmni = 32

kern.sysv.shmseg = 8

kern.maxprocperuid = 512

kern.maxproc = 2048

Обратите внимание, что (kern.sysv.shmall * 4096) должен быть больше или равен kern.sysv.shmmax.kern.sysv.shmmax также должен быть кратным 4096.

После того, как вы отредактировали (или создали) файл, перезагрузитесь, прежде чем продолжить установку.Если вы хотите проверить настройки, используемые в настоящее время ядром, вы можете использовать утилиту sysctl:

% sysctl -a

Теперь сервер базы данных может быть установлен.

Для получения дополнительной информации об использовании совместно используемой памяти PostgreSQL см.

http://www.postgresql.org/docs/current/static/kernel-resources.html#SYSVIPC

Поддержка

Для получения помощи по этому установщику посетите форум по адресу:

http://forums.enterprisedb.com/forums/show/9.page

Для получения помощи по пакетам в установщике посетите веб-сайт пакетов.

0 голосов
/ 24 августа 2012

Мне кажется, что у меня возникла та же или похожая проблема, что и при первом вызове initdb после установки postgresql (9.1.4), когда я получал сообщение об ошибке. Я следовал этому гиду .

После звонка initdb я получил:

Justins-MacBook-Air:etc justinbrown$ initdb /usr/local/var/postgres -E utf8
The files belonging to this database system will be owned by user "justinbrown".
This user must also own the server process.

The database cluster will be initialized with locale en_CA.UTF-8.
The default text search configuration will be set to "english".

creating directory /usr/local/var/postgres ... ok
creating subdirectories ... ok
selecting default max_connections ... 10
selecting default shared_buffers ... 400kB
creating configuration files ... ok
creating template1 database in /usr/local/var/postgres/base/1 ... FATAL:  could not create shared memory segment: Cannot allocate memory
DETAIL:  Failed system call was shmget(key=1, size=2138112, 03600).
HINT:  This error usually means that PostgreSQL's request for a shared memory segment exceeded available memory or swap space, or exceeded your kernel's SHMALL parameter.  You can either reduce the request size or reconfigure the kernel with larger SHMALL.  To reduce the request size (currently 2138112 bytes), reduce PostgreSQL's shared memory usage, perhaps by reducing shared_buffers or max_connections.
    The PostgreSQL documentation contains more information about shared memory configuration.
child process exited with exit code 1
initdb: removing data directory "/usr/local/var/postgres"

В конце концов я нашел ответ , скопировал текст sysctl.conf в свой собственный файл, а затем перезапустил (не работал до перезапуска), и хотя я не до конца понимаю, как, все кажется работать сейчас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...