powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Скорость восстановления данных со временем заметно замедляется
25 сообщений из 80, страница 1 из 4
Скорость восстановления данных со временем заметно замедляется
    #39189148
Sheriffua
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем доброе время суток. Пробую смигрировать БД с 32 на 64 битную платформу, есть при этом бэкап БД (весит 233 Гб).
С помощью следующего скрипта делаю рестор:
Код: sql
1.
D:/postgresql/bin\pg_restore.exe --host localhost --port 5432 --username "postgres" --dbname "asd_production" --no-password  --jobs 4 --verbose "D:\asd_production 2016-01-29 19-00-41.backup"


при этом на начальном этапе скорость космическая (диск SSD), за час восстановилось порядка 75 Гб, и после этого включаются резкие тормоза, за следующий час скорость восстановления - 3 Гб!! Это катастрофа, куда смотреть, что можно подправить? Конфиг прилагаю.
...
Рейтинг: 0 / 0
Скорость восстановления данных со временем заметно замедляется
    #39189153
Sheriffua
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот такая нагрузка на сервере.
...
Рейтинг: 0 / 0
Скорость восстановления данных со временем заметно замедляется
    #39189171
ursido
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Sheriffua,

Выдержки из приложенного файла:
Код: sql
1.
2.
3.
4.
5.
6.
7.
shared_buffers = 1GB
work_mem = 64MB
maintenance_work_mem = 512MB
fsync = off
effective_cache_size = 12024MB
autovacuum = off
autovacuum_max_workers = 1
...
Рейтинг: 0 / 0
Скорость восстановления данных со временем заметно замедляется
    #39189188
Sheriffua
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ursidoSheriffua,

Выдержки из приложенного файла:
Код: sql
1.
2.
3.
4.
5.
6.
7.
shared_buffers = 1GB
work_mem = 64MB
maintenance_work_mem = 512MB
fsync = off
effective_cache_size = 12024MB
autovacuum = off
autovacuum_max_workers = 1



И что из этого следует?
Код: sql
1.
2.
fsync = off
autovacuum = off


специально отключил взял здесь
...
Рейтинг: 0 / 0
Скорость восстановления данных со временем заметно замедляется
    #39189211
ursido
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SheriffuaИ что из этого следует?


Я заранее согласен с товарищем qwwq.
...
Рейтинг: 0 / 0
Скорость восстановления данных со временем заметно замедляется
    #39189224
qwwq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ursidoSheriffuaИ что из этого следует?


Я заранее согласен с товарищем qwwq.тс же пояснил, что это разовое послабление на момент загрузки. В случае фейла просто всё сносится, кластер заново инициируется и заливается по новой.


а вот на живой базе -- это заход на дарвиновскую -- недавно кого-то максим колол -- обсыпались файлики напрочь при отключённом fsync.


я думаю майнтейнанс_ворк_мем вам бы добавить, например.
думаю, база индексированием могла заняться тут то и просела в "дисковом приращении".
но я ни разу не админ. подождем спецов.
...
Рейтинг: 0 / 0
Скорость восстановления данных со временем заметно замедляется
    #39189236
qwwq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PS посмотрите

Код: sql
1.
SELECT * FROM pg_stat_activity WHERE state<>'idle' order by xact_start 



чем там базёнка в это время занимается
оно и прояснеет.
...
Рейтинг: 0 / 0
Скорость восстановления данных со временем заметно замедляется
    #39189239
Sheriffua
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qwwqursidoпропущено...


Я заранее согласен с товарищем qwwq.тс же пояснил, что это разовое послабление на момент загрузки. В случае фейла просто всё сносится, кластер заново инициируется и заливается по новой.


а вот на живой базе -- это заход на дарвиновскую -- недавно кого-то максим колол -- обсыпались файлики напрочь при отключённом fsync.


я думаю майнтейнанс_ворк_мем вам бы добавить, например.
думаю, база индексированием могла заняться тут то и просела в "дисковом приращении".
но я ни разу не админ. подождем спецов.

