Есть сайт на Джанго, бд соответственно, в день чуть меньше 100 посетителей, хостинг vps у digitalocean (515). Не могу понять по какой причине PostgreSQL так сильно нагружает процессор, причем это происходит как по накоплению чего-то, вот сейчас ребутнул сервер и при заходе на сайт
htop показывает нагрузку 1-3%, до ребута было 40+% за одно обращение. Поскольку сайт раньше падал из-за этого (PostgreSQL не хватало памяти и она отключалась), я внес настройки рекомендованные
pgtune, сайт не падает, но дико виснет.
В логах PostgreSQL видно что не хватает памяти, но куда она девается я не могу понять и из-за чего.
2015-12-09 12:28:40 EST LOG: could not fork autovacuum worker process: Cannot allocate memory
По логам nginx-access не вижу никаких особых нагрузок.
Вероятней всего это из-за моей не опытности, но я даже не могу понять как найти дырку, подскажите, пожалуйста, на что обратить внимание и как найти причину из-за которой возникает такая нагрузка?
htop в тихом состоянии:
htop siege -b -c 1 -r 1000 (аналогичный результат и для других проектов):
Transactions: 1000 hits
Availability: 100.00 %
Elapsed time: 88.91 secs
Data transferred: 5.10 MB
Response time: 0.09 secs
Transaction rate: 11.25 trans/sec
Throughput: 0.06 MB/sec
Concurrency: 1.00
Successful transactions: 1000
Failed transactions: 0
Longest transaction: 0.60
Shortest transaction: 0.06
Конфиг pg дефолтный, за исключением:
max_connections = 100
shared_buffers = 128GB
effective_cache_size = 384GB
work_mem = 1342177kB
maintenance_work_mem = 2GB
checkpoint_segments = 32
checkpoint_completion_target = 0.7
wal_buffers = 16MB
default_statistics_target = 100
Сейчас все работает нормально, когда оно еще раз выстелет я не знаю.