Почему pg_dump быстрее после перезагрузки?

#linux #postgresql

#linux #postgresql

Вопрос:

При резервном копировании моей базы данных Postrgres объемом 1,5 ГБ с помощью следующей команды:

pg_dump -U база данных имени пользователя -f MM-DD-YY-backup.sql

Он работает около 10 минут или около того, а затем я получаю сообщение о ожидании записи / прерывании канала (тайм-аут). После повторного входа на сервер я проверяю файлы в каталоге резервных копий, и резервная копия на сегодняшний день имеет меньший размер файла, чем вчерашняя резервная копия.

Становится действительно интересно, когда я перезагружаю сервер, а затем сразу запускаю команду резервного копирования. Резервная копия создается примерно за 30 секунд.

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

С чего мне начать отладку этого?

Использование Ubuntu 16.04.01, Postgres 9.5.4, 16 ГБ памяти на сервере.

Комментарии:

1. Это просто ваша оболочка, которая отключается (из-за бездействия) Попробуйте запустить резервное копирование в фоновом режиме, например pg_dump -U username database -f MM-DD-YY-backup.sql amp; , или nohup pg_dump -U username database -f MM-DD-YY-backup.sql

2. Это может быть одновременная активность. Существуют ли какие-либо сеансы, обновляющие материализованные представления, изменяющие таблицы или другие вещи, которые могут создать более длительную блокировку ДОСТУПА? Активируйте log_lock_waits и посмотрите, регистрируется ли что-нибудь.