Добрый день.
Есть сервер
ubuntu 11.4 64 bit
Intel Xeon 2.67Ghz 8 cores
Ram 16 Gb
Raid 1 Tb
на нем стоят enterprise postgres 8.4.
Объем базы 10 gb
Объем самой большой таблицы 3 gb
параметры postgresql.conf
max_connection=150(с запасом, юзеров реально много может быть)
shared_buffers=64
work_mem=1Mb
naintenance_work_mem=16Mb
effective_cache_size=128MB
Ситуация такая.
В базу из другой базы (дбф-фокспро 2,6 дос) обновляются данные. Это работает.
также с 8-00 до 15-00 идет интенсивный ввод данных из программы на яве.
Пользователь вводит заявку. Вводит клиента. Выбивает кол-во. По нажатию на ентер отображаются данные по продукции.
Неделю - две все нормально работает. Потом начинает тормозить, причем основной тормоз приходит именно на режим отображения данных по продукции. основная причина это когда пользователи запускают "тяжелые" отчеты.
Постгрес отдает много ресурсов на отчетов и на ввод заявок практически ничего не остаётся.
Результат запроса могут содержать
Если тормоза происходят когда не запущен ни один отчет, то вечером делаю вакуум и реиндексацию.
На данный момент одновременно к базе подключаются максимум 30 человек через одного пользователя (postgres).
Из них 10 вводят заявки.
Вообще как часто нужно делать вакуум и реиндексацию?
Автовакуум работает.
Вообще при таких объемах какие значения параметров должны быть?
Может нужны еще какие-то другие параметры?
> shared_buffers=64 Какое-то
> shared_buffers=64
Какое-то странное значение у вас 64 чего?
Совету почитаться статью
http://postgresql.ru.net/pgtune/postgresql.html
и поправьте настройки согласно тому, что там написано.
Вакуум и реиндексация необходима если у вас часто происходит удаление и обновление записей в таблицах. Необходима тем чаще, чем больший объём данных затрагивается этими операциями. Если данные только добавляются, то VACUUM ANALYZE вполне достаточно.
Очень советую читать логи сервера, а ещё смотреть ресурсы, потребляемые PostgreSQL (в UNIX командой top, например) станет понятней, как сервер использует системные ресурсы и что ещё можно добавить.