powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Скорость восстановления данных со временем заметно замедляется
80 сообщений из 80, показаны все 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
Скорость восстановления данных со временем заметно замедляется
    #39189828
Sheriffua
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Внес правки в файл конфигурации:

Код: 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.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
196.
197.
198.
199.
200.
201.
202.
203.
204.
205.
206.
207.
208.
209.
210.
211.
212.
213.
214.
215.
216.
217.
218.
219.
220.
221.
222.
223.
224.
225.
226.
227.
228.
229.
230.
231.
232.
233.
234.
235.
236.
237.
238.
239.
240.
241.
242.
243.
244.
245.
246.
247.
248.
249.
250.
251.
252.
253.
254.
255.
256.
257.
258.
259.
260.
261.
262.
263.
264.
265.
266.
267.
268.
269.
270.
271.
272.
273.
274.
275.
276.
277.
278.
279.
280.
281.
282.
283.
284.
285.
286.
287.
288.
289.
290.
291.
292.
293.
294.
295.
296.
297.
298.
299.
300.
301.
302.
303.
304.
305.
306.
307.
308.
309.
310.
311.
312.
313.
314.
315.
316.
317.
318.
319.
320.
321.
322.
323.
324.
325.
326.
327.
328.
329.
330.
331.
332.
333.
334.
335.
336.
337.
338.
339.
340.
341.
342.
343.
344.
345.
346.
347.
348.
349.
350.
351.
352.
353.
354.
355.
356.
357.
358.
359.
360.
361.
362.
363.
364.
365.
366.
367.
368.
369.
370.
371.
372.
373.
374.
375.
376.
377.
378.
379.
380.
381.
382.
383.
384.
385.
386.
387.
388.
389.
390.
391.
392.
393.
394.
395.
396.
397.
398.
399.
400.
401.
402.
403.
404.
405.
406.
407.
408.
409.
410.
411.
412.
413.
414.
415.
416.
417.
418.
419.
420.
421.
422.
423.
424.
425.
426.
427.
428.
429.
430.
431.
432.
433.
434.
435.
436.
437.
438.
439.
440.
441.
442.
443.
444.
445.
446.
447.
448.
449.
450.
451.
452.
453.
454.
455.
456.
457.
458.
459.
460.
461.
462.
463.
464.
465.
466.
467.
468.
469.
470.
471.
472.
473.
474.
475.
476.
477.
478.
479.
480.
481.
482.
483.
484.
485.
486.
487.
488.
489.
490.
491.
492.
493.
494.
495.
496.
497.
498.
499.
500.
501.
502.
503.
504.
505.
506.
507.
508.
509.
510.
511.
512.
513.
514.
515.
516.
517.
518.
519.
520.
521.
522.
523.
524.
525.
526.
527.
528.
529.
530.
531.
532.
533.
534.
535.
536.
537.
538.
539.
540.
541.
542.
543.
544.
545.
546.
547.
548.
549.
550.
551.
552.
553.
554.
555.
556.
557.
558.
559.
560.
561.
562.
563.
564.
565.
566.
567.
568.
569.
570.
571.
572.
573.
574.
575.
576.
577.
# -----------------------------
# PostgreSQL configuration file
# -----------------------------
#
# This file consists of lines of the form:
#
#   name = value
#
# (The "=" is optional.)  Whitespace may be used.  Comments are introduced with
# "#" anywhere on a line.  The complete list of parameter names and allowed
# values can be found in the PostgreSQL documentation.
#
# The commented-out settings shown in this file represent the default values.
# Re-commenting a setting is NOT sufficient to revert it to the default value;
# you need to reload the server.
#
# This file is read on server startup and when the server receives a SIGHUP
# signal.  If you edit the file on a running system, you have to SIGHUP the
# server for the changes to take effect, or use "pg_ctl reload".  Some
# parameters, which are marked below, require a server shutdown and restart to
# take effect.
#
# Any parameter can also be given as a command-line option to the server, e.g.,
# "postgres -c log_connections=on".  Some parameters can be changed at run time
# with the "SET" SQL command.
#
# Memory units:  kB = kilobytes        Time units:  ms  = milliseconds
#                MB = megabytes                     s   = seconds
#                GB = gigabytes                     min = minutes
#                                                   h   = hours
#                                                   d   = days


#------------------------------------------------------------------------------
# FILE LOCATIONS
#------------------------------------------------------------------------------

# The default values of these variables are driven from the -D command-line
# option or PGDATA environment variable, represented here as ConfigDir.

	
#data_directory = 'D:/postgresql/data/'		# use data in another directory
					# (change requires restart)
#hba_file = 'ConfigDir/pg_hba.conf'	# host-based authentication file
					# (change requires restart)
#ident_file = 'ConfigDir/pg_ident.conf'	# ident configuration file
					# (change requires restart)

# If external_pid_file is not explicitly set, no extra PID file is written.
#external_pid_file = ''			# write an extra PID file
					# (change requires restart)


#------------------------------------------------------------------------------
# CONNECTIONS AND AUTHENTICATION
#------------------------------------------------------------------------------

# - Connection Settings -

listen_addresses = '*'	
					# what IP address(es) to listen on;
					# comma-separated list of addresses;
					# defaults to 'localhost'; use '*' for all
					# (change requires restart)
port = 5432				# (change requires restart)
max_connections = 150			# (change requires restart)
# Note:  Increasing max_connections costs ~400 bytes of shared memory per
# connection slot, plus lock space (see max_locks_per_transaction).
#superuser_reserved_connections = 3	# (change requires restart)
#unix_socket_directory = ''		# (change requires restart)
#unix_socket_group = ''			# (change requires restart)
#unix_socket_permissions = 0777		# begin with 0 to use octal notation
					# (change requires restart)
#bonjour = off				# advertise server via Bonjour
					# (change requires restart)
#bonjour_name = ''			# defaults to the computer name
					# (change requires restart)

# - Security and Authentication -

#authentication_timeout = 1min		# 1s-600s
#ssl = off				# (change requires restart)
#ssl_ciphers = 'ALL:!ADH:!LOW:!EXP:!MD5:@STRENGTH'	# allowed SSL ciphers
					# (change requires restart)
#ssl_renegotiation_limit = 512MB	# amount of data between renegotiations
#ssl_cert_file = 'server.crt'		# (change requires restart)
#ssl_key_file = 'server.key'		# (change requires restart)
#ssl_ca_file = ''			# (change requires restart)
#ssl_crl_file = ''			# (change requires restart)
#password_encryption = on
#db_user_namespace = off

# Kerberos and GSSAPI
#krb_server_keyfile = ''
#krb_srvname = 'postgres'		# (Kerberos only)
#krb_caseins_users = off

# - TCP Keepalives -
# see "man 7 tcp" for details

tcp_keepalives_idle = 14400		# TCP_KEEPIDLE, in seconds;
					# 0 selects the system default

tcp_keepalives_interval = 2		# TCP_KEEPINTVL, in seconds;
					# 0 selects the system default
tcp_keepalives_count = 0		# TCP_KEEPCNT;
					# 0 selects the system default


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

# - Memory -

shared_buffers = 4GB			# min 128kB
					# (change requires restart)
temp_buffers = 512MB			# 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 = 256MB				# min 64kB
maintenance_work_mem = 512MB		# 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 = 100ms			# 10-10000ms between rounds
bgwriter_lru_maxpages = 1000		# 0-1000 max buffers written/round
bgwriter_lru_multiplier = 5.0		# 0-10.0 multipler on buffers scanned/round

# - Asynchronous Behavior -

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


#------------------------------------------------------------------------------
# WRITE AHEAD LOG
#------------------------------------------------------------------------------

# - Settings -

wal_level = minimal			# minimal, archive, or hot_standby
					# (change requires restart)
fsync = off				# turns forced synchronization on or off
synchronous_commit = off		# synchronization level;
					# off, local, remote_write, or on
#wal_sync_method = fsync		# the default is the first option
					# supported by the operating system:
					#   open_datasync
					#   fdatasync (default on Linux)
					#   fsync
					#   fsync_writethrough
					#   open_sync
full_page_writes = on			# recover from partial page writes
wal_buffers = 4048			# min 32kB, -1 sets based on shared_buffers
					# (change requires restart)
#wal_writer_delay = 200ms		# 1-10000 milliseconds

commit_delay = 10			# range 0-100000, in microseconds
#commit_siblings = 5			# range 1-1000

# - Checkpoints -

checkpoint_segments = 1024		# in logfile segments, min 1, 16MB each

#checkpoint_timeout = 5min		# range 30s-1h
#checkpoint_completion_target = 0.5	# checkpoint target duration, 0.0 - 1.0
#checkpoint_warning = 30s		# 0 disables

# - Archiving -

#archive_mode = on									# allows archiving to be done
											# (change requires restart)
#archive_command = 'copy "%p" "\\10.10.10.1\Steam_backup\%f"' 		# command to use to archive a logfile segment
											# placeholders: %p = path of file to archive
											#               %f = file name only
											# e.g. 'test ! -f /mnt/server/archivedir/%f && cp %p /mnt/server/archivedir/%f'
#archive_timeout = 0									# force a logfile segment switch after this
											# number of seconds; 0 disables


#------------------------------------------------------------------------------
# REPLICATION
#------------------------------------------------------------------------------

# - Sending Server(s) -

# Set these on the master and on any standby that will send replication data.

max_wal_senders = 0		# max number of walsender processes
				# (change requires restart)
wal_keep_segments = 4000	# in logfile segments, 16MB each; 0 disables
#replication_timeout = 60s	# in milliseconds; 0 disables

# - Master Server -

# These settings are ignored on a standby server.

#synchronous_standby_names = ''	# standby servers that provide sync rep
				# comma-separated list of application_name
				# from standby(s); '*' = all
#vacuum_defer_cleanup_age = 0	# number of xacts by which cleanup is delayed

# - Standby Servers -

# These settings are ignored on a master server.

#hot_standby = off			# "on" allows queries during recovery
					# (change requires restart)
#max_standby_archive_delay = 30s	# max delay before canceling queries
					# when reading WAL from archive;
					# -1 allows indefinite delay
#max_standby_streaming_delay = 30s	# max delay before canceling queries
					# when reading streaming WAL;
					# -1 allows indefinite delay
#wal_receiver_status_interval = 10s	# send replies at least this often
					# 0 disables
#hot_standby_feedback = off		# send info from standby to prevent
					# query conflicts


#------------------------------------------------------------------------------
# QUERY TUNING
#------------------------------------------------------------------------------

# - Planner Method Configuration -

#enable_bitmapscan = on
#enable_hashagg = on
#enable_hashjoin = on
#enable_indexscan = on
#enable_indexonlyscan = on
#enable_material = on
#enable_mergejoin = on
#enable_nestloop = on
#enable_seqscan = on
#enable_sort = on
#enable_tidscan = on

# - Planner Cost Constants -

#seq_page_cost = 1.0			# measured on an arbitrary scale
random_page_cost = 4.0			# same scale as above
#cpu_tuple_cost = 0.01			# same scale as above
#cpu_index_tuple_cost = 0.005		# same scale as above
#cpu_operator_cost = 0.0025		# same scale as above
effective_cache_size = 12024MB

# - Genetic Query Optimizer -

#geqo = on
#geqo_threshold = 12
#geqo_effort = 5			# range 1-10
#geqo_pool_size = 0			# selects default based on effort
#geqo_generations = 0			# selects default based on effort
#geqo_selection_bias = 2.0		# range 1.5-2.0
#geqo_seed = 0.0			# range 0.0-1.0

# - Other Planner Options -

default_statistics_target = 5000        # range 1-10000
#constraint_exclusion = partition	# on, off, or partition
#cursor_tuple_fraction = 0.1		# range 0.0-1.0
#from_collapse_limit = 8
#join_collapse_limit = 8		# 1 disables collapsing of explicit
					# JOIN clauses


#------------------------------------------------------------------------------
# ERROR REPORTING AND LOGGING
#------------------------------------------------------------------------------

# - Where to Log -

log_destination = 'stderr'		# Valid values are combinations of
					# stderr, csvlog, syslog, and eventlog,
					# depending on platform.  csvlog
					# requires logging_collector to be on.

# This is used when logging to stderr:
logging_collector = on		# Enable capturing of stderr and csvlog
					# into log files. Required to be on for
					# csvlogs.
					# (change requires restart)

# These are only used if logging_collector is on:
#log_directory = 'pg_log'		# directory where log files are written,
					# can be absolute or relative to PGDATA
#log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log'	# log file name pattern,
					# can include strftime() escapes
#log_file_mode = 0600			# creation mode for log files,
					# begin with 0 to use octal notation
#log_truncate_on_rotation = off		# If on, an existing log file with the
					# same name as the new log file will be
					# truncated rather than appended to.
					# But such truncation only occurs on
					# time-driven rotation, not on restarts
					# or size-driven rotation.  Default is
					# off, meaning append to existing files
					# in all cases.
#log_rotation_age = 1d			# Automatic rotation of logfiles will
					# happen after that time.  0 disables.
#log_rotation_size = 10MB		# Automatic rotation of logfiles will
					# happen after that much log output.
					# 0 disables.

# These are relevant when logging to syslog:
#syslog_facility = 'LOCAL0'
#syslog_ident = 'postgres'

# This is only relevant when logging to eventlog (win32):
#event_source = 'PostgreSQL'

# - When to Log -

#client_min_messages = notice		# values in order of decreasing detail:
					#   debug5
					#   debug4
					#   debug3
					#   debug2
					#   debug1
					#   log
					#   notice
					#   warning
					#   error

#log_min_messages = warning		# values in order of decreasing detail:
					#   debug5
					#   debug4
					#   debug3
					#   debug2
					#   debug1
					#   info
					#   notice
					#   warning
					#   error
					#   log
					#   fatal
					#   panic

#log_min_error_statement = error	# values in order of decreasing detail:
				 	#   debug5
					#   debug4
					#   debug3
					#   debug2
					#   debug1
				 	#   info
					#   notice
					#   warning
					#   error
					#   log
					#   fatal
					#   panic (effectively off)

#log_min_duration_statement = -1	# -1 is disabled, 0 logs all statements
					# and their durations, > 0 logs only
					# statements running at least this number
					# of milliseconds


# - What to Log -

