Мы бежим PGSQL 9.2
и ниже приведены технические характеристики оборудования
OS: CentOS7 64bit
CPU: 24
Memory: 32GB
Disk: SSD
Я хочу рассчитать значения shmmax / shmall, тогда что будет лучше? Я погуглил, и люди сказали, что 50% общей памяти. Но на моем компьютере работает только PGSQL, тогда почему не 80% общей памяти?
Могу ли я настроить kernel.shmmax
28 ГБ? и оставьте 4G для ОС Linux.
Что ты предлагаешь?
shmmax
и shmall
не являются выделениями, это ручки управления в ядре, которые позволяют вам контролировать максимальный размер сегмента разделяемой памяти и количество страниц разделяемой памяти.
Цитата из sysctl документация:
shmall:
This parameter sets the total amount of shared memory pages that
can be used system wide. Hence, SHMALL should always be at least
ceil(shmmax/PAGE_SIZE).
If you are not sure what the default PAGE_SIZE is on your Linux
system, you can run the following command:
# getconf PAGE_SIZE
==============================================================
shmmax:
This value can be used to query and set the run time limit
on the maximum shared memory segment size that can be created.
Shared memory segments up to 1Gb are now supported in the
kernel. This value defaults to SHMMAX
Я бы рекомендовал воспользоваться вашими предложениями по настройке этих переменных sysctl, так как они необходимы для возможности дальнейшей настройки PostgreSQL, а рекомендации часто более чем подходят для необходимых задач. знак равно
После того, как эти sysctl установлены, установка shared_buffers
до 25% ОЗУ и effective_cache_size
до 75% в вашем postgresql.conf
даст вам отличный старт для эффективного использования оперативной памяти на вашем сервере.
Я также рекомендую следить за записью PostgreSQL Wiki на Настройка сервера PostgreSQL, или получить книгу Грега Смита PostgreSQL 9.0 High Performance для получения дополнительной информации о правильной настройке и уходе за вашим сервером. знак равно