Postgres накапливает дисковый ввод-вывод - PullRequest
0 голосов
/ 23 октября 2018

У меня проблема с postgres, блокирующим мой SSD (256 МБ), так как он накапливается со временем.

В моем приложении есть таблица с caseA - caseB парами, которые я создаю заранее.Используя параллельных рабочих, каждый рабочий со своим собственным соединением запускает запрос на выборку - соединяет несколько других таблиц по своим первичным ключам (занимает около 5 с, включая fetchall()) на основе caseA-caseB pair, которое он получает.

Затем онвыполняет некоторый анализ данных и делает copy_from для двух других таблиц.Смысл в том, что со временем использование диска возрастает и пики отставания составляют 400s, что в конечном итоге приведет к остановке моей системы.

Я не понимаю, почему это происходит и как это предотвратить?Мы говорим всего о 65 млн. Парных кейсов.В одной таблице результатов будет столько же строк, а в другой будет гораздо больше - сотни миллионов записей.

Я пытался поиграться с Semaphor, чтобы контролировать, сколько рабочих может загружать / выгружать, увеличивал work_mem, shared_buffers и т. Д. Но, похоже, проблема только откладывается.

Я реализовал время сна для всех рабочих после нескольких прогонов, но, похоже, это не помогает, поэтому я думаю, что проблема должна быть где-то в postgres.

Большое спасибо за любую помощь.

...