#debug_print_parse = off
#debug_print_rewritten = off
#debug_print_plan = off
#debug_pretty_print = on
#log_checkpoints = off
#log_connections = off
#log_disconnections = off
#log_duration = off
#log_error_verbosity = default		# terse, default, or verbose messages
#log_hostname = off
log_line_prefix = '%t '			# special values:
					#   %a = application name
					#   %u = user name
					#   %d = database name
					#   %r = remote host and port
					#   %h = remote host
					#   %p = process ID
					#   %t = timestamp without milliseconds
					#   %m = timestamp with milliseconds
					#   %i = command tag
					#   %e = SQL state
					#   %c = session ID
					#   %l = session line number
					#   %s = session start timestamp
					#   %v = virtual transaction ID
					#   %x = transaction ID (0 if none)
					#   %q = stop here in non-session
					#        processes
					#   %% = '%'
					# e.g. '<%u%%%d> '
#log_lock_waits = off			# log lock waits >= deadlock_timeout
#log_statement = 'none'			# none, ddl, mod, all
#log_temp_files = -1			# log temporary files equal or larger
					# than the specified size in kilobytes;
					# -1 disables, 0 logs all temp files
log_timezone = 'Europe/Helsinki'


#------------------------------------------------------------------------------
# RUNTIME STATISTICS
#------------------------------------------------------------------------------

# - Query/Index Statistics Collector -

track_activities = on
track_counts = on
track_io_timing = on
track_functions = all			# none, pl, all
track_activity_query_size = 2048 	# (change requires restart)
update_process_title = on
stats_temp_directory = 'pg_stat_tmp'


# - Statistics Monitoring -

#log_parser_stats = off
#log_planner_stats = off
#log_executor_stats = off
#log_statement_stats = off


#------------------------------------------------------------------------------
# AUTOVACUUM PARAMETERS
#------------------------------------------------------------------------------

autovacuum = off 			# Enable autovacuum subprocess?  'on'
					# requires track_counts to also be on.
#log_autovacuum_min_duration = -1	# -1 disables, 0 logs all actions and
					# their durations, > 0 logs only
					# actions running at least this number
					# of milliseconds.
autovacuum_max_workers = 1		# max number of autovacuum subprocesses
					# (change requires restart)
autovacuum_naptime = 1min		# time between autovacuum runs
#autovacuum_vacuum_threshold = 5000	# min number of row updates before
					# vacuum
#autovacuum_analyze_threshold = 2500	# min number of row updates before
					# analyze
#autovacuum_vacuum_scale_factor = 0.2	# fraction of table size before vacuum
#autovacuum_analyze_scale_factor = 0.1	# fraction of table size before analyze
#autovacuum_freeze_max_age = 200000000	# maximum XID age before forced vacuum
					# (change requires restart)
#autovacuum_vacuum_cost_delay = 20ms	# default vacuum cost delay for
					# autovacuum, in milliseconds;
					# -1 means use vacuum_cost_delay
#autovacuum_vacuum_cost_limit = -1	# default vacuum cost limit for
					# autovacuum, -1 means use
					# vacuum_cost_limit


#------------------------------------------------------------------------------
# CLIENT CONNECTION DEFAULTS
#------------------------------------------------------------------------------

# - Statement Behavior -

#search_path = '"$user",public'		# schema names
#default_tablespace = ''		# a tablespace name, '' uses the default
#temp_tablespaces = ''			# a list of tablespace names, '' uses
					# only default tablespace
#check_function_bodies = on
#default_transaction_isolation = 'read committed'
#default_transaction_read_only = off
#default_transaction_deferrable = off
#session_replication_role = 'origin'
statement_timeout = 0			# in milliseconds, 0 is disabled
#vacuum_freeze_min_age = 50000000
#vacuum_freeze_table_age = 150000000
#bytea_output = 'hex'			# hex, escape
#xmlbinary = 'base64'
#xmloption = 'content'

# - Locale and Formatting -

datestyle = 'iso, dmy'
#intervalstyle = 'postgres'
timezone = 'Europe/Helsinki'
#timezone_abbreviations = 'Default'     # Select the set of available time zone
					# abbreviations.  Currently, there are
					#   Default
					#   Australia
					#   India
					# You can create your own file in
					# share/timezonesets/.
#extra_float_digits = 0			# min -15, max 3
#client_encoding = sql_ascii		# actually, defaults to database
					# encoding

# These settings are initialized by initdb, but they can be changed.
lc_messages = 'Ukrainian_Ukraine.1251'			# locale for system error message
					# strings
lc_monetary = 'Ukrainian_Ukraine.1251'			# locale for monetary formatting
lc_numeric = 'Ukrainian_Ukraine.1251'			# locale for number formatting
lc_time = 'Ukrainian_Ukraine.1251'				# locale for time formatting

# default configuration for text search
default_text_search_config = 'pg_catalog.simple'

# - Other Defaults -

#dynamic_library_path = '$libdir'
#local_preload_libraries = ''


#------------------------------------------------------------------------------
# LOCK MANAGEMENT
#------------------------------------------------------------------------------

#deadlock_timeout = 1s
#max_locks_per_transaction = 64		# min 10
					# (change requires restart)
# Note:  Each lock table slot uses ~270 bytes of shared memory, and there are
# max_locks_per_transaction * (max_connections + max_prepared_transactions)
# lock table slots.
#max_pred_locks_per_transaction = 64	# min 10
					# (change requires restart)


#------------------------------------------------------------------------------
# VERSION/PLATFORM COMPATIBILITY
#------------------------------------------------------------------------------

# - Previous PostgreSQL Versions -

#array_nulls = on
#backslash_quote = safe_encoding	# on, off, or safe_encoding
#default_with_oids = off
#escape_string_warning = on
#lo_compat_privileges = off
#quote_all_identifiers = off
#sql_inheritance = on
#standard_conforming_strings = on
#synchronize_seqscans = on

# - Other Platforms and Clients -

#transform_null_equals = off


#------------------------------------------------------------------------------
# ERROR HANDLING
#------------------------------------------------------------------------------

#exit_on_error = off			# terminate session on any error?
#restart_after_crash = on		# reinitialize after backend crash?


#------------------------------------------------------------------------------
# CUSTOMIZED OPTIONS
#------------------------------------------------------------------------------

# Add settings for extensions here




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

А что за SSD ?

