Расходование памяти PostgreSQL под Windows

Привет всем!
Недавно столкнулся с проблемой использования памяти СУБД Postgresql. Проблема заключается не в том, что постгресс ест много памяти, а как раз-таки в обратном.
Я использую win-версию postgresql-9.2.4-1-windows.exe под ОС Windows Server 2008 Enterprise SP2
При выставленном shared_buffers = 512MB, в памяти висит 8 процессов postgresql.exe каждый из которых потребляет максимум 8Мб ОЗУ и не более.
При запуске сложных запросов и обработке больших массивов данных проц забивается под 100% и так на несколько минут. Получается что все операции происходят на стороне жесткого диска, что заметно влияет на производительность СУБД.

До этого я использовал версию Postgresql, которая шла с Денвером. Возникла та же проблема, но после изменения параметра shared_buffers все заработало как часики: память выделялась с избытком, производительность возросла в разы.

Ниже приведу кусок конфиг-файла актуального для моей системы сейчас:

#------------------------------------------------------------------------------
# RESOURCE USAGE (except WAL)
#------------------------------------------------------------------------------

# - Memory -

shared_buffers = 512MB # min 128kB
# (change requires restart)
#temp_buffers = 8MB # min 800kB
#max_prepared_transactions = 0 # zero disables the feature
# (change requires restart)
# Note: Increasing max_prepared_transactions costs ~600 bytes of shared memory
# per transaction slot, plus lock space (see max_locks_per_transaction).
# It is not advisable to set max_prepared_transactions nonzero unless you
# actively intend to use prepared transactions.
#work_mem = 1MB # min 64kB
#maintenance_work_mem = 16MB # min 1MB
#max_stack_depth = 2MB # min 100kB

# - Disk -

#temp_file_limit = -1 # limits per-session temp file space
# in kB, or -1 for no limit

# - Kernel Resource Usage -

#max_files_per_process = 1000 # min 25
# (change requires restart)
#shared_preload_libraries = '' # (change requires restart)

# - Cost-Based Vacuum Delay -

#vacuum_cost_delay = 0ms # 0-100 milliseconds
#vacuum_cost_page_hit = 1 # 0-10000 credits
#vacuum_cost_page_miss = 10 # 0-10000 credits
#vacuum_cost_page_dirty = 20 # 0-10000 credits
#vacuum_cost_limit = 200 # 1-10000 credits

# - Background Writer -

#bgwriter_delay = 200ms # 10-10000ms between rounds
#bgwriter_lru_maxpages = 100 # 0-1000 max buffers written/round
#bgwriter_lru_multiplier = 2.0 # 0-10.0 multipler on buffers scanned/round

# - Asynchronous Behavior -

#effective_io_concurrency = 1 # 1-1000; 0 disables prefetching

Опции просмотра комментариев

Выберите предпочитаемый вами способ показа комментариев и нажмите "Сохранить настройки" для активации изменений.

После изменения

После изменения shared_buffers систему перезапускали?
Логи postgresql читали - может в них что полезное?
Память памятью, а индексы у вас есть к таблицам какие необходимы?

Да, естественно

Да, естественно перезапускали.
Индексы все в порядке.

Логи:
2013-06-14 16:34:08 MSK ОТМЕТКА: система БД была выключена: 2013-06-14 16:32:15 MSK
2013-06-14 16:34:08 MSK ВАЖНО: система баз данных запускается
2013-06-14 16:34:08 MSK ОТМЕТКА: система БД готова принимать подключения
2013-06-14 16:34:08 MSK ОТМЕТКА: процесс запуска автоочистки создан
2013-06-14 16:55:22 MSK ОТМЕТКА: неверная длина стартового пакета
2013-06-14 16:55:39 MSK ОТМЕТКА: неверная длина стартового пакета
2013-06-14 17:04:00 MSK ОТМЕТКА: неверная длина стартового пакета
2013-06-14 17:04:41 MSK ОТМЕТКА: неверная длина стартового пакета
2013-06-14 17:06:17 MSK ОТМЕТКА: неверная длина стартового пакета
2013-06-14 17:10:22 MSK ОТМЕТКА: неверная длина стартового пакета
2013-06-14 17:14:34 MSK ОТМЕТКА: получен запрос на быстрое выключение
2013-06-14 17:14:34 MSK ОТМЕТКА: прерывание всех активных транзакций
2013-06-14 17:14:34 MSK ОТМЕТКА: процесс запуска автоочистки завершается
2013-06-14 17:14:34 MSK ОШИБКА: выполнение оператора отменено по запросу пользователя
2013-06-14 17:14:34 MSK ОШИБКА: выполнение оператора отменено по запросу пользователя
2013-06-14 17:14:34 MSK ОШИБКА: выполнение оператора отменено по запросу пользователя
2013-06-14 17:14:34 MSK ОШИБКА: выполнение оператора отменено по запросу пользователя
2013-06-14 17:14:35 MSK ОТМЕТКА: процесс запуска автоочистки завершается
2013-06-14 17:14:35 MSK ОТМЕТКА: выключение
2013-06-14 17:14:35 MSK ОТМЕТКА: система БД выключена

Опции просмотра комментариев

Выберите предпочитаемый вами способ показа комментариев и нажмите "Сохранить настройки" для активации изменений.

Back to top

(С) Виктор Вислобоков, 2008-2023