Вы правы, это разовое послабление на момент рестора.
Может есть еще доп.рекомендации, т.к. когда рестор того же бэкапа делался, НО на 32 битную платформу, время восстановления было 10 часов, пробовал использовать этот конфиг, чуда не произошло, теже тормоза ((
...
Рейтинг: 0 / 0
Скорость восстановления данных со временем заметно замедляется
    #39189251
Sheriffua
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qwwqPS посмотрите

Код: sql
1.
SELECT * FROM pg_stat_activity WHERE state<>'idle' order by xact_start 



чем там базёнка в это время занимается
оно и прояснеет.

Результат в файле
...
Рейтинг: 0 / 0
Скорость восстановления данных со временем заметно замедляется
    #39189258
Фотография vyegorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sheriffua,

Нужно понять где затык.
А что выдаст такой запрос?Желательно запустить в `psql` с ключём `\x` (для построчного вывода колонок):
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
WITH bgstats AS (
  SELECT checkpoints_timed,
         checkpoints_req,
         checkpoints_timed + checkpoints_req checkpoints,
         checkpoint_sync_time,
         checkpoint_write_time,
         buffers_checkpoint,
         buffers_clean,
         maxwritten_clean,
         buffers_backend,
         buffers_backend_fsync,
         buffers_alloc,
         buffers_checkpoint + buffers_clean + buffers_backend total_buffers,
         pg_postmaster_start_time() startup,
         stats_reset,
         round(extract('epoch' from now() - stats_reset)/60)::numeric min_since_reset,
         --round(extract('epoch' from age(now(), current_date))/60)::numeric min_since_reset,
         delay.setting::numeric bgwriter_delay,
         lru.setting::numeric bgwriter_lru_maxpages,
         ratio.setting::numeric bgwriter_lru_multiplier
    FROM pg_stat_bgwriter
    JOIN pg_settings lru   ON lru.name = 'bgwriter_lru_maxpages'
    JOIN pg_settings delay ON delay.name = 'bgwriter_delay'
    JOIN pg_settings ratio ON ratio.name = 'bgwriter_lru_multiplier'
)
SELECT round(100.0*checkpoints_req/checkpoints,1)                 forced_ratio,
       round(min_since_reset/checkpoints,2)                       min_between,
       round(checkpoint_write_time::numeric/(checkpoints*1000),2) write_time_avg,
       round(checkpoint_sync_time::numeric/(checkpoints*1000),2)  sync_time_avg,
       round(total_buffers/128.0,1)                               mb_total,
       round(buffers_checkpoint/(128.0*checkpoints),2)            mb_per_ckpt,
       round(buffers_checkpoint/(128.0*min_since_reset*60),2)     mbps_ckpt,
       round(buffers_clean/(128.0*min_since_reset*60),2)          mbps_bgw,
       round(buffers_backend/(128.0*min_since_reset*60),2)        mbps_sess,
       round(total_buffers/(128.0*min_since_reset*60),2)          mbps_total,
       round(100.0*buffers_checkpoint/total_buffers,1)            pct_ckpt,
       round(100.0*buffers_clean/total_buffers,1)                 pct_bgw,
       round(100.0*buffers_backend/total_buffers,1)               pct_sess,
       round(100.0*maxwritten_clean/(min_since_reset*60000/bgwriter_delay),2) bgw_halt_only_len,
       round(100.0*maxwritten_clean/(nullif(buffers_clean,0)/bgwriter_lru_maxpages),2)  bgw_halt_ratio,
       round(1.0*buffers_alloc/total_buffers,3)                   new_ratio,
       now()-pg_postmaster_start_time()                           uptime,
       *
  FROM bgstats;



Также надо бы bgwriter поболее выкрутить:namesettingbgwriter_delay100bgwriter_lru_maxpages1000bgwriter_lru_multiplier5
...
Рейтинг: 0 / 0
Скорость восстановления данных со временем заметно замедляется
    #39189269
Sheriffua
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vyegorov,

Код: sql
1.
2.
3.
ERROR:  syntax error at or near ":"
LINE 1: ...ound(extract('epoch' from now() - stats_reset)/60):numeric m...
                                                             ^



у меня версия БД 9.3
...
Рейтинг: 0 / 0
Скорость восстановления данных со временем заметно замедляется
    #39189274
ursido
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Странно.
Тогда почему для разового действия не выкручены другие параметры.
Например, мне кажется, что
max_connections можно выставить в 20
shared_buffers можно выставить в 4 GB (1/4 от имеющейся)
max_prepared_transactions выставить в 0
work_mem можно выставить в 256MB

Что-нибудь подумать над checkpoint_segments / checkpoint_timeout (например выставить в 16 / 1h)
...
Рейтинг: 0 / 0
Скорость восстановления данных со временем заметно замедляется
    #39189284
qwwq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sheriffua,

ну вот -- там чорным по белому написано: делается в один поток

Код: sql
1.
COPY document (document_id, document_db_id, cause_id, cause_db_id, document_status, document_type, document, date, date_in_low, created, changed, deleted, doc_created, doc_changed, doc_blob, judge, judges, doctype_id, doctype_db_id, log_judge_assign) FROM stdin;



осталось выяснить, что такое этот document, созданы к моменту COPY по нему уже индексы да констрайнты или нет. а если созданы -- то сколько их.

в приведенной вами статье есть рекомендация вынести создание логики (констрентов) и тяжёлых индексов вынести в отдельный этап. Но тогда руками надо дамп пилить. а это лениво.
...
Рейтинг: 0 / 0
Скорость восстановления данных со временем заметно замедляется
    #39189289
qwwq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sheriffuavyegorov,

Код: sql
1.
2.
3.
ERROR:  syntax error at or near ":"
LINE 1: ...ound(extract('epoch' from now() - stats_reset)/60):numeric m...
                                                             ^



у меня версия БД 9.3похоже вы левым гуём пользуетесь.
на моей памяти какой--то левый гуй скрадывал повторный :: в кастах.
...
Рейтинг: 0 / 0
Скорость восстановления данных со временем заметно замедляется
    #39189291
Sheriffua
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qwwq,

пока нет не индексов не констрейнтов.
...
Рейтинг: 0 / 0
Скорость восстановления данных со временем заметно замедляется
    #39189301
Sheriffua
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vyegorov,

Результат запароса здесь:

-[ RECORD 1 ]-----------+---------------------------
forced_ratio | 46.4
min_between | 3.03
write_time_avg | 84.45
sync_time_avg | 1.86
mb_total | 629683.5
mb_per_ckpt | 167.62
mbps_ckpt | 0.92
mbps_bgw | 0.09
mbps_sess | 5.30
mbps_total | 6.31
pct_ckpt | 14.6
pct_bgw | 1.4
pct_sess | 84.0
bgw_halt_only_len | 1.54
bgw_halt_ratio | 66.18
new_ratio | 0.211
uptime | 03:32:15.49
checkpoints_timed | 294
checkpoints_req | 254
checkpoints | 548
checkpoint_sync_time | 1018687
checkpoint_write_time | 46277179
buffers_checkpoint | 11757214
buffers_clean | 1163867
maxwritten_clean | 7703
buffers_backend | 67678405
buffers_backend_fsync | 0
buffers_alloc | 16975930
total_buffers | 80599486
startup | 2016-03-10 12:24:58.233+02
stats_reset | 2016-03-09 12:15:07.109+02
min_since_reset | 1662
bgwriter_delay | 200
bgwriter_lru_maxpages | 100
bgwriter_lru_multiplier | 2
...
Рейтинг: 0 / 0
Скорость восстановления данных со временем заметно замедляется
    #39189310
Sheriffua
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qwwq,

похоже что ключ:
Код: sql
1.
--jobs 4


не работает при команде COPY
...
Рейтинг: 0 / 0
Скорость восстановления данных со временем заметно замедляется
    #39189314
Lonepsycho
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sheriffua,

Скорее неработает с некоторыми форматами дампа, н.п. тар. Какой формат дампа у вас?
...
Рейтинг: 0 / 0
Скорость восстановления данных со временем заметно замедляется
    #39189320
Sheriffua
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lonepsycho,

Дамп делался так: pg_dump.exe" --format=custom
...
Рейтинг: 0 / 0
Скорость восстановления данных со временем заметно замедляется
    #39189337
Фотография vyegorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sheriffuaqwwq,

похоже что ключ:
Код: sql
1.
--jobs 4


не работает при команде COPY

Ключ -j работает на уровне таблиц. Если у вас 1 таблица = 90% базы, то рекомендую запастись попкорном, ибо поток будет только один. Чтобы распараллелить таблицы такие, надо руками шаманить.

А в моём запросе вроде всё должно быть хорошо.
...
Рейтинг: 0 / 0
Скорость восстановления данных со временем заметно замедляется
    #39189340
Sheriffua
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sheriffuaqwwq,


А в моём запросе вроде всё должно быть хорошо.

ваш запрос отработался - 18916616
...
Рейтинг: 0 / 0
Скорость восстановления данных со временем заметно замедляется
    #39189370
Фотография vyegorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sheriffua,

Агрессивный bgwriter, checkpoint_completion_target = 0.9, wal_buffers='16MB'.
Можно попробовать ещё shared_buffers уменьшить на время загрузки данных.

Можно ещё так сделать:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
cat <<EOS >> /etc/sysctl.conf
vm.overcommit_memory = 2
vm.swappiness=0
vm.dirty_background_bytes=67108864
vm.dirty_bytes=134217728
EOS
sysctl -p
# Stop using Transparent Huge Pages (THP)
echo never > /sys/kernel/mm/transparent_hugepage/enabled


Но у вас 1 поток всего, так что...
...
Рейтинг: 0 / 0
Скорость восстановления данных со временем заметно замедляется
    #39189372
Фотография vyegorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vyegorov,

Брежу, привык на Linux-е работать.
...
Рейтинг: 0 / 0
Скорость восстановления данных со временем заметно замедляется
    #39189385
Sheriffua
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если с потоковостью бороться не имеет смысла, то какие основные параметры влияют на время обработки данных при ресторе?
Так как в одних рекомендациях нужно увеличивать shared_buffers в других уменьшить.
...
Рейтинг: 0 / 0
Скорость восстановления данных со временем заметно замедляется
    #39189411
Павел Лузанов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SheriffuaЕсли с потоковостью бороться не имеет смысла, то какие основные параметры влияют на время обработки данных при ресторе?
Рекомендации по загрузке данных для 9.3 здесь .

На время работы pg_restore установите:
archive_mode = off
max_wal_senders = 0
wal_level = minimal

Это позволит не писать в WAL работу COPY.
...
Рейтинг: 0 / 0
25 сообщений из 80, страница 1 из 4
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Скорость восстановления данных со временем заметно замедляется
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]