У меня такое чувство, что мой SSD (бытовой) пишет "пакетами". Пара Гбайт быстро, потом система зависает, потом опять работает. Сейчас приходится обрабатывать по 3-5 Gb мелких файлов, проблема с SSD на лицо (((

Возможно проблема не в PostgreSQL, а в железе?
...
Рейтинг: 0 / 0
Скорость восстановления данных со временем заметно замедляется
    #39189893
Sheriffua
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это виртуалка, которая крутиться на SSD.
Я уже писал выше, что тот же бэкап использовался и для восстановления на 32 битную платформу (время восстановления было=10 часам).
Решили смигрировать на 64 битную платформу и здесь такие тормоза.
...
Рейтинг: 0 / 0
Скорость восстановления данных со временем заметно замедляется
    #39190044
Lonepsycho
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sheriffua,

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

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

Код: 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.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
196.
197.
198.
199.
200.
201.
202.
203.
204.
205.
206.
207.
208.
209.
210.
211.
212.
213.
214.
215.
216.
217.
218.
219.
220.
221.
222.
223.
224.
225.
226.
227.
228.
229.
230.
231.
232.
233.
234.
235.
236.
237.
238.
239.
240.
241.
242.
243.
244.
245.
246.
247.
248.
249.
250.
251.
252.
253.
254.
255.
256.
257.
258.
259.
260.
261.
262.
263.
264.
265.
266.
267.
268.
269.
270.
271.
272.
273.
274.
275.
276.
277.
278.
279.
280.
281.
282.
283.
284.
285.
286.
287.
288.
289.
290.
291.
292.
293.
294.
295.
296.
297.
298.
299.
300.
301.
302.
303.
304.
305.
306.
307.
308.
309.
310.
311.
312.
313.
314.
315.
316.
317.
318.
319.
320.
321.
322.
323.
324.
325.
326.
327.
328.
329.
330.
331.
332.
333.
334.
335.
336.
337.
338.
339.
340.
341.
342.
343.
344.
345.
346.
347.
348.
349.
350.
351.
352.
353.
354.
355.
356.
357.
358.
359.
360.
361.
362.
363.
364.
365.
366.
367.
368.
369.
370.
371.
372.
373.
374.
375.
376.
377.
378.
379.
380.
381.
382.
383.
384.
385.
386.
387.
388.
389.
390.
391.
392.
393.
394.
395.
396.
397.
398.
399.
400.
401.
402.
403.
404.
405.
406.
407.
408.
409.
410.
411.
412.
413.
414.
415.
416.
417.
418.
419.
420.
421.
422.
423.
424.
425.
426.
427.
428.
429.
430.
431.
432.
433.
434.
435.
436.
437.
438.
439.
440.
441.
442.
443.
444.
445.
446.
447.
448.
449.
450.
451.
452.
453.
454.
455.
456.
457.
458.
459.
460.
461.
462.
463.
464.
465.
466.
467.
468.
469.
470.
471.
472.
473.
474.
475.
476.
477.
478.
479.
480.
481.
482.
483.
484.
485.
486.
487.
488.
489.
490.
491.
492.
493.
494.
495.
496.
497.
498.
499.
500.
501.
502.
503.
504.
505.
506.
507.
508.
509.
510.
511.
512.
513.
514.
515.
516.
517.
518.
519.
520.
521.
522.
523.
524.
525.
526.
527.
528.
529.
530.
531.
532.
533.
534.
535.
536.
537.
538.
539.
540.
541.
542.
543.
544.
545.
546.
547.
548.
549.
550.
551.
552.
553.
554.
555.
556.
557.
558.
559.
560.
561.
562.
563.
564.
565.
566.
567.
568.
569.
570.
571.
572.
573.
574.
575.
576.
577.
# -----------------------------
# PostgreSQL configuration file
# -----------------------------
#
# This file consists of lines of the form:
#
#   name = value
#
# (The "=" is optional.)  Whitespace may be used.  Comments are introduced with
# "#" anywhere on a line.  The complete list of parameter names and allowed
# values can be found in the PostgreSQL documentation.
#
# The commented-out settings shown in this file represent the default values.
# Re-commenting a setting is NOT sufficient to revert it to the default value;
# you need to reload the server.
#
# This file is read on server startup and when the server receives a SIGHUP
# signal.  If you edit the file on a running system, you have to SIGHUP the
# server for the changes to take effect, or use "pg_ctl reload".  Some
# parameters, which are marked below, require a server shutdown and restart to
# take effect.
#
# Any parameter can also be given as a command-line option to the server, e.g.,
# "postgres -c log_connections=on".  Some parameters can be changed at run time
# with the "SET" SQL command.
#
# Memory units:  kB = kilobytes        Time units:  ms  = milliseconds
#                MB = megabytes                     s   = seconds
#                GB = gigabytes                     min = minutes
#                                                   h   = hours
#                                                   d   = days


#------------------------------------------------------------------------------
# FILE LOCATIONS
#------------------------------------------------------------------------------

# The default values of these variables are driven from the -D command-line
# option or PGDATA environment variable, represented here as ConfigDir.

	
#data_directory = 'D:/postgresql/data/'		# use data in another directory
					# (change requires restart)
#hba_file = 'ConfigDir/pg_hba.conf'	# host-based authentication file
					# (change requires restart)
#ident_file = 'ConfigDir/pg_ident.conf'	# ident configuration file
					# (change requires restart)

# If external_pid_file is not explicitly set, no extra PID file is written.
#external_pid_file = ''			# write an extra PID file
					# (change requires restart)


#------------------------------------------------------------------------------
# CONNECTIONS AND AUTHENTICATION
#------------------------------------------------------------------------------

# - Connection Settings -

listen_addresses = '*'	
					# what IP address(es) to listen on;
					# comma-separated list of addresses;
					# defaults to 'localhost'; use '*' for all
					# (change requires restart)
port = 5432				# (change requires restart)
max_connections = 150			# (change requires restart)
# Note:  Increasing max_connections costs ~400 bytes of shared memory per
# connection slot, plus lock space (see max_locks_per_transaction).
#superuser_reserved_connections = 3	# (change requires restart)
#unix_socket_directory = ''		# (change requires restart)
#unix_socket_group = ''			# (change requires restart)
#unix_socket_permissions = 0777		# begin with 0 to use octal notation
					# (change requires restart)
#bonjour = off				# advertise server via Bonjour
					# (change requires restart)
#bonjour_name = ''			# defaults to the computer name
					# (change requires restart)

# - Security and Authentication -

#authentication_timeout = 1min		# 1s-600s
#ssl = off				# (change requires restart)
#ssl_ciphers = 'ALL:!ADH:!LOW:!EXP:!MD5:@STRENGTH'	# allowed SSL ciphers
					# (change requires restart)
#ssl_renegotiation_limit = 512MB	# amount of data between renegotiations
#ssl_cert_file = 'server.crt'		# (change requires restart)
#ssl_key_file = 'server.key'		# (change requires restart)
#ssl_ca_file = ''			# (change requires restart)
#ssl_crl_file = ''			# (change requires restart)
#password_encryption = on
#db_user_namespace = off

# Kerberos and GSSAPI
#krb_server_keyfile = ''
#krb_srvname = 'postgres'		# (Kerberos only)
#krb_caseins_users = off

# - TCP Keepalives -
# see "man 7 tcp" for details

tcp_keepalives_idle = 14400		# TCP_KEEPIDLE, in seconds;
					# 0 selects the system default

tcp_keepalives_interval = 2		# TCP_KEEPINTVL, in seconds;
					# 0 selects the system default
tcp_keepalives_count = 0		# TCP_KEEPCNT;
					# 0 selects the system default


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

# - Memory -

shared_buffers = 4GB			# min 128kB
					# (change requires restart)
temp_buffers = 512MB			# 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 = 256MB				# min 64kB
maintenance_work_mem = 512MB		# 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 = 100ms			# 10-10000ms between rounds
bgwriter_lru_maxpages = 1000		# 0-1000 max buffers written/round
bgwriter_lru_multiplier = 5.0		# 0-10.0 multipler on buffers scanned/round

# - Asynchronous Behavior -

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


#------------------------------------------------------------------------------
# WRITE AHEAD LOG
#------------------------------------------------------------------------------

# - Settings -

wal_level = minimal			# minimal, archive, or hot_standby
					# (change requires restart)
fsync = off				# turns forced synchronization on or off
synchronous_commit = off		# synchronization level;
					# off, local, remote_write, or on
#wal_sync_method = fsync		# the default is the first option
					# supported by the operating system:
					#   open_datasync
					#   fdatasync (default on Linux)
					#   fsync
					#   fsync_writethrough
					#   open_sync
full_page_writes = on			# recover from partial page writes
wal_buffers = 4048			# min 32kB, -1 sets based on shared_buffers
					# (change requires restart)
#wal_writer_delay = 200ms		# 1-10000 milliseconds

commit_delay = 10			# range 0-100000, in microseconds
#commit_siblings = 5			# range 1-1000

# - Checkpoints -

checkpoint_segments = 1024		# in logfile segments, min 1, 16MB each

#checkpoint_timeout = 5min		# range 30s-1h
#checkpoint_completion_target = 0.5	# checkpoint target duration, 0.0 - 1.0
#checkpoint_warning = 30s		# 0 disables

# - Archiving -

#archive_mode = on									# allows archiving to be done
											# (change requires restart)
#archive_command = 'copy "%p" "\\10.10.10.1\Steam_backup\%f"' 		# command to use to archive a logfile segment
											# placeholders: %p = path of file to archive
											#               %f = file name only
											# e.g. 'test ! -f /mnt/server/archivedir/%f && cp %p /mnt/server/archivedir/%f'
#archive_timeout = 0									# force a logfile segment switch after this
											# number of seconds; 0 disables


#------------------------------------------------------------------------------
# REPLICATION
#------------------------------------------------------------------------------

# - Sending Server(s) -

# Set these on the master and on any standby that will send replication data.

max_wal_senders = 0		# max number of walsender processes
				# (change requires restart)
wal_keep_segments = 4000	# in logfile segments, 16MB each; 0 disables
#replication_timeout = 60s	# in milliseconds; 0 disables

# - Master Server -

# These settings are ignored on a standby server.

#synchronous_standby_names = ''	# standby servers that provide sync rep
				# comma-separated list of application_name
				# from standby(s); '*' = all
#vacuum_defer_cleanup_age = 0	# number of xacts by which cleanup is delayed

# - Standby Servers -

# These settings are ignored on a master server.

#hot_standby = off			# "on" allows queries during recovery
					# (change requires restart)
#max_standby_archive_delay = 30s	# max delay before canceling queries
					# when reading WAL from archive;
					# -1 allows indefinite delay
#max_standby_streaming_delay = 30s	# max delay before canceling queries
					# when reading streaming WAL;
					# -1 allows indefinite delay
#wal_receiver_status_interval = 10s	# send replies at least this often
					# 0 disables
#hot_standby_feedback = off		# send info from standby to prevent
					# query conflicts


#------------------------------------------------------------------------------
# QUERY TUNING
#------------------------------------------------------------------------------

# - Planner Method Configuration -

#enable_bitmapscan = on
#enable_hashagg = on
#enable_hashjoin = on
#enable_indexscan = on
#enable_indexonlyscan = on
#enable_material = on
#enable_mergejoin = on
#enable_nestloop = on
#enable_seqscan = on
#enable_sort = on
#enable_tidscan = on

# - Planner Cost Constants -

#seq_page_cost = 1.0			# measured on an arbitrary scale
random_page_cost = 4.0			# same scale as above
#cpu_tuple_cost = 0.01			# same scale as above
#cpu_index_tuple_cost = 0.005		# same scale as above
#cpu_operator_cost = 0.0025		# same scale as above
effective_cache_size = 12024MB

# - Genetic Query Optimizer -

#geqo = on
#geqo_threshold = 12
#geqo_effort = 5			# range 1-10
#geqo_pool_size = 0			# selects default based on effort
#geqo_generations = 0			# selects default based on effort
#geqo_selection_bias = 2.0		# range 1.5-2.0
#geqo_seed = 0.0			# range 0.0-1.0

# - Other Planner Options -

default_statistics_target = 5000        # range 1-10000
#constraint_exclusion = partition	# on, off, or partition
#cursor_tuple_fraction = 0.1		# range 0.0-1.0
#from_collapse_limit = 8
#join_collapse_limit = 8		# 1 disables collapsing of explicit
					# JOIN clauses


#------------------------------------------------------------------------------
# ERROR REPORTING AND LOGGING
#------------------------------------------------------------------------------

# - Where to Log -

log_destination = 'stderr'		# Valid values are combinations of
					# stderr, csvlog, syslog, and eventlog,
					# depending on platform.  csvlog
					# requires logging_collector to be on.

# This is used when logging to stderr:
logging_collector = on		# Enable capturing of stderr and csvlog
					# into log files. Required to be on for
					# csvlogs.
					# (change requires restart)

# These are only used if logging_collector is on:
#log_directory = 'pg_log'		# directory where log files are written,
					# can be absolute or relative to PGDATA
#log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log'	# log file name pattern,
					# can include strftime() escapes
#log_file_mode = 0600			# creation mode for log files,
					# begin with 0 to use octal notation
#log_truncate_on_rotation = off		# If on, an existing log file with the
					# same name as the new log file will be
					# truncated rather than appended to.
					# But such truncation only occurs on
					# time-driven rotation, not on restarts
					# or size-driven rotation.  Default is
					# off, meaning append to existing files
					# in all cases.
#log_rotation_age = 1d			# Automatic rotation of logfiles will
					# happen after that time.  0 disables.
#log_rotation_size = 10MB		# Automatic rotation of logfiles will
					# happen after that much log output.
					# 0 disables.

# These are relevant when logging to syslog:
#syslog_facility = 'LOCAL0'
#syslog_ident = 'postgres'

# This is only relevant when logging to eventlog (win32):
#event_source = 'PostgreSQL'

# - When to Log -

#client_min_messages = notice		# values in order of decreasing detail:
					#   debug5
					#   debug4
					#   debug3
					#   debug2
					#   debug1
					#   log
					#   notice
					#   warning
					#   error

#log_min_messages = warning		# values in order of decreasing detail:
					#   debug5
					#   debug4
					#   debug3
					#   debug2
					#   debug1
					#   info
					#   notice
					#   warning
					#   error
					#   log
					#   fatal
					#   panic

#log_min_error_statement = error	# values in order of decreasing detail:
				 	#   debug5
					#   debug4
					#   debug3
					#   debug2
					#   debug1
				 	#   info
					#   notice
					#   warning
					#   error
					#   log
					#   fatal
					#   panic (effectively off)

#log_min_duration_statement = -1	# -1 is disabled, 0 logs all statements
					# and their durations, > 0 logs only
					# statements running at least this number
					# of milliseconds


# - What to Log -

#debug_print_parse = off
#debug_print_rewritten = off
#debug_print_plan = off
#debug_pretty_print = on
#log_checkpoints = off
#log_connections = off
#log_disconnections = off
#log_duration = off
#log_error_verbosity = default		# terse, default, or verbose messages
#log_hostname = off
log_line_prefix = '%t '			# special values:
					#   %a = application name
					#   %u = user name
					#   %d = database name
					#   %r = remote host and port
					#   %h = remote host
					#   %p = process ID
					#   %t = timestamp without milliseconds
					#   %m = timestamp with milliseconds
					#   %i = command tag
					#   %e = SQL state
					#   %c = session ID
					#   %l = session line number
					#   %s = session start timestamp
					#   %v = virtual transaction ID
					#   %x = transaction ID (0 if none)
					#   %q = stop here in non-session
					#        processes
					#   %% = '%'
					# e.g. '<%u%%%d> '
#log_lock_waits = off			# log lock waits >= deadlock_timeout
#log_statement = 'none'			# none, ddl, mod, all
#log_temp_files = -1			# log temporary files equal or larger
					# than the specified size in kilobytes;
					# -1 disables, 0 logs all temp files
log_timezone = 'Europe/Helsinki'


#------------------------------------------------------------------------------
# RUNTIME STATISTICS
#------------------------------------------------------------------------------

# - Query/Index Statistics Collector -

track_activities = on
track_counts = on
track_io_timing = on
track_functions = all			# none, pl, all
track_activity_query_size = 2048 	# (change requires restart)
update_process_title = on
stats_temp_directory = 'pg_stat_tmp'


# - Statistics Monitoring -

#log_parser_stats = off
#log_planner_stats = off
#log_executor_stats = off
#log_statement_stats = off


#------------------------------------------------------------------------------
# AUTOVACUUM PARAMETERS
#------------------------------------------------------------------------------

autovacuum = off 			# Enable autovacuum subprocess?  'on'
					# requires track_counts to also be on.
#log_autovacuum_min_duration = -1	# -1 disables, 0 logs all actions and
					# their durations, > 0 logs only
					# actions running at least this number
					# of milliseconds.
autovacuum_max_workers = 1		# max number of autovacuum subprocesses
					# (change requires restart)
autovacuum_naptime = 1min		# time between autovacuum runs
#autovacuum_vacuum_threshold = 5000	# min number of row updates before
					# vacuum
#autovacuum_analyze_threshold = 2500	# min number of row updates before
					# analyze
#autovacuum_vacuum_scale_factor = 0.2	# fraction of table size before vacuum
#autovacuum_analyze_scale_factor = 0.1	# fraction of table size before analyze
#autovacuum_freeze_max_age = 200000000	# maximum XID age before forced vacuum
					# (change requires restart)
#autovacuum_vacuum_cost_delay = 20ms	# default vacuum cost delay for
					# autovacuum, in milliseconds;
					# -1 means use vacuum_cost_delay
#autovacuum_vacuum_cost_limit = -1	# default vacuum cost limit for
					# autovacuum, -1 means use
					# vacuum_cost_limit


#------------------------------------------------------------------------------
# CLIENT CONNECTION DEFAULTS
#------------------------------------------------------------------------------

# - Statement Behavior -

#search_path = '"$user",public'		# schema names
#default_tablespace = ''		# a tablespace name, '' uses the default
#temp_tablespaces = ''			# a list of tablespace names, '' uses
					# only default tablespace
#check_function_bodies = on
#default_transaction_isolation = 'read committed'
#default_transaction_read_only = off
#default_transaction_deferrable = off
#session_replication_role = 'origin'
statement_timeout = 0			# in milliseconds, 0 is disabled
#vacuum_freeze_min_age = 50000000
#vacuum_freeze_table_age = 150000000
#bytea_output = 'hex'			# hex, escape
#xmlbinary = 'base64'
#xmloption = 'content'

# - Locale and Formatting -

datestyle = 'iso, dmy'
#intervalstyle = 'postgres'
timezone = 'Europe/Helsinki'
#timezone_abbreviations = 'Default'     # Select the set of available time zone
					# abbreviations.  Currently, there are
					#   Default
					#   Australia
					#   India
					# You can create your own file in
					# share/timezonesets/.
#extra_float_digits = 0			# min -15, max 3
#client_encoding = sql_ascii		# actually, defaults to database
					# encoding

# These settings are initialized by initdb, but they can be changed.
lc_messages = 'Ukrainian_Ukraine.1251'			# locale for system error message
					# strings
lc_monetary = 'Ukrainian_Ukraine.1251'			# locale for monetary formatting
lc_numeric = 'Ukrainian_Ukraine.1251'			# locale for number formatting
lc_time = 'Ukrainian_Ukraine.1251'				# locale for time formatting

# default configuration for text search
default_text_search_config = 'pg_catalog.simple'

# - Other Defaults -

#dynamic_library_path = '$libdir'
#local_preload_libraries = ''


#------------------------------------------------------------------------------
# LOCK MANAGEMENT
#------------------------------------------------------------------------------

#deadlock_timeout = 1s
#max_locks_per_transaction = 64		# min 10
					# (change requires restart)
# Note:  Each lock table slot uses ~270 bytes of shared memory, and there are
# max_locks_per_transaction * (max_connections + max_prepared_transactions)
# lock table slots.
#max_pred_locks_per_transaction = 64	# min 10
					# (change requires restart)


#------------------------------------------------------------------------------
# VERSION/PLATFORM COMPATIBILITY
#------------------------------------------------------------------------------

# - Previous PostgreSQL Versions -

#array_nulls = on
#backslash_quote = safe_encoding	# on, off, or safe_encoding
#default_with_oids = off
#escape_string_warning = on
#lo_compat_privileges = off
#quote_all_identifiers = off
#sql_inheritance = on
#standard_conforming_strings = on
#synchronize_seqscans = on

# - Other Platforms and Clients -

#transform_null_equals = off


#------------------------------------------------------------------------------
# ERROR HANDLING
#------------------------------------------------------------------------------

#exit_on_error = off			# terminate session on any error?
#restart_after_crash = on		# reinitialize after backend crash?


#------------------------------------------------------------------------------
# CUSTOMIZED OPTIONS
#------------------------------------------------------------------------------

# Add settings for extensions here




существенно ничего не поменялось ((
Повторные запуски в чистую БД делаете?
...
Рейтинг: 0 / 0
Скорость восстановления данных со временем заметно замедляется
    #39190201
Sheriffua
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Павел ЛузановSheriffuaВнес правки в файл конфигурации:

Код: 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.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
196.
197.
198.
199.
200.
201.
202.
203.
204.
205.
206.
207.
208.
209.
210.
211.
212.
213.
214.
215.
216.
217.
218.
219.
220.
221.
222.
223.
224.
225.
226.
227.
228.
229.
230.
231.
232.
233.
234.
235.
236.
237.
238.
239.
240.
241.
242.
243.
244.
245.
246.
247.
248.
249.
250.
251.
252.
253.
254.
255.
256.
257.
258.
259.
260.
261.
262.
263.
264.
265.
266.
267.
268.
269.
270.
271.
272.
273.
274.
275.
276.
277.
278.
279.
280.
281.
282.
283.
284.
285.
286.
287.
288.
289.
290.
291.
292.
293.
294.
295.
296.
297.
298.
299.
300.
301.
302.
303.
304.
305.
306.
307.
308.
309.
310.
311.
312.
313.
314.
315.
316.
317.
318.
319.
320.
321.
322.
323.
324.
325.
326.
327.
328.
329.
330.
331.
332.
333.
334.
335.
336.
337.
338.
339.
340.
341.
342.
343.
344.
345.
346.
347.
348.
349.
350.
351.
352.
353.
354.
355.
356.
357.
358.
359.
360.
361.
362.
363.
364.
365.
366.
367.
368.
369.
370.
371.
372.
373.
374.
375.
376.
377.
378.
379.
380.
381.
382.
383.
384.
385.
386.
387.
388.
389.
390.
391.
392.
393.
394.
395.
396.
397.
398.
399.
400.
401.
402.
403.
404.
405.
406.
407.
408.
409.
410.
411.
412.
413.
414.
415.
416.
417.
418.
419.
420.
421.
422.
423.
424.
425.
426.
427.
428.
429.
430.
431.
432.
433.
434.
435.
436.
437.
438.
439.
440.
441.
442.
443.
444.
445.
446.
447.
448.
449.
450.
451.
452.
453.
454.
455.
456.
457.
458.
459.
460.
461.
462.
463.
464.
465.
466.
467.
468.
469.
470.
471.
472.
473.
474.
475.
476.
477.
478.
479.
480.
481.
482.
483.
484.
485.
486.
487.
488.
489.
490.
491.
492.
493.
494.
495.
496.
497.
498.
499.
500.
501.
502.
503.
504.
505.
506.
507.
508.
509.
510.
511.
512.
513.
514.
515.
516.
517.
518.
519.
520.
521.
522.
523.
524.
525.
526.
527.
528.
529.
530.
531.
532.
533.
534.
535.
536.
537.
538.
539.
540.
541.
542.
543.
544.
545.
546.
547.
548.
549.
550.
551.
552.
553.
554.
555.
556.
557.
558.
559.
560.
561.
562.
563.
564.
565.
566.
567.
568.
569.
570.
571.
572.
573.
574.
575.
576.
577.
# -----------------------------
# PostgreSQL configuration file
# -----------------------------
#
# This file consists of lines of the form:
#
#   name = value
#
# (The "=" is optional.)  Whitespace may be used.  Comments are introduced with
# "#" anywhere on a line.  The complete list of parameter names and allowed
# values can be found in the PostgreSQL documentation.
#
# The commented-out settings shown in this file represent the default values.
# Re-commenting a setting is NOT sufficient to revert it to the default value;
# you need to reload the server.
#
# This file is read on server startup and when the server receives a SIGHUP
# signal.  If you edit the file on a running system, you have to SIGHUP the
# server for the changes to take effect, or use "pg_ctl reload".  Some
# parameters, which are marked below, require a server shutdown and restart to
# take effect.
#
# Any parameter can also be given as a command-line option to the server, e.g.,
# "postgres -c log_connections=on".  Some parameters can be changed at run time
# with the "SET" SQL command.
#
# Memory units:  kB = kilobytes        Time units:  ms  = milliseconds
#                MB = megabytes                     s   = seconds
#                GB = gigabytes                     min = minutes
#                                                   h   = hours
#                                                   d   = days


#------------------------------------------------------------------------------
# FILE LOCATIONS
#------------------------------------------------------------------------------

# The default values of these variables are driven from the -D command-line
# option or PGDATA environment variable, represented here as ConfigDir.

	
#data_directory = 'D:/postgresql/data/'		# use data in another directory
					# (change requires restart)
#hba_file = 'ConfigDir/pg_hba.conf'	# host-based authentication file
					# (change requires restart)
#ident_file = 'ConfigDir/pg_ident.conf'	# ident configuration file
					# (change requires restart)

# If external_pid_file is not explicitly set, no extra PID file is written.
#external_pid_file = ''			# write an extra PID file
					# (change requires restart)


#------------------------------------------------------------------------------
# CONNECTIONS AND AUTHENTICATION
#------------------------------------------------------------------------------

# - Connection Settings -

listen_addresses = '*'	
					# what IP address(es) to listen on;
					# comma-separated list of addresses;
					# defaults to 'localhost'; use '*' for all
					# (change requires restart)
port = 5432				# (change requires restart)
max_connections = 150			# (change requires restart)
# Note:  Increasing max_connections costs ~400 bytes of shared memory per
# connection slot, plus lock space (see max_locks_per_transaction).
#superuser_reserved_connections = 3	# (change requires restart)
#unix_socket_directory = ''		# (change requires restart)
#unix_socket_group = ''			# (change requires restart)
#unix_socket_permissions = 0777		# begin with 0 to use octal notation
					# (change requires restart)
#bonjour = off				# advertise server via Bonjour
					# (change requires restart)
#bonjour_name = ''			# defaults to the computer name
					# (change requires restart)

# - Security and Authentication -

#authentication_timeout = 1min		# 1s-600s
#ssl = off				# (change requires restart)
#ssl_ciphers = 'ALL:!ADH:!LOW:!EXP:!MD5:@STRENGTH'	# allowed SSL ciphers
					# (change requires restart)
#ssl_renegotiation_limit = 512MB	# amount of data between renegotiations
#ssl_cert_file = 'server.crt'		# (change requires restart)
#ssl_key_file = 'server.key'		# (change requires restart)
#ssl_ca_file = ''			# (change requires restart)
#ssl_crl_file = ''			# (change requires restart)
#password_encryption = on
#db_user_namespace = off

# Kerberos and GSSAPI
#krb_server_keyfile = ''
#krb_srvname = 'postgres'		# (Kerberos only)
#krb_caseins_users = off

# - TCP Keepalives -
# see "man 7 tcp" for details

tcp_keepalives_idle = 14400		# TCP_KEEPIDLE, in seconds;
					# 0 selects the system default

tcp_keepalives_interval = 2		# TCP_KEEPINTVL, in seconds;
					# 0 selects the system default
tcp_keepalives_count = 0		# TCP_KEEPCNT;
					# 0 selects the system default


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

# - Memory -

shared_buffers = 4GB			# min 128kB
					# (change requires restart)
temp_buffers = 512MB			# 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 = 256MB				# min 64kB
maintenance_work_mem = 512MB		# 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 = 100ms			# 10-10000ms between rounds
bgwriter_lru_maxpages = 1000		# 0-1000 max buffers written/round
bgwriter_lru_multiplier = 5.0		# 0-10.0 multipler on buffers scanned/round

# - Asynchronous Behavior -

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


#------------------------------------------------------------------------------
# WRITE AHEAD LOG
#------------------------------------------------------------------------------

# - Settings -

wal_level = minimal			# minimal, archive, or hot_standby
					# (change requires restart)
fsync = off				# turns forced synchronization on or off
synchronous_commit = off		# synchronization level;
					# off, local, remote_write, or on
#wal_sync_method = fsync		# the default is the first option
					# supported by the operating system:
					#   open_datasync
					#   fdatasync (default on Linux)
					#   fsync
					#   fsync_writethrough
					#   open_sync
full_page_writes = on			# recover from partial page writes
wal_buffers = 4048			# min 32kB, -1 sets based on shared_buffers
					# (change requires restart)
#wal_writer_delay = 200ms		# 1-10000 milliseconds

commit_delay = 10			# range 0-100000, in microseconds
#commit_siblings = 5			# range 1-1000

# - Checkpoints -

checkpoint_segments = 1024		# in logfile segments, min 1, 16MB each

#checkpoint_timeout = 5min		# range 30s-1h
#checkpoint_completion_target = 0.5	# checkpoint target duration, 0.0 - 1.0
#checkpoint_warning = 30s		# 0 disables

# - Archiving -

#archive_mode = on									# allows archiving to be done
											# (change requires restart)
#archive_command = 'copy "%p" "\\10.10.10.1\Steam_backup\%f"' 		# command to use to archive a logfile segment
											# placeholders: %p = path of file to archive
											#               %f = file name only
											# e.g. 'test ! -f /mnt/server/archivedir/%f && cp %p /mnt/server/archivedir/%f'
#archive_timeout = 0									# force a logfile segment switch after this
											# number of seconds; 0 disables


#------------------------------------------------------------------------------
# REPLICATION
#------------------------------------------------------------------------------

# - Sending Server(s) -

# Set these on the master and on any standby that will send replication data.

max_wal_senders = 0		# max number of walsender processes
				# (change requires restart)
wal_keep_segments = 4000	# in logfile segments, 16MB each; 0 disables
#replication_timeout = 60s	# in milliseconds; 0 disables

# - Master Server -

# These settings are ignored on a standby server.

#synchronous_standby_names = ''	# standby servers that provide sync rep
				# comma-separated list of application_name
				# from standby(s); '*' = all
#vacuum_defer_cleanup_age = 0	# number of xacts by which cleanup is delayed

# - Standby Servers -

# These settings are ignored on a master server.

#hot_standby = off			# "on" allows queries during recovery
					# (change requires restart)
#max_standby_archive_delay = 30s	# max delay before canceling queries
					# when reading WAL from archive;
					# -1 allows indefinite delay
#max_standby_streaming_delay = 30s	# max delay before canceling queries
					# when reading streaming WAL;
					# -1 allows indefinite delay
#wal_receiver_status_interval = 10s	# send replies at least this often
					# 0 disables
#hot_standby_feedback = off		# send info from standby to prevent
					# query conflicts


#------------------------------------------------------------------------------
# QUERY TUNING
#------------------------------------------------------------------------------

# - Planner Method Configuration -

#enable_bitmapscan = on
#enable_hashagg = on
#enable_hashjoin = on
#enable_indexscan = on
#enable_indexonlyscan = on
#enable_material = on
#enable_mergejoin = on
#enable_nestloop = on
#enable_seqscan = on
#enable_sort = on
#enable_tidscan = on

# - Planner Cost Constants -

#seq_page_cost = 1.0			# measured on an arbitrary scale
random_page_cost = 4.0			# same scale as above
#cpu_tuple_cost = 0.01			# same scale as above
#cpu_index_tuple_cost = 0.005		# same scale as above
#cpu_operator_cost = 0.0025		# same scale as above
effective_cache_size = 12024MB

# - Genetic Query Optimizer -

#geqo = on
#geqo_threshold = 12
#geqo_effort = 5			# range 1-10
#geqo_pool_size = 0			# selects default based on effort
#geqo_generations = 0			# selects default based on effort
#geqo_selection_bias = 2.0		# range 1.5-2.0
#geqo_seed = 0.0			# range 0.0-1.0

# - Other Planner Options -

default_statistics_target = 5000        # range 1-10000
#constraint_exclusion = partition	# on, off, or partition
#cursor_tuple_fraction = 0.1		# range 0.0-1.0
#from_collapse_limit = 8
#join_collapse_limit = 8		# 1 disables collapsing of explicit
					# JOIN clauses


#------------------------------------------------------------------------------
# ERROR REPORTING AND LOGGING
#------------------------------------------------------------------------------

# - Where to Log -

log_destination = 'stderr'		# Valid values are combinations of
					# stderr, csvlog, syslog, and eventlog,
					# depending on platform.  csvlog
					# requires logging_collector to be on.

# This is used when logging to stderr:
logging_collector = on		# Enable capturing of stderr and csvlog
					# into log files. Required to be on for
					# csvlogs.
					# (change requires restart)

# These are only used if logging_collector is on:
#log_directory = 'pg_log'		# directory where log files are written,
					# can be absolute or relative to PGDATA
#log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log'	# log file name pattern,
					# can include strftime() escapes
#log_file_mode = 0600			# creation mode for log files,
					# begin with 0 to use octal notation
#log_truncate_on_rotation = off		# If on, an existing log file with the
					# same name as the new log file will be
					# truncated rather than appended to.
					# But such truncation only occurs on
					# time-driven rotation, not on restarts
					# or size-driven rotation.  Default is
					# off, meaning append to existing files
					# in all cases.
#log_rotation_age = 1d			# Automatic rotation of logfiles will
					# happen after that time.  0 disables.
#log_rotation_size = 10MB		# Automatic rotation of logfiles will
					# happen after that much log output.
					# 0 disables.

# These are relevant when logging to syslog:
#syslog_facility = 'LOCAL0'
#syslog_ident = 'postgres'

# This is only relevant when logging to eventlog (win32):
#event_source = 'PostgreSQL'

# - When to Log -

#client_min_messages = notice		# values in order of decreasing detail:
					#   debug5
					#   debug4
					#   debug3
					#   debug2
					#   debug1
					#   log
					#   notice
					#   warning
					#   error

#log_min_messages = warning		# values in order of decreasing detail:
					#   debug5
					#   debug4
					#   debug3
					#   debug2
					#   debug1
					#   info
					#   notice
					#   warning
					#   error
					#   log
					#   fatal
					#   panic

#log_min_error_statement = error	# values in order of decreasing detail:
				 	#   debug5
					#   debug4
					#   debug3
					#   debug2
					#   debug1
				 	#   info
					#   notice
					#   warning
					#   error
					#   log
					#   fatal
					#   panic (effectively off)

#log_min_duration_statement = -1	# -1 is disabled, 0 logs all statements
					# and their durations, > 0 logs only
					# statements running at least this number
					# of milliseconds


# - What to Log -

#debug_print_parse = off
#debug_print_rewritten = off
#debug_print_plan = off
#debug_pretty_print = on
#log_checkpoints = off
#log_connections = off
#log_disconnections = off
#log_duration = off
#log_error_verbosity = default		# terse, default, or verbose messages
#log_hostname = off
log_line_prefix = '%t '			# special values:
					#   %a = application name
					#   %u = user name
					#   %d = database name
					#   %r = remote host and port
					#   %h = remote host
					#   %p = process ID
					#   %t = timestamp without milliseconds
					#   %m = timestamp with milliseconds
					#   %i = command tag
					#   %e = SQL state
					#   %c = session ID
					#   %l = session line number
					#   %s = session start timestamp
					#   %v = virtual transaction ID
					#   %x = transaction ID (0 if none)
					#   %q = stop here in non-session
					#        processes
					#   %% = '%'
					# e.g. '<%u%%%d> '
#log_lock_waits = off			# log lock waits >= deadlock_timeout
#log_statement = 'none'			# none, ddl, mod, all
#log_temp_files = -1			# log temporary files equal or larger
					# than the specified size in kilobytes;
					# -1 disables, 0 logs all temp files
log_timezone = 'Europe/Helsinki'


#------------------------------------------------------------------------------
# RUNTIME STATISTICS
#------------------------------------------------------------------------------

# - Query/Index Statistics Collector -

track_activities = on
track_counts = on
track_io_timing = on
track_functions = all			# none, pl, all
track_activity_query_size = 2048 	# (change requires restart)
update_process_title = on
stats_temp_directory = 'pg_stat_tmp'


# - Statistics Monitoring -

#log_parser_stats = off
#log_planner_stats = off
#log_executor_stats = off
#log_statement_stats = off


#------------------------------------------------------------------------------
# AUTOVACUUM PARAMETERS
#------------------------------------------------------------------------------

autovacuum = off 			# Enable autovacuum subprocess?  'on'
					# requires track_counts to also be on.
#log_autovacuum_min_duration = -1	# -1 disables, 0 logs all actions and
					# their durations, > 0 logs only
					# actions running at least this number
					# of milliseconds.
autovacuum_max_workers = 1		# max number of autovacuum subprocesses
					# (change requires restart)
autovacuum_naptime = 1min		# time between autovacuum runs
#autovacuum_vacuum_threshold = 5000	# min number of row updates before
					# vacuum
#autovacuum_analyze_threshold = 2500	# min number of row updates before
					# analyze
#autovacuum_vacuum_scale_factor = 0.2	# fraction of table size before vacuum
#autovacuum_analyze_scale_factor = 0.1	# fraction of table size before analyze
#autovacuum_freeze_max_age = 200000000	# maximum XID age before forced vacuum
					# (change requires restart)
#autovacuum_vacuum_cost_delay = 20ms	# default vacuum cost delay for
					# autovacuum, in milliseconds;
					# -1 means use vacuum_cost_delay
#autovacuum_vacuum_cost_limit = -1	# default vacuum cost limit for
					# autovacuum, -1 means use
					# vacuum_cost_limit


#------------------------------------------------------------------------------
# CLIENT CONNECTION DEFAULTS
#------------------------------------------------------------------------------

# - Statement Behavior -

#search_path = '"$user",public'		# schema names
#default_tablespace = ''		# a tablespace name, '' uses the default
#temp_tablespaces = ''			# a list of tablespace names, '' uses
					# only default tablespace
#check_function_bodies = on
#default_transaction_isolation = 'read committed'
#default_transaction_read_only = off
#default_transaction_deferrable = off
#session_replication_role = 'origin'
statement_timeout = 0			# in milliseconds, 0 is disabled
#vacuum_freeze_min_age = 50000000
#vacuum_freeze_table_age = 150000000
#bytea_output = 'hex'			# hex, escape
#xmlbinary = 'base64'
#xmloption = 'content'

# - Locale and Formatting -

datestyle = 'iso, dmy'
#intervalstyle = 'postgres'
timezone = 'Europe/Helsinki'
#timezone_abbreviations = 'Default'     # Select the set of available time zone
					# abbreviations.  Currently, there are
					#   Default
					#   Australia
					#   India
					# You can create your own file in
					# share/timezonesets/.
#extra_float_digits = 0			# min -15, max 3
#client_encoding = sql_ascii		# actually, defaults to database
					# encoding

# These settings are initialized by initdb, but they can be changed.
lc_messages = 'Ukrainian_Ukraine.1251'			# locale for system error message
					# strings
lc_monetary = 'Ukrainian_Ukraine.1251'			# locale for monetary formatting
lc_numeric = 'Ukrainian_Ukraine.1251'			# locale for number formatting
lc_time = 'Ukrainian_Ukraine.1251'				# locale for time formatting

# default configuration for text search
default_text_search_config = 'pg_catalog.simple'

# - Other Defaults -

#dynamic_library_path = '$libdir'
#local_preload_libraries = ''


#------------------------------------------------------------------------------
# LOCK MANAGEMENT
#------------------------------------------------------------------------------

#deadlock_timeout = 1s
#max_locks_per_transaction = 64		# min 10
					# (change requires restart)
# Note:  Each lock table slot uses ~270 bytes of shared memory, and there are
# max_locks_per_transaction * (max_connections + max_prepared_transactions)
# lock table slots.
#max_pred_locks_per_transaction = 64	# min 10
					# (change requires restart)


#------------------------------------------------------------------------------
# VERSION/PLATFORM COMPATIBILITY
#------------------------------------------------------------------------------

# - Previous PostgreSQL Versions -

#array_nulls = on
#backslash_quote = safe_encoding	# on, off, or safe_encoding
#default_with_oids = off
#escape_string_warning = on
#lo_compat_privileges = off
#quote_all_identifiers = off
#sql_inheritance = on
#standard_conforming_strings = on
#synchronize_seqscans = on

# - Other Platforms and Clients -

#transform_null_equals = off


#------------------------------------------------------------------------------
# ERROR HANDLING
#------------------------------------------------------------------------------

#exit_on_error = off			# terminate session on any error?
#restart_after_crash = on		# reinitialize after backend crash?


#------------------------------------------------------------------------------
# CUSTOMIZED OPTIONS
#------------------------------------------------------------------------------

# Add settings for extensions here




существенно ничего не поменялось ((
Повторные запуски в чистую БД делаете?

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

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

Код: 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.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
196.
197.
198.
199.
200.
201.
202.
203.
204.
205.
206.
207.
208.
209.
210.
211.
212.
213.
214.
215.
216.
217.
218.
219.
220.
221.
222.
223.
224.
225.
226.
227.
228.
229.
230.
231.
232.
233.
234.
235.
236.
237.
238.
239.
240.
241.
242.
243.
244.
245.
246.
247.
248.
249.
250.
251.
252.
253.
254.
255.
256.
257.
258.
259.
260.
261.
262.
263.
264.
265.
266.
267.
268.
269.
270.
271.
272.
273.
274.
275.
276.
277.
278.
279.
280.
281.
282.
283.
284.
285.
286.
287.
288.
289.
290.
291.
292.
293.
294.
295.
296.
297.
298.
299.
300.
301.
302.
303.
304.
305.
306.
307.
308.
309.
310.
311.
312.
313.
314.
315.
316.
317.
318.
319.
320.
321.
322.
323.
324.
325.
326.
327.
328.
329.
330.
331.
332.
333.
334.
335.
336.
337.
338.
339.
340.
341.
342.
343.
344.
345.
346.
347.
348.
349.
350.
351.
352.
353.
354.
355.
356.
357.
358.
359.
360.
361.
362.
363.
364.
365.
366.
367.
368.
369.
370.
371.
372.
373.
374.
375.
376.
377.
378.
379.
380.
381.
382.
383.
384.
385.
386.
387.
388.
389.
390.
391.
392.
393.
394.
395.
396.
397.
398.
399.
400.
401.
402.
403.
404.
405.
406.
407.
408.
409.
410.
411.
412.
413.
414.
415.
416.
417.
418.
419.
420.
421.
422.
423.
424.
425.
426.
427.
428.
429.
430.
431.
432.
433.
434.
435.
436.
437.
438.
439.
440.
441.
442.
443.
444.
445.
446.
447.
448.
449.
450.
451.
452.
453.
454.
455.
456.
457.
458.
459.
460.
461.
462.
463.
464.
465.
466.
467.
468.
469.
470.
471.
472.
473.
474.
475.
476.
477.
478.
479.
480.
481.
482.
483.
484.
485.
486.
487.
488.
489.
490.
491.
492.
493.
494.
495.
496.
497.
498.
499.
500.
501.
502.
503.
504.
505.
506.
507.
508.
509.
510.
511.
512.
513.
514.
515.
516.
517.
518.
519.
520.
521.
522.
523.
524.
525.
526.
527.
528.
529.
530.
531.
532.
533.
534.
535.
536.
537.
538.
539.
540.
541.
542.
543.
544.
545.
546.
547.
548.
549.
550.
551.
552.
553.
554.
555.
556.
557.
558.
559.
560.
561.
562.
563.
564.
565.
566.
567.
568.
569.
570.
571.
572.
573.
# -----------------------------
# PostgreSQL configuration file
# -----------------------------
#
# This file consists of lines of the form:
#
#   name = value
#
# (The "=" is optional.)  Whitespace may be used.  Comments are introduced with
# "#" anywhere on a line.  The complete list of parameter names and allowed
# values can be found in the PostgreSQL documentation.
#
# The commented-out settings shown in this file represent the default values.
# Re-commenting a setting is NOT sufficient to revert it to the default value;
# you need to reload the server.
#
# This file is read on server startup and when the server receives a SIGHUP
# signal.  If you edit the file on a running system, you have to SIGHUP the
# server for the changes to take effect, or use "pg_ctl reload".  Some
# parameters, which are marked below, require a server shutdown and restart to
# take effect.
#
# Any parameter can also be given as a command-line option to the server, e.g.,
# "postgres -c log_connections=on".  Some parameters can be changed at run time
# with the "SET" SQL command.
#
# Memory units:  kB = kilobytes        Time units:  ms  = milliseconds
#                MB = megabytes                     s   = seconds
#                GB = gigabytes                     min = minutes
#                                                   h   = hours
#                                                   d   = days


#------------------------------------------------------------------------------
# FILE LOCATIONS
#------------------------------------------------------------------------------

# The default values of these variables are driven from the -D command-line
# option or PGDATA environment variable, represented here as ConfigDir.

#data_directory = 'ConfigDir'		# use data in another directory
					# (change requires restart)
#hba_file = 'ConfigDir/pg_hba.conf'	# host-based authentication file
					# (change requires restart)
#ident_file = 'ConfigDir/pg_ident.conf'	# ident configuration file
					# (change requires restart)

# If external_pid_file is not explicitly set, no extra PID file is written.
#external_pid_file = ''			# write an extra PID file
					# (change requires restart)


#------------------------------------------------------------------------------
# CONNECTIONS AND AUTHENTICATION
#------------------------------------------------------------------------------

# - Connection Settings -

listen_addresses = '*'		# what IP address(es) to listen on;
					# comma-separated list of addresses;
					# defaults to 'localhost'; use '*' for all
					# (change requires restart)
port = 5432				# (change requires restart)
max_connections = 100			# (change requires restart)
# Note:  Increasing max_connections costs ~400 bytes of shared memory per
# connection slot, plus lock space (see max_locks_per_transaction).
#superuser_reserved_connections = 3	# (change requires restart)
#unix_socket_directory = ''		# (change requires restart)
#unix_socket_group = ''			# (change requires restart)
#unix_socket_permissions = 0777		# begin with 0 to use octal notation
					# (change requires restart)
#bonjour = off				# advertise server via Bonjour
					# (change requires restart)
#bonjour_name = ''			# defaults to the computer name
					# (change requires restart)

# - Security and Authentication -

#authentication_timeout = 1min		# 1s-600s
#ssl = off				# (change requires restart)
#ssl_ciphers = 'ALL:!ADH:!LOW:!EXP:!MD5:@STRENGTH'	# allowed SSL ciphers
					# (change requires restart)
#ssl_renegotiation_limit = 512MB	# amount of data between renegotiations
#ssl_cert_file = 'server.crt'		# (change requires restart)
#ssl_key_file = 'server.key'		# (change requires restart)
#ssl_ca_file = ''			# (change requires restart)
#ssl_crl_file = ''			# (change requires restart)
#password_encryption = on
#db_user_namespace = off

# Kerberos and GSSAPI
#krb_server_keyfile = ''
#krb_srvname = 'postgres'		# (Kerberos only)
#krb_caseins_users = off

# - TCP Keepalives -
# see "man 7 tcp" for details

#tcp_keepalives_idle = 0		# TCP_KEEPIDLE, in seconds;
					# 0 selects the system default
#tcp_keepalives_interval = 0		# TCP_KEEPINTVL, in seconds;
					# 0 selects the system default
#tcp_keepalives_count = 0		# TCP_KEEPCNT;
					# 0 selects the system default


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

# - Memory -

shared_buffers = 4GB			# min 128kB
					# (change requires restart)
temp_buffers = 128MB			# 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 = 256MB				# min 64kB
maintenance_work_mem = 512MB		# 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


#------------------------------------------------------------------------------
# WRITE AHEAD LOG
#------------------------------------------------------------------------------

# - Settings -

#wal_level = minimal			# minimal, archive, or hot_standby
					# (change requires restart)
#fsync = on				# turns forced synchronization on or off
#synchronous_commit = on		# synchronization level;
					# off, local, remote_write, or on
#wal_sync_method = fsync		# the default is the first option
					# supported by the operating system:
					#   open_datasync
					#   fdatasync (default on Linux)
					#   fsync
					#   fsync_writethrough
					#   open_sync
#full_page_writes = on			# recover from partial page writes
#wal_buffers = -1			# min 32kB, -1 sets based on shared_buffers
					# (change requires restart)
#wal_writer_delay = 200ms		# 1-10000 milliseconds

#commit_delay = 0			# range 0-100000, in microseconds
#commit_siblings = 5			# range 1-1000

# - Checkpoints -

checkpoint_segments = 32		# in logfile segments, min 1, 16MB each
#checkpoint_timeout = 5min		# range 30s-1h
#checkpoint_completion_target = 0.5	# checkpoint target duration, 0.0 - 1.0
#checkpoint_warning = 30s		# 0 disables

# - Archiving -

#archive_mode = off		# allows archiving to be done
				# (change requires restart)
#archive_command = ''		# command to use to archive a logfile segment
				# placeholders: %p = path of file to archive
				#               %f = file name only
				# e.g. 'test ! -f /mnt/server/archivedir/%f && cp %p /mnt/server/archivedir/%f'
#archive_timeout = 0		# force a logfile segment switch after this
				# number of seconds; 0 disables


#------------------------------------------------------------------------------
# REPLICATION
#------------------------------------------------------------------------------

# - Sending Server(s) -

# Set these on the master and on any standby that will send replication data.

#max_wal_senders = 0		# max number of walsender processes
				# (change requires restart)
#wal_keep_segments = 0		# in logfile segments, 16MB each; 0 disables
#replication_timeout = 60s	# in milliseconds; 0 disables

# - Master Server -

# These settings are ignored on a standby server.

#synchronous_standby_names = ''	# standby servers that provide sync rep
				# comma-separated list of application_name
				# from standby(s); '*' = all
#vacuum_defer_cleanup_age = 0	# number of xacts by which cleanup is delayed

# - Standby Servers -

# These settings are ignored on a master server.

#hot_standby = off			# "on" allows queries during recovery
					# (change requires restart)
#max_standby_archive_delay = 30s	# max delay before canceling queries
					# when reading WAL from archive;
					# -1 allows indefinite delay
#max_standby_streaming_delay = 30s	# max delay before canceling queries
					# when reading streaming WAL;
					# -1 allows indefinite delay
#wal_receiver_status_interval = 10s	# send replies at least this often
					# 0 disables
#hot_standby_feedback = off		# send info from standby to prevent
					# query conflicts


#------------------------------------------------------------------------------
# QUERY TUNING
#------------------------------------------------------------------------------

# - Planner Method Configuration -

#enable_bitmapscan = on
#enable_hashagg = on
#enable_hashjoin = on
#enable_indexscan = on
#enable_indexonlyscan = on
#enable_material = on
#enable_mergejoin = on
#enable_nestloop = on
#enable_seqscan = on
#enable_sort = on
#enable_tidscan = on

# - Planner Cost Constants -

#seq_page_cost = 1.0			# measured on an arbitrary scale
#random_page_cost = 4.0			# same scale as above
#cpu_tuple_cost = 0.01			# same scale as above
#cpu_index_tuple_cost = 0.005		# same scale as above
#cpu_operator_cost = 0.0025		# same scale as above
#effective_cache_size = 128MB

# - Genetic Query Optimizer -

#geqo = on
#geqo_threshold = 12
#geqo_effort = 5			# range 1-10
#geqo_pool_size = 0			# selects default based on effort
#geqo_generations = 0			# selects default based on effort
#geqo_selection_bias = 2.0		# range 1.5-2.0
#geqo_seed = 0.0			# range 0.0-1.0

# - Other Planner Options -

#default_statistics_target = 100	# range 1-10000
#constraint_exclusion = partition	# on, off, or partition
#cursor_tuple_fraction = 0.1		# range 0.0-1.0
#from_collapse_limit = 8
#join_collapse_limit = 8		# 1 disables collapsing of explicit
					# JOIN clauses


#------------------------------------------------------------------------------
# ERROR REPORTING AND LOGGING
#------------------------------------------------------------------------------

# - Where to Log -

log_destination = 'stderr'		# Valid values are combinations of
					# stderr, csvlog, syslog, and eventlog,
					# depending on platform.  csvlog
					# requires logging_collector to be on.

# This is used when logging to stderr:
logging_collector = on		# Enable capturing of stderr and csvlog
					# into log files. Required to be on for
					# csvlogs.
					# (change requires restart)

# These are only used if logging_collector is on:
#log_directory = 'pg_log'		# directory where log files are written,
					# can be absolute or relative to PGDATA
#log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log'	# log file name pattern,
					# can include strftime() escapes
#log_file_mode = 0600			# creation mode for log files,
					# begin with 0 to use octal notation
#log_truncate_on_rotation = off		# If on, an existing log file with the
					# same name as the new log file will be
					# truncated rather than appended to.
					# But such truncation only occurs on
					# time-driven rotation, not on restarts
					# or size-driven rotation.  Default is
					# off, meaning append to existing files
					# in all cases.
#log_rotation_age = 1d			# Automatic rotation of logfiles will
					# happen after that time.  0 disables.
#log_rotation_size = 10MB		# Automatic rotation of logfiles will
					# happen after that much log output.
					# 0 disables.

# These are relevant when logging to syslog:
#syslog_facility = 'LOCAL0'
#syslog_ident = 'postgres'

# This is only relevant when logging to eventlog (win32):
#event_source = 'PostgreSQL'

# - When to Log -

#client_min_messages = notice		# values in order of decreasing detail:
					#   debug5
					#   debug4
					#   debug3
					#   debug2
					#   debug1
					#   log
					#   notice
					#   warning
					#   error

#log_min_messages = warning		# values in order of decreasing detail:
					#   debug5
					#   debug4
					#   debug3
					#   debug2
					#   debug1
					#   info
					#   notice
					#   warning
					#   error
					#   log
					#   fatal
					#   panic

#log_min_error_statement = error	# values in order of decreasing detail:
				 	#   debug5
					#   debug4
					#   debug3
					#   debug2
					#   debug1
				 	#   info
					#   notice
					#   warning
					#   error
					#   log
					#   fatal
					#   panic (effectively off)

#log_min_duration_statement = -1	# -1 is disabled, 0 logs all statements
					# and their durations, > 0 logs only
					# statements running at least this number
					# of milliseconds


# - What to Log -

#debug_print_parse = off
#debug_print_rewritten = off
#debug_print_plan = off
#debug_pretty_print = on
#log_checkpoints = off
#log_connections = off
#log_disconnections = off
#log_duration = off
#log_error_verbosity = default		# terse, default, or verbose messages
#log_hostname = off
log_line_prefix = '%t '			# special values:
					#   %a = application name
					#   %u = user name
					#   %d = database name
					#   %r = remote host and port
					#   %h = remote host
					#   %p = process ID
					#   %t = timestamp without milliseconds
					#   %m = timestamp with milliseconds
					#   %i = command tag
					#   %e = SQL state
					#   %c = session ID
					#   %l = session line number
					#   %s = session start timestamp
					#   %v = virtual transaction ID
					#   %x = transaction ID (0 if none)
					#   %q = stop here in non-session
					#        processes
					#   %% = '%'
					# e.g. '<%u%%%d> '
#log_lock_waits = off			# log lock waits >= deadlock_timeout
#log_statement = 'none'			# none, ddl, mod, all
#log_temp_files = -1			# log temporary files equal or larger
					# than the specified size in kilobytes;
					# -1 disables, 0 logs all temp files
log_timezone = 'Europe/Moscow'


#------------------------------------------------------------------------------
# RUNTIME STATISTICS
#------------------------------------------------------------------------------

# - Query/Index Statistics Collector -

#track_activities = on
#track_counts = on
#track_io_timing = off
#track_functions = none			# none, pl, all
#track_activity_query_size = 1024 	# (change requires restart)
#update_process_title = on
#stats_temp_directory = 'pg_stat_tmp'


# - Statistics Monitoring -

#log_parser_stats = off
#log_planner_stats = off
#log_executor_stats = off
#log_statement_stats = off


#------------------------------------------------------------------------------
# AUTOVACUUM PARAMETERS
#------------------------------------------------------------------------------

#autovacuum = on			# Enable autovacuum subprocess?  'on'
					# requires track_counts to also be on.
#log_autovacuum_min_duration = -1	# -1 disables, 0 logs all actions and
					# their durations, > 0 logs only
					# actions running at least this number
					# of milliseconds.
#autovacuum_max_workers = 3		# max number of autovacuum subprocesses
					# (change requires restart)
#autovacuum_naptime = 1min		# time between autovacuum runs
#autovacuum_vacuum_threshold = 50	# min number of row updates before
					# vacuum
#autovacuum_analyze_threshold = 50	# min number of row updates before
					# analyze
#autovacuum_vacuum_scale_factor = 0.2	# fraction of table size before vacuum
#autovacuum_analyze_scale_factor = 0.1	# fraction of table size before analyze
#autovacuum_freeze_max_age = 200000000	# maximum XID age before forced vacuum
					# (change requires restart)
#autovacuum_vacuum_cost_delay = 20ms	# default vacuum cost delay for
					# autovacuum, in milliseconds;
					# -1 means use vacuum_cost_delay
#autovacuum_vacuum_cost_limit = -1	# default vacuum cost limit for
					# autovacuum, -1 means use
					# vacuum_cost_limit


#------------------------------------------------------------------------------
# CLIENT CONNECTION DEFAULTS
#------------------------------------------------------------------------------

# - Statement Behavior -

#search_path = '"$user",public'		# schema names
#default_tablespace = ''		# a tablespace name, '' uses the default
#temp_tablespaces = ''			# a list of tablespace names, '' uses
					# only default tablespace
#check_function_bodies = on
#default_transaction_isolation = 'read committed'
#default_transaction_read_only = off
#default_transaction_deferrable = off
#session_replication_role = 'origin'
#statement_timeout = 0			# in milliseconds, 0 is disabled
#vacuum_freeze_min_age = 50000000
#vacuum_freeze_table_age = 150000000
#bytea_output = 'hex'			# hex, escape
#xmlbinary = 'base64'
#xmloption = 'content'

# - Locale and Formatting -

datestyle = 'iso, dmy'
#intervalstyle = 'postgres'
timezone = 'Europe/Moscow'
#timezone_abbreviations = 'Default'     # Select the set of available time zone
					# abbreviations.  Currently, there are
					#   Default
					#   Australia
					#   India
					# You can create your own file in
					# share/timezonesets/.
#extra_float_digits = 0			# min -15, max 3
#client_encoding = sql_ascii		# actually, defaults to database
					# encoding

# These settings are initialized by initdb, but they can be changed.
lc_messages = 'Russian_Russia.1251'			# locale for system error message
					# strings
lc_monetary = 'Russian_Russia.1251'			# locale for monetary formatting
lc_numeric = 'Russian_Russia.1251'			# locale for number formatting
lc_time = 'Russian_Russia.1251'				# locale for time formatting

# default configuration for text search
default_text_search_config = 'pg_catalog.russian'

# - Other Defaults -

#dynamic_library_path = '$libdir'
#local_preload_libraries = ''


#------------------------------------------------------------------------------
# LOCK MANAGEMENT
#------------------------------------------------------------------------------

#deadlock_timeout = 1s
#max_locks_per_transaction = 64		# min 10
					# (change requires restart)
# Note:  Each lock table slot uses ~270 bytes of shared memory, and there are
# max_locks_per_transaction * (max_connections + max_prepared_transactions)
# lock table slots.
#max_pred_locks_per_transaction = 64	# min 10
					# (change requires restart)


#------------------------------------------------------------------------------
# VERSION/PLATFORM COMPATIBILITY
#------------------------------------------------------------------------------

# - Previous PostgreSQL Versions -

#array_nulls = on
#backslash_quote = safe_encoding	# on, off, or safe_encoding
#default_with_oids = off
#escape_string_warning = on
#lo_compat_privileges = off
#quote_all_identifiers = off
#sql_inheritance = on
#standard_conforming_strings = on
#synchronize_seqscans = on

# - Other Platforms and Clients -

#transform_null_equals = off


#------------------------------------------------------------------------------
# ERROR HANDLING
#------------------------------------------------------------------------------

#exit_on_error = off			# terminate session on any error?
#restart_after_crash = on		# reinitialize after backend crash?


#------------------------------------------------------------------------------
# CUSTOMIZED OPTIONS
#------------------------------------------------------------------------------

# Add settings for extensions here



по нему идет восстановление БД, согласно выборке:
Код: sql
1.
SELECT * FROM pg_stat_activity WHERE state<>'idle' order by xact_start;


сейчас происходит:
Код: 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;


восстановилось порядка 20Гб для этой таблицы в течении 1 часа, и после этого падает резко производительнось до 1-3 Гб в час (((

Вопрос - с чем это может быть связано??!
Так как любые конфигурации файла postgresql.conf приводит к одному и тому же результату. Что можно еще сделать? Можно ли провести восстановление конкретной таблицы, а потом все остальное?
Буду рад любым подсказакам.
...
Рейтинг: 0 / 0
Скорость восстановления данных со временем заметно замедляется
    #39192081
Sheriffua
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот что показывает монитор ресурсов:
...
Рейтинг: 0 / 0
Скорость восстановления данных со временем заметно замедляется
    #39192096
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как-то мне кажется, что нагрузка на диск 9 Mb/s - это как то ни о чем.

Команда COPY, может грузить две вещи:
1) "процессор" - например заливка данных
2) "диск" - это понятно

При Вашем описании проблемы, "Это виртуалка, которая крутиться на SSD...восстановления на 32 битную платформу (время восстановления было=10 часам).
Решили смигрировать на 64 битную платформу и здесь такие тормоза. "

Лично у меня, складывается ощущение, что PostgreSQL тут вообще не причем. Кривое железо, драйвера, руки и так далее.

IMHO & AFAIK
...
Рейтинг: 0 / 0
Скорость восстановления данных со временем заметно замедляется
    #39192104
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
проц - строить индексы
...
Рейтинг: 0 / 0
Скорость восстановления данных со временем заметно замедляется
    #39192116
Фотография vyegorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev...
Лично у меня, складывается ощущение, что PostgreSQL тут вообще не причем. Кривое железо, драйвера, руки и так далее.
Точно такие же мысли.
При нагрузках надо смотреть на поведение физических железок, а не виртуальных.
...
Рейтинг: 0 / 0
Скорость восстановления данных со временем заметно замедляется
    #39192118
Sheriffua
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid KudryavtsevКак-то мне кажется, что нагрузка на диск 9 Mb/s - это как то ни о чем.

Команда COPY, может грузить две вещи:
1) "процессор" - например заливка данных
2) "диск" - это понятно

При Вашем описании проблемы, "Это виртуалка, которая крутиться на SSD...восстановления на 32 битную платформу (время восстановления было=10 часам).
Решили смигрировать на 64 битную платформу и здесь такие тормоза. "

Лично у меня, складывается ощущение, что PostgreSQL тут вообще не причем. Кривое железо, драйвера, руки и так далее.

IMHO & AFAIK

эта виртуалка была при восстановлении на 32 битную платформу, НИЧЕГО не менялось по ней, удалили 32 битную и проинсталили 64 битную - запустил повторный рестор.

Если бы были кривые настрорйки или железо, то тормоза по идее сразу бы были заметны, а так проблема проявляется после 1 часа работы . и это странно.
...
Рейтинг: 0 / 0
Скорость восстановления данных со временем заметно замедляется
    #39192126
Sheriffua
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
так новаые вводные - оказывается это таки не ВМ это реальная железяка, оказывается админы не правильно нас проинформировали.
...
Рейтинг: 0 / 0
Скорость восстановления данных со временем заметно замедляется
    #39192129
qwwq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev,

там ещё затраты на 1 длинную транзакцию надо учитывать. они наверняка нелинейные от числа записей.

т.е. может оказаться, что пж таки причём.

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

select count(*) from pg_locks.

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

select count(*) from pg_locks.

--поправка

Результат: 5
...
Рейтинг: 0 / 0
Скорость восстановления данных со временем заметно замедляется
    #39192144
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sheriffuaтак новаые вводные - оказывается это таки не ВМ это реальная железяка, оказывается админы не правильно нас проинформировали.
У меня SSD (бытовой) ровно так себя под нагрузкой и ведет

Быстро быстро пишет первые несколько Gb, потом намертво затыкается (система зависает), потом опять просыпается. Объемы конечно не Ваши, но в поведении нет ничего странного.

С учетом "на 32 бит все нормально, на 64 тормоза" - первое подозрение на систему, драйвера, железо.

Но лично я бы, посмотрел, что за дисковая система и как сконфигурирована. Если там что нибудь вроде "RAID-6 самое лучшее, ставьте его" ( C ) специалисты Fujutsju - то нет ничего удивительного.

qwwqтам ещё затраты на 1 длинную транзакцию надо учитывать. они наверняка нелинейные от числа записей.
т.е. может оказаться, что пж таки причём.

Ну что-то он должен грузить?

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

Мы тут сейчас будем тыкать пальцами в небо. Если есть админы — попросите продоставить графики по дискам (метсо, нагрузка), по цпу, по виртуальной памяти. Не те, что винда показывает, а подробные.
...
Рейтинг: 0 / 0
Скорость восстановления данных со временем заметно замедляется
    #39192160
Sheriffua
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Система:
...
Рейтинг: 0 / 0
Скорость восстановления данных со временем заметно замедляется
    #39192166
qwwq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev <>
Ну что-то он должен грузить?

Проц, диск....
хвост!

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

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

-[ 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

Могу ошибаться:

checkpoint_sync_time | 1018687
checkpoint_write_time | 46277179

По доке, в ms. Т.е. checkpoint_write_time = 46 277 179 ms = 46 277 sec = 771 min = > 12 hour
checkpoint_sync_time = 1 018 687 = 1 018 sec = 16 min

Мне одному кажется, что это ДОФИГА. Смотрим, сколько всего информации пытался записать PostgreSQL

buffers_checkpoint = 11 757 214 * 8 Kb = 94 057 712 Kb = 94 Gb

Т.е. скорость диска, если верить PostgreSQL = 94 057 712 / 46 277 179 = 2 Mb / sec

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

Мы тут сейчас будем тыкать пальцами в небо. Если есть админы — попросите продоставить графики по дискам (метсо, нагрузка), по цпу, по виртуальной памяти. Не те, что винда показывает, а подробные .

Что имеется ввиду под подробными??! вот это?
...
Рейтинг: 0 / 0
Скорость восстановления данных со временем заметно замедляется
    #39192182
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как-то мне это начинает напоминать не давнее обсуждение ))):

http://www.sql.ru/forum/1197046/ssd-vs-sas
...
Рейтинг: 0 / 0
Скорость восстановления данных со временем заметно замедляется
    #39192188
Sheriffua
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid KudryavtsevSheriffuavyegorov,

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

-[ 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

Могу ошибаться:

checkpoint_sync_time | 1018687
checkpoint_write_time | 46277179

По доке, в ms. Т.е. checkpoint_write_time = 46 277 179 ms = 46 277 sec = 771 min = > 12 hour
checkpoint_sync_time = 1 018 687 = 1 018 sec = 16 min

Мне одному кажется, что это ДОФИГА. Смотрим, сколько всего информации пытался записать PostgreSQL

buffers_checkpoint = 11 757 214 * 8 Kb = 94 057 712 Kb = 94 Gb

Т.е. скорость диска, если верить PostgreSQL = 94 057 712 / 46 277 179 = 2 Mb / sec

Где Вы такой SSD купили и/или кого к настройке дискового хранилища подпускали ?

Вы хотите сказать, что первые 20 Гб восстановились за 1 час для одной таблицы (общий размер восстановления составил 75 Гб, т.к. запускалось восстаноление в 4 потока), после этого скорость падает одного потока в разы, и в этом виноват SSD?
...
Рейтинг: 0 / 0
Скорость восстановления данных со временем заметно замедляется
    #39192191
Фотография grufos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid KudryavtsevКак-то мне кажется, что нагрузка на диск 9 Mb/s - это как то ни о чем.
Да, верно.
не могу сказать за linux, но на windows есть проблема с нагрузкой на диск.
Сам работаю в windows и я смог получить примерно 4-5 Mb/s .... это максимум!!!
Смог решить проблему скорости чтения данных только лишь поместив все данные в кэш (pg_prewarm)
А так, да... пока кэш не разогрет, то простейшие запросы
select * from firms where leader_fio ~ 'сидоров' limit 10 offset 20;
работали крайне медленно. Замечу сразу, что такой запрос делал именно с цель посмотреть нагрузку по чтению на диск. Сама табличка большая 3 Гб и её надо просмотреть почти всю.
Увы, как на велосипеде едем :)

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
QUERY PLAN
Limit  (cost=14686.39..22029.59 rows=10 width=444) (actual time=4179.054..5364.288 rows=10 loops=1)
  Output: id, short_name, norm_name, fns_number, reg_number, state_reg_number, id_region, id_okved, leader_fio, country_code, fts_name, fts_leader_fio, create_date, modify_date
  Buffers: shared read=90239
  I/O Timings: read=3581.307
  ->  Seq Scan on public.firms  (cost=0.00..466292.95 rows=635 width=444) (actual time=286.454..5364.267 rows=30 loops=1)
        Output: id, short_name, norm_name, fns_number, reg_number, state_reg_number, id_region, id_okved, leader_fio, country_code, fts_name, fts_leader_fio, create_date, modify_date
        Filter: ((firms.leader_fio)::text ~ 'сидоров'::text)
        Rows Removed by Filter: 1547738
        Buffers: shared read=90239
        I/O Timings: read=3581.307
Planning time: 38.715 ms
Execution time: 5364.570 ms



а вот после разогрева
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
QUERY PLAN
Limit  (cost=14686.39..22029.59 rows=10 width=444) (actual time=1788.878..2676.313 rows=10 loops=1)
  Output: id, short_name, norm_name, fns_number, reg_number, state_reg_number, id_region, id_okved, leader_fio, country_code, fts_name, fts_leader_fio, create_date, modify_date
  Buffers: shared hit=128247
  ->  Seq Scan on public.firms  (cost=0.00..466292.95 rows=635 width=444) (actual time=0.379..2676.294 rows=30 loops=1)
        Output: id, short_name, norm_name, fns_number, reg_number, state_reg_number, id_region, id_okved, leader_fio, country_code, fts_name, fts_leader_fio, create_date, modify_date
        Filter: ((firms.leader_fio)::text ~ 'сидоров'::text)
        Rows Removed by Filter: 2386078
        Buffers: shared hit=128247
Planning time: 2.017 ms
Execution time: 2676.370 ms
...
Рейтинг: 0 / 0
Скорость восстановления данных со временем заметно замедляется
    #39192192
Фотография vyegorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid KudryavtsevSheriffuavyegorov,

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

-[ 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

Могу ошибаться:

checkpoint_sync_time | 1018687
checkpoint_write_time | 46277179

По доке, в ms. Т.е. checkpoint_write_time = 46 277 179 ms = 46 277 sec = 771 min = > 12 hour
checkpoint_sync_time = 1 018 687 = 1 018 sec = 16 min

Мне одному кажется, что это ДОФИГА. Смотрим, сколько всего информации пытался записать PostgreSQL

buffers_checkpoint = 11 757 214 * 8 Kb = 94 057 712 Kb = 94 Gb

Т.е. скорость диска, если верить PostgreSQL = 94 057 712 / 46 277 179 = 2 Mb / sec

Где Вы такой SSD купили и/или кого к настройке дискового хранилища подпускали ?

Это кумулятивные данные, смотрите также на `stats_reset`.
...
Рейтинг: 0 / 0
Скорость восстановления данных со временем заметно замедляется
    #39192199
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sheriffua...Вы хотите сказать, что первые 20 Гб восстановились за 1 час для одной таблицы (общий размер восстановления составил 75 Гб, т.к. запускалось восстаноление в 4 потока), после этого скорость падает одного потока в разы, и в этом виноват SSD?
Не знаю.

Я хочу сказать, что по статистике которую отслеживает PostgreSQL (если я правильно прочитал доку и правильно поделил), 12 часов ушло на работу с диском. Почему такое не очень нормальное поведение - сказать сложно.

1) Я бы вынес файлы БД на обычный жесткий диск. Теоретически, при нормально открученных параметрах памяти и загрузки в один поток, COPY должна давать более-менее ПОСЛЕДОВАТЕЛЬНЫЙ доступ к диску. Т.ч. пусть не 80 Mb/s, но честные 40 Mb/s на любом бытовом жестком диске Вы иметь должны. Сейчас наблюдается 2 Mb/s под РЕАЛЬНОЙ нагрузкой.

2) Настройка параметров checkpoint'ов, что бы их было как можно меньше.

У меня сейчас на компе аналогичное поведение SSD, правда цена у него совсем другая (6 тыс. руб) и объемы у меня другие (пара гигов).

IMHO & AFAIK. Могу ошибаться. Не админ.
...
Рейтинг: 0 / 0
Скорость восстановления данных со временем заметно замедляется
    #39192206
Sheriffua
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid KudryavtsevSheriffua...Вы хотите сказать, что первые 20 Гб восстановились за 1 час для одной таблицы (общий размер восстановления составил 75 Гб, т.к. запускалось восстаноление в 4 потока), после этого скорость падает одного потока в разы, и в этом виноват SSD?
Не знаю.

Я хочу сказать, что по статистике которую отслеживает PostgreSQL (если я правильно прочитал доку и правильно поделил), 12 часов ушло на работу с диском. Почему такое не очень нормальное поведение - сказать сложно.

1) Я бы вынес файлы БД на обычный жесткий диск. Теоретически, при нормально открученных параметрах памяти и загрузки в один поток, COPY должна давать более-менее ПОСЛЕДОВАТЕЛЬНЫЙ доступ к диску. Т.ч. пусть не 80 Mb/s, но честные 40 Mb/s на любом бытовом жестком диске Вы иметь должны. Сейчас наблюдается 2 Mb/s под РЕАЛЬНОЙ нагрузкой.

2) Настройка параметров checkpoint'ов, что бы их было как можно меньше.

У меня сейчас на компе аналогичное поведение SSD, правда цена у него совсем другая (6 тыс. руб) и объемы у меня другие (пара гигов).

IMHO & AFAIK. Могу ошибаться. Не админ.

К сожалению нет места, чтобы вынести файлы БД на другой диск
...
Рейтинг: 0 / 0
Скорость восстановления данных со временем заметно замедляется
    #39192218
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
grufosДа, верно.
не могу сказать за linux, но на windows есть проблема с нагрузкой на диск.
Сам работаю в windows и я смог получить примерно 4-5 Mb/s .... это максимум!!!
...
PostgreSQL, Windows 7 max, AMD FX 4.7 Gh, SSD Kingston SUV300S37A 240G

Запустил select sum( length( текстовое_поле ) ) from большая_таблица

В мониторе ресурсов вижу от 40 Mb/s до 50 Mb/s чтение.
...
Рейтинг: 0 / 0
Скорость восстановления данных со временем заметно замедляется
    #39192229
Sheriffua
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробую еще восстановление запустить на диск Е, там 10й рейд скази винтов
...
Рейтинг: 0 / 0
Скорость восстановления данных со временем заметно замедляется
    #39192251
Фотография grufos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev,

Приведите пожалуйста план запроса для 1-го вызова при отсутствии таблицы в кеше и после помещения таблицы в кеш.
Хотелось бы взглянуть... и еще если можно скрин монитора ресурсов...
на моей системе такой же запрос:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
QUERY PLAN
Aggregate  (cost=482634.74..482634.75 rows=1 width=50) (actual time=14922.737..14922.737 rows=1 loops=1)
  Output: sum(length((leader_fio)::text))
  Buffers: shared read=384584
  I/O Timings: read=12432.931
  ->  Seq Scan on public.firms  (cost=0.00..449951.16 rows=6536716 width=50) (actual time=10.900..13778.633 rows=6425658 loops=1)
        Output: leader_fio
        Buffers: shared read=384584
        I/O Timings: read=12432.931
Planning time: 24.556 ms
Execution time: 14922.977 ms


и после разогрева
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
QUERY PLAN
Aggregate  (cost=482634.74..482634.75 rows=1 width=50) (actual time=2280.303..2280.303 rows=1 loops=1)
  Output: sum(length((leader_fio)::text))
  Buffers: shared hit=384584
  ->  Seq Scan on public.firms  (cost=0.00..449951.16 rows=6536716 width=50) (actual time=0.010..1237.375 rows=6425658 loops=1)
        Output: leader_fio
        Buffers: shared hit=384584
Planning time: 0.145 ms
Execution time: 2280.352 ms
...
Рейтинг: 0 / 0
Скорость восстановления данных со временем заметно замедляется
    #39192261
Sheriffua
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Запустил рестор, сейчас такая нагрузка:
...
Рейтинг: 0 / 0
Скорость восстановления данных со временем заметно замедляется
    #39192315
Фотография vyegorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sheriffua,

Я бы делал так:
- включил бы мониторинг (так, чтобы снимки снимались часто и была бы история) на диски, CPU, память, файл подкачки
- сделал бы новый кластер
- настроил бы PG, уделив внимание:
* WAL и контрольных точек
* bgwriter
* памяти: много maintenance, мало шаренных буферов
* логгированию всего чего только можно: connect/disconnect, checkpoints, temp, locks
* выключил бы всё, что может тормознуть (fsync, synchronous_commit)
- поднял бы экземпляр и дал ему спокойно ничего делать минут 10-15, чтобы мониторинг зафикисировал базу
- запустил бы восстановление
- по прошествии минут 30 _после_ замедления, начал бы курить графики мониторинга и логи базы.

Урывками — "вот на этом графике у меня затык!" — не увидеть, сравнить не с чем.
...
Рейтинг: 0 / 0
Скорость восстановления данных со временем заметно замедляется
    #39192412
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
grufosLeonid Kudryavtsev,

Приведите пожалуйста план запроса для 1-го вызова при отсутствии таблицы в кеше и после помещения таблицы в кеш.
Хотелось бы взглянуть... и еще если можно скрин монитора ресурсов...

Не очень понимаю насчет "таблицы в кеше и после помещения таблицы в кеш."

План (до и после запроса 3 строчки):

"Limit (cost=355933.64..355933.65 rows=1 width=2)"
" -> Aggregate (cost=355933.64..355933.65 rows=1 width=2)"
" -> Seq Scan on <cencored> (cost=0.00..328573.09 rows=5472109 width=2)"

Скриншоты в след. письме.
...
Рейтинг: 0 / 0
Скорость восстановления данных со временем заметно замедляется
    #39192417
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OFFTOPIC, по просьбе посетителей. Не очень понимаю ценность, но может действительно кому-то нужно.

Выполнение запроса. Чтение с диска.
...
Рейтинг: 0 / 0
Скорость восстановления данных со временем заметно замедляется
    #39192469
Фотография grufos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid KudryavtsevНе очень понимаю насчет "таблицы в кеше и после помещения таблицы в кеш."

Это я опечатался :)
предолагалось ДО помещения таблицы в кеш. (например сразу после рестарта службы)
и после помещения в кеш - select pg_prewarm('table name');

