Задача після збільшення пам’яті до 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/.
Немає коментарів:
Дописати коментар