PostgreSQL — формула оптимизации

Среднестатистическая настройка для максимальной производительности.

RAM — объем памяти сервера

shared_buffers = 1/8 RAM или больше (но не более 1/4);
work_mem в 1/20 RAM;
maintenance_work_mem в 1/4;
max_fsm_relations в планируемое кол-во таблиц в базах * 1.5;
max_fsm_pages в max_fsm_relations * 2000;
fsync = true;
wal_sync_method = fdatasync;
commit_delay = от 10 до 100 ;
commit_siblings = от 5 до 10;
effective_cache_size = 0.9 от значения cached, которое показывает free;
random_page_cost = 2 для быстрых cpu, 4 для медленных;
cpu_tuple_cost = 0.001 для быстрых cpu, 0.01 для медленных;
cpu_index_tuple_cost = 0.0005 для быстрых cpu, 0.005 для медленных;

Читать далее «PostgreSQL — формула оптимизации»

Восстановление PostgreSQL после повреждения файлов XLOG

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

Jul 4 11:30:18 database postgres[92997]: [1-1] LOG: database system was interrupted at 2009-07-04 11:24:30 MSD
Jul 4 11:30:18 database postgres[92997]: [2-1] LOG: could not open file "pg_xlog/000000010000031A00000027" (log file 794, segment 39): No such file or directory
Jul 4 11:30:18 database postgres[92997]: [3-1] LOG: invalid primary checkpoint record
Jul 4 11:30:18 database postgres[92997]: [4-1] LOG: could not open file "pg_xlog/000000010000031A00000026" (log file 794, segment 38): No such file or directory
Jul 4 11:30:18 database postgres[92997]: [5-1] LOG: invalid secondary checkpoint record
Jul 4 11:30:18 database postgres[92997]: [6-1] PANIC: could not locate a valid checkpoint record

Найти поврежденный xlog-файл вряд ли получится, поэтому выход один — очистить информацию в БД об используемых логах. Для этого есть штатная утилита pg_resetxlog

Читать далее «Восстановление PostgreSQL после повреждения файлов XLOG»

Отключаем сервисы в Zone

После инсталляции зоны, желательно отключить в ней следущие сервисы:

svcadm disable network/smtp
svcadm disable network/telnet
svcadm disable network/ftp
svcadm disable network/finger
svcadm disable network/login:rlogin
svcadm disable network/shell:default
svcadm disable application/x11/xfs
svcadm disable network/rpc/rstat
svcadm disable network/rpc/rusers
svcadm disable network/rpc/smserver
svcadm disable network/rpc/gss
svcadm disable network/rpc/rquota
svcadm disable network/rpc/cde-calendar-manager
svcadm disable network/rpc/cde-ttdbserver
svcadm disable network/nfs/client
svcadm disable network/nfs/cbd
svcadm disable network/nfs/mapid
svcadm disable network/nfs/status
svcadm disable network/nfs/nlockmgr
svcadm disable network/nfs/rquota
svcadm disable network/stdiscover
svcadm disable network/stlisten
svcadm disable network/cde-spc
svcadm disable network/rpc-100235_1/rpc_ticotsord
svcadm disable network/security/ktkt_warn