А в плане... жалко, что нет actual строчек...
ожидал план полученный командой:
explain (COSTS, BUFFERS, TIMING, ANALYZE, VERBOSE) SELECT ....

за скриншоты спасибо. Вижу, что postgres читает со скоростью ~28 Mb/sec
а какая версия самого PostgreSQL ?
...
Рейтинг: 0 / 0
Скорость восстановления данных со временем заметно замедляется
    #39192511
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
grufosза скриншоты спасибо
Не за что.

IMHO & AFAIK особой разницы в скорости дисковой подсистемы Windows / Linux ждать не стоит. Даже наоборот. Обычно под Windows оборудование более массовое/отлажено. Т.ч. пиковые скорости скорее следует на Windows ожидать.

SELECT ... - выполнялся 118 987 ms.
explain ...

"Limit (cost=355933.64..355933.65 rows=1 width=2) (actual time=90426.858..90426.858 rows=1 loops=1)"
" Output: (sum(length(day1)))"
" Buffers: shared hit=421 read=273431"
" -> Aggregate (cost=355933.64..355933.65 rows=1 width=2) (actual time=90426.856..90426.857 rows=1 loops=1)"
" Output: sum(length(day1))"
" Buffers: shared hit=421 read=273431"
" -> Seq Scan on public.innovata (cost=0.00..328573.09 rows=5472109 width=2) (actual time=0.011..89772.976 rows=3952248 loops=1)"
" Output: carrier, flightnumber, servicetype, effectivedate, discontinueddate, day1, day2, day3, day4, day5, day6, day7, departureairport, departurecity, departuretimepub, departuretimeactual, departureutcvariance, departureterminal, arrivalair (...)"
" Buffers: shared hit=421 read=273431"
"Planning time: 0.084 ms"
"Execution time: 90426.899 ms"

