Здравствуйте. Много раз задавался подобным вопросом, теоретических материалов навалом. Maxim Tyurin поделился общей формулой, которая годится в большинстве случаев, надеюсь он не обидится если я её приведу тут:
""Стандартная настройка" Среднестатическая настройка для максимальной производительности. Берём размер памяти (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 для медленных; ну и autovacuum включить ещё. с analyze treshhold в 900, и vacuum treshhold в 1800. Если на сервере крутится еще что-то большое кроме PostgreSQL то нужно изменить effective_cache_size (например 1С рекомендует устанавливать этот параметр в RAM/2). Выключить fsync можно только при использовании аппаратного рейда с BBU. Также в рекомендациях от 1С встречается "установить enable_nestloop = off " Не стоит так делать. Как, впрочем, и использовать другие костыли, для того, чтобы обмануть планировщик запросов PostgreSQL. Планировщик у PostgreSQL значительно умнее среднестатистического администратора БД, и в 99.9% случаев срабатывает корректно. Если же он работает некорректно, то нужно настраивать в первую очередь effective_cache_size, random_page_cost и cpu*_cost. Чем меньше значения этих параметров, тем больше будут использоваться агрессивные планы с использованием индексов." (с) Maxim Tyurin Alexandr Ogurtsov пишет: > Уважаемые коллеги, ищу совета по настройке производительности PostgreSQL > 8.1.(Debian Etch) <поскипанно> -- Здесь могла быть ваша реклама... _______________________________________________ Sysadmins mailing list [email protected] https://lists.altlinux.org/mailman/listinfo/sysadmins
