Maxim Boguk,
Боюсь, что я не совсем корректно поставил вопрос. Есть некоторая система, которая содержит много текстов. Эти тексты анализируются по определенным правилам, которые меняются со временем. После каждого изменения - нужно обработать часть текстов. Обработка ведется не СУБД, а отдельной программой по типу BOINC - прочитал аргумент, посчитал, удалил старые результаты, записал новые. Тексты и результаты разбиты в партиции, объем связанных данных в одной партиции - 3-4 GB, то есть в теории в памяти могут быть размещены 2-3 партиции совершенно свободно (сервер выделеный).
На текущий момент обработчиков 6, причем каждый из них работает в 4 потока - всего 24 подключения. Загрузка CPU - 75-80%. При дальнейшем наращивании мощности начинают проскакивать ошибки подключения и взаимоблокировки. Особенность обработки такова, что такая загрузка может прийти в 24/7. Естесвенно, при включенном autovacuum (AV) в жестком режиме скорость обработки падает до неприемлемых величин + тормозятся еще и функции выборок для других пользователей.
Пока есть следующие мысли:
1) Оптимизировать планировщик задач, что бы он выдавал задание на обработку из разных партиций одновременно (2-3, что бы использовать буфер по полной). Это позволит снизить вероятность конкуренции на уровне доступа
2) В сочетании с п.1 перейти на PG 9.4 и использовать разогреватель кэша (
http://habrahabr.ru/post/234909/#prewarm)3) Выполнять VACUUM после каждой обработки (или перед что неважно) целиком или по мере обработки партиций для каждой партиции
4) Ломать голову над детальной настройкой AV - что бы он включался, но только при минимальной нагрузке в фоновом режиме. Но как я понял, явно указать это нельзя, только косвенно через его настройки. Только я не могу понять как.