выполнялся 90 sec.
Explain после перезапуска службы:

"Limit (cost=355933.64..355933.65 rows=1 width=2) (actual time=2782.678..2782.679 rows=1 loops=1)"
" Output: (sum(length(day1)))"
" Buffers: shared read=273852"
" -> Aggregate (cost=355933.64..355933.65 rows=1 width=2) (actual time=2782.667..2782.668 rows=1 loops=1)"
" Output: sum(length(day1))"
" Buffers: shared read=273852"
" -> Seq Scan on public.innovata (cost=0.00..328573.09 rows=5472109 width=2) (actual time=0.649..2180.144 rows=3952248 loops=1)"
" Output: carrier, flightnumber, servicetype, effectivedate, discontinueddate, day1, day2, day3, day4, day5, day6, day7, departureairport, departurecity, departuretimepub, departuretimeactual, departureutcvariance, departureterminal, arrivalair (...)"
" Buffers: shared read=273852"
"Planning time: 0.761 ms"
"Execution time: 2782.719 ms"

Почему-то стало быстрее (на пару порядков)

Еще одно выполнение explain plan

"Limit (cost=355933.64..355933.65 rows=1 width=2) (actual time=2515.380..2515.381 rows=1 loops=1)"
" Output: (sum(length(day1)))"
" Buffers: shared hit=196 read=273656"
" -> Aggregate (cost=355933.64..355933.65 rows=1 width=2) (actual time=2515.378..2515.378 rows=1 loops=1)"
" Output: sum(length(day1))"
" Buffers: shared hit=196 read=273656"
" -> Seq Scan on public.innovata (cost=0.00..328573.09 rows=5472109 width=2) (actual time=0.006..1900.970 rows=3952248 loops=1)"
" Output: carrier, flightnumber, servicetype, effectivedate, discontinueddate, day1, day2, day3, day4, day5, day6, day7, departureairport, departurecity, departuretimepub, departuretimeactual, departureutcvariance, departureterminal, arrivalair (...)"
" Buffers: shared hit=196 read=273656"
"Planning time: 0.058 ms"
"Execution time: 2515.412 ms"


