понеділок, 2 листопада 2009 р.

Пам’ять PostgreSQL у Linux: розбір старих sysctl-налаштувань

Задача після збільшення пам’яті до 10 ГБ

Після збільшення RAM сервера до 10 ГБ я намагався розширити доступну PostgreSQL спільну пам’ять. У старому рішенні використовувалися такі команди й альтернативний запис у /etc/sysctl.conf:

Команди та параметри зі старого рішення

echo 8589934592 >/proc/sys/kernel/shmall
echo 8589934592 >/proc/sys/kernel/shmmax

kernel.shmall = 8589934592
kernel.shmmax = 8589934592
vm.swappiness=10

sudo /sbin/sysctl -p

Різні одиниці shmall і shmmax

Наведені значення не є універсальною рекомендацією. У Linux shmall вимірюється сторінками пам’яті, а shmmax задає межу розміру окремого сегмента в байтах. Однакові числа тут не означають однакові обсяги. Розмір сторінки можна перевірити через getconf PAGE_SIZE.

Що регулює swappiness

Також swappiness — не відсоток використання swap. Поточна документація ядра визначає його як відносну оцінку вартості вводу-виводу для swap і файлових сторінок у діапазоні 0–200; поведінку старого ядра слід звіряти з його версією.

Залежність від версії PostgreSQL

Ці sysctl не резервують автоматично «8 ГБ для PostgreSQL, решту для ОС». Налаштування залежать від версії PostgreSQL, способу виділення пам’яті та навантаження; сучасні версії зазвичай потребують лише невеликого сегмента System V.

Первинні джерела: параметри ядра, swappiness, ресурси ядра для PostgreSQL. Старі додаткові адреси: http://sysdba.org.ua/ustanovka/oracle/ustanovka-oracle-10g-redaktsii-express-i-enterprise-v-ubuntu-8.04.html і http://postgrestips.blogspot.com/.

Немає коментарів:

Партнерська програма K2 ERP: п’ять рівнів від рекомендацій до власних продуктів

Перша рекомендація клієнту може стати початком власного напряму бізнесу з K2 ERP. Оновлена партнерська програма поєднує самостійну реєстрац...