Продуктивність Postgresql - коригування SHMMAX та SHMALL


9

Я читав майже все, що є в Інтернеті, щодо покращення продуктивності постгресів, але "правильні" значення для SHMMAX і SHMALL все ще уникають мене.

Здається, що консенсус SHMMAX = total_memory / 4 і SHMALL = total_memory / 2 є безпечними вихідними значеннями.

Однак SHMALL можна виміряти у сторінках чи байтах, і я не можу знайти жодної інформації, яка використовується у Ubuntu.

Чи використовує Ubuntu (або загалом Debian) сторінки чи байти для SHMALL?

Відповіді:


11

Для всіх систем Linux, якими я користувався SHMALL, вимірюється в сторінках і SHMMAXвимірюється в байтах. Я думаю, ви можете перевірити вашу систему за допомогою ipcsкоманди, яка завжди перетворює вище параметри в Кбайт під час виведення, і порівняти її зі sysctlзначеннями:

[aseryozhin@centos ~]$ ipcs -l

------ Shared Memory Limits --------
max number of segments = 4096               // SHMMNI   
max seg size (kbytes) = 524288              // SHMMAX
max total shared memory (kbytes) = 8388608  // SHMALL
min seg size (bytes) = 1

[aseryozhin@centos ~]$ sysctl -e kernel.shmmax
kernel.shmmax = 536870912

[aseryozhin@centos ~]$ sysctl -e kernel.shmall
kernel.shmall = 2097152

[aseryozhin@centos ~]$ getconf PAGE_SIZE
4096

SHMMAX: 524288 * 1024 = 536870912

SHMALL: 8388608 * 1024/4096 = 2097152


2

Ці змінні вимірюються в байтах, як зазначено в документації. Я думаю, що важливіше переглянути параметри конфігурації postgresql. Вам потрібно переглянути значення SHMALL / SHMMAX при необхідності. Наприклад, якщо ви хочете збільшити максимальну кількість з'єднань, можливо, вам доведеться збільшити ці обмеження.

Настроювання сервера баз даних залежить від вашої схеми використання, наприклад, кількості одночасних підключень та розміру бази даних. Збільшення конфігураційного параметра не завжди добре.


2
SHMMAX потрібно збільшити, щоб збільшити спільні_буфери, що є найнижчим висячим фруктом, коли справа доходить до продуктивності postgresql. Чи можете ви додати посилання на документацію?
Енріко

Ви можете подивитися на manpages.ubuntu.com/manpages/jaunty/man2/shmget.2.html
Халед
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.