С PostgreSQL explain не дружу. Т.ч. никак трактовать результаты не буду. Вообще, что-то странное. Понятно, что тесты не чистые
...
Рейтинг: 0 / 0
Скорость восстановления данных со временем заметно замедляется
    #39192512
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
grufosа какая версия самого PostgreSQL ?
Version string PostgreSQL 9.4.5, compiled by Visual C++ build 1800, 64-bit
...
Рейтинг: 0 / 0
Скорость восстановления данных со временем заметно замедляется
    #39192553
Фотография grufos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid KudryavtsevIMHO & AFAIK особой разницы в скорости дисковой подсистемы Windows / Linux ждать не стоит.

вот тут как раз и есть сомнения....
"старшие товарищи" в лице Ильи Космоденьянского

- настоятельно не рекомендовали под Windows увеличивать размер буферного кеша больше 8 Гб при любом большом размере ОЗУ.

- также должен отметить, что только под Linux сейчас поддерживается работа с большим объёмом ОЗУ - так называемые huge_pages

- на конференциях мне говорили, что под Windows не эффективно реализован код работающий с буферным кэшом. К сожалению у меня недостаточно знаний, чтобы это подтвердить/опровергнуть.

Именно поэтому хотелось получить отзыв о работе под Windows/Linux

Что касается представленных планов, то они очень интересные...

1-й "Execution time: 90426.899 ms"
" Buffers: shared hit=421 read=273431" говорит о том, что в буферном кеше уже нашлось 421 страница и прочитано 273431 страниц итого = 273852

2-й "Execution time: 2782.719 ms"
" Buffers: shared read=273852" О как! мы всё прочитали с диска, но при этом работали 40 раз быстрее!

3-й "Execution time: 2515.412 ms"
" Buffers: shared hit=196 read=273656" часть уже в буферном кеше - 196 страниц. Время работы уменьшилось. Ожидаемо если сравнивать со 2-м запросом, но не с 1-м.

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

Есть ещё кэш операционки, все 3 плана читают тот же файл.
...
Рейтинг: 0 / 0
Скорость восстановления данных со временем заметно замедляется
    #39192572
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тест понятно не корректный и комп в фоне молотил долгий расчет (к БД не обращался). Т.к. мне не очень понятно, что именно и для чего нужно grufos, то и смысла нет напрягаться измерить сферического коня. IMHO

Если даже взять 90 sec это чтение с диска (что похоже на правду), то 273 431 * 8Kb / 90 sec = 24.3 Mb/s эффективных данных.

С загрузкой 40-50 Mb/s в диспетчере задач согласуется достаточно хорошо. Всяко НЕ "примерно 4-5 Mb/s .... это максимум". Цифры IMHO вполне адекватные для рабочего компа с бытовым SSD диском.
...
Рейтинг: 0 / 0
Скорость восстановления данных со временем заметно замедляется
    #39192584
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
grufosвот тут как раз и есть сомнения....
IMHO & AFAIK

Для Oracle, Oracle Co. указывал цифры в 10% - 20% изменения производительности в зависимости от конфигурирования ввода-вывода (файловая система, RAW-девайсы и т.д.).

IMHO Где-то такой разброс между различными версиями операционных систем, адекватными конфигурациями и стоит ожидать. Максимум. Если разница зашкаливает в РАЗЫ, то явно: глюк, бага, кривое оборудование, кривые руки.

Я верю в профессионализм своих коллег! Поэтому когда вместо ожидаемых десятков/сотен Mb/s получаю "примерно 4-5 Mb/s" - я точно знаю в чем дело. В компании не только я работаю. Не смог таких результатов добиться самостоятельно - коллеги тебе помогли )))
...
Рейтинг: 0 / 0
Скорость восстановления данных со временем заметно замедляется
    #39192606
Фотография grufos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev,
vyegorov,

Спасибо за ответы и подсказки.
Конечно я ещё буду исследовать этот вопрос с контролём счетчиков, чтобы убрать вот это "примерно 4-5 Mb/s"
...
Рейтинг: 0 / 0
Скорость восстановления данных со временем заметно замедляется
    #39192689
Sheriffua
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid KudryavtsevIMHO & AFAIK

Для Oracle, Oracle Co. указывал цифры в 10% - 20% изменения производительности в зависимости от конфигурирования ввода-вывода (файловая система, RAW-девайсы и т.д.).

IMHO Где-то такой разброс между различными версиями операционных систем, адекватными конфигурациями и стоит ожидать. Максимум. Если разница зашкаливает в РАЗЫ, то явно: глюк, бага, кривое оборудование, кривые руки.

Я верю в профессионализм своих коллег! Поэтому когда вместо ожидаемых десятков/сотен Mb/s получаю "примерно 4-5 Mb/s" - я точно знаю в чем дело. В компании не только я работаю. Не смог таких результатов добиться самостоятельно - коллеги тебе помогли )))

Главное чтобы коллеги владели кухней.
Пока смотрю на рестор и ответа не нахожу с чем связана данная трабла, с виндой, железом, утечкой памяти... Не понимаю (( Куда пропадает скорость восстановления данных и что на нее влияет??!
...
Рейтинг: 0 / 0
Скорость восстановления данных со временем заметно замедляется
    #39192852
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SheriffuaLeonid KudryavtsevIMHO & AFAIK

Для Oracle, Oracle Co. указывал цифры в 10% - 20% изменения производительности в зависимости от конфигурирования ввода-вывода (файловая система, RAW-девайсы и т.д.).

IMHO Где-то такой разброс между различными версиями операционных систем, адекватными конфигурациями и стоит ожидать. Максимум. Если разница зашкаливает в РАЗЫ, то явно: глюк, бага, кривое оборудование, кривые руки.

Я верю в профессионализм своих коллег! Поэтому когда вместо ожидаемых десятков/сотен Mb/s получаю "примерно 4-5 Mb/s" - я точно знаю в чем дело. В компании не только я работаю. Не смог таких результатов добиться самостоятельно - коллеги тебе помогли )))

Главное чтобы коллеги владели кухней.
Пока смотрю на рестор и ответа не нахожу с чем связана данная трабла, с виндой, железом, утечкой памяти... Не понимаю (( Куда пропадает скорость восстановления данных и что на нее влияет??!

1)Включите полный лог запросов к базе во время рестора и посмотрите что там происходит тогда когда все уже медленно идет.
или
2)попробуйте сделать --jobs=4 (или 8) для pg_restore.
или
3)возьмите и попробуйте на другом сервере для теста.
или
4)ВРЕМЕННО для теста на базе сделайте fsync=off и попробуйте загрузить

--
Maxim Boguk
www.postgresql-consulting.ru
...
Рейтинг: 0 / 0
Скорость восстановления данных со временем заметно замедляется
    #39192885
qwwq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Maxim Boguk,

4 уже -- см выше
3 -- ему не дают, [ибо it-нег]
2 -- у него одна табличка остаёцца для копей. т.е. остальные потоки в пролёте
1 -- см 2.
...
Рейтинг: 0 / 0
Скорость восстановления данных со временем заметно замедляется
    #39192931
Sheriffua
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qwwqMaxim Boguk,

4 уже -- см выше
3 -- ему не дают, [ибо it-нег]
2 -- у него одна табличка остаёцца для копей. т.е. остальные потоки в пролёте
1 -- см 2.

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

Я бы делал так:
- включил бы мониторинг (так, чтобы снимки снимались часто и была бы история) на диски, CPU, память, файл подкачки
- сделал бы новый кластер
- настроил бы PG, уделив внимание:
* WAL и контрольных точек
* bgwriter
* памяти: много maintenance, мало шаренных буферов
* логгированию всего чего только можно: connect/disconnect, checkpoints, temp, locks
* выключил бы всё, что может тормознуть (fsync, synchronous_commit)
- поднял бы экземпляр и дал ему спокойно ничего делать минут 10-15, чтобы мониторинг зафикисировал базу
- запустил бы восстановление
- по прошествии минут 30 _после_ замедления, начал бы курить графики мониторинга и логи базы.

Урывками — "вот на этом графике у меня затык!" — не увидеть, сравнить не с чем.

Вы говорили про этот мониторинг?
...
Рейтинг: 0 / 0
Скорость восстановления данных со временем заметно замедляется
    #39193546
Sheriffua
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Часть 2 от архива
...
Рейтинг: 0 / 0
Скорость восстановления данных со временем заметно замедляется
    #39194188
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
- включил бы мониторинг (так, чтобы снимки снимались часто и была бы история) на диски, CPU, память, файл подкачки
...
- по прошествии минут 30 _после_ замедления, начал бы курить графики мониторинга и логи базы.

Урывками — "вот на этом графике у меня затык!" — не увидеть, сравнить не с чем.

Cравнить не с чем.

В целом, картина на затык не похожа:
1. С диска стабильно читает среднее 0.374 макс 9 Mb/s
2. На диск пишет в среднем 1.202 макс 28.373 Mb/s
IMHO похоже на правду, кто БД и бекап держит в момент загрузки на одном и том же томе и нафига - вопрос риторический.
3. Процессор молотит.
Загруженность процессора средняя 17%, тотал 64%.
Не знаю сколько ядер в компьютере и в сколько потоков была загрузка, но мне кажется, это крайне прилично.

Что удивляет:
1. Ошибок страниц в секунду: среднее 1,528 макс 49,563
Можно подумать, что что-то ушло в своп.
2. Ввод страниц в секунду (и обмен страниц в секунду) - среднее 119 макс 2,209
мне кажется, это дофига
3. Средняя длина очереди диска D - 0,327
Средняя длина очереди дисков _Total - 0,935
ОЧЕНЬ похоже, что есть какая-то еще дисковая активность, кроме диска D !!! Которая в приложенный мониторинг не вошла. Своп?

Не спец. по администрированию Windows, но по ощущениям чайника:
1. Есть какой-то обмен с дисками помимо диска D. И на этих дисках, длина очереди диска явно больше, чем на диске D
2. Что-то свопиться, хотя памяти вроде дофига. Насколько "активен" своп, сказать не могу, мне сравнивать не с чем. Но явно он отличен от 0.
3. Кеш и память для меня выглядят странно. Больно маленький кеш при Ваших обменом с диском. Но не специалист.
...
Рейтинг: 0 / 0
Скорость восстановления данных со временем заметно замедляется
    #39194202
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
С подкачкой могу ошибаться, т.к. "Память, обмен страниц/сек. Этот счетчик очень часто неправильно интерпретируют...
Большое его значение необязательно подразумевает, что узкие места производительности возникают из-за недостатка ОЗУ." ( C ) MSDN

"Память, вывод страниц/сек. Этот счетчик показывает, сколько страниц виртуальной памяти записывались в файл подкачки для освобождения страниц ОЗУ для других целей каждую секунду. Этот счетчик необходимо отслеживать, если вы подозреваете, что узкое место — это подкачка. Даже если значение счетчика Байт выделенной виртуальной памяти больше объема ОЗУ, проблем с производительностью из-за недостатка оперативной памяти не будет, если значение счетчика "Вывод страниц/сек" небольшое или равно нулю в течение большей части времени."

Но удивляет, что:

Средняя длина очереди диска D - 0,327
Средняя длина очереди дисков _Total - 0,935
...
Рейтинг: 0 / 0
Скорость восстановления данных со временем заметно замедляется
    #39214668
Sheriffua
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообщем переустановили винду, все вернулось на круги свои - восстановление проходит нормально, ну скажем приемлимо в один поток 9 часов. Неужели виновата таки винда в происходящем??!
...
Рейтинг: 0 / 0
Скорость восстановления данных со временем заметно замедляется
    #39214691
Павел Лузанов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sheriffua,
Хорошие новости.)) Спасибо, что поделились!
...
Рейтинг: 0 / 0
80 сообщений из 80, показаны все 4 страниц
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Скорость восстановления данных со временем заметно замедляется
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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