|
|
как замедлить 1С через postgres?
DemonShinji2, Irbis, Kobol, bimbambum, Ненавижу 1С, nvm220380, katamoto, Sabron, ansh15, Наивный, crasler, malikov, StarPer, Beduin, DimVad, Sserj, ads55, isa2net, PuhUfa, zva, Сукпун, fserg84, Chameleon1980, Гость из Мариуполя, ssh2006, fyn, whitedi, Zamestas, H A D G E H O G s, Михаил Козлов, PR, Krendel, Alexor, ТДК, Winnie Buh, andy_minsk, tabarigen, Mankubus, MWWRuza, FormatC, b_ru, abask, Asmody, mmg, Олдж, bolder, Tarlich, who respawn, kubik_live
| ☑ |
|
0
abask
09.12.25
✎
23:06
|
Есть странная задача замедлить одну базу в кластере 1С
Есть кластер 1С с несколькими базами, хранятся на Postgres.
Сервер postgres - это отдельная машина с nvme, репликами, блэкджеком и т.д. Все работает достаточно быстро и стабильно.
По условиям задачи нужно базу оставить в том же кластере 1С. Для хранения развернуть для нее отдельный инстанс Postgres на том же postgres сервере, где и другие. При этом настроить postgres так, чтобы стало заметно, что тормозит.
ask.postgrespro.ru предложил такие параметры:
shared_buffers = 16MB
work_mem = 1MB
maintenance_work_mem = 32MB
max_parallel_workers_per_gather = 0
max_parallel_workers = 0
max_parallel_maintenance_workers = 0
max_wal_size = 100MB
min_wal_size = 80MB
checkpoint_timeout = 30min
checkpoint_completion_target = 0.5
synchronous_commit = on
fsync = on
full_page_writes = on
aqo.enabled = off
jit = off
max_connections = 10
plan_cache_mode = force_generic_plan
не помогло, база работает довольно шустро, тормозов нет
База УТ, размером около 12 Гб
вопрос: может у кого-нибудь есть мысли, как настройками postgres можно сделать тормоза?
|
|
|
1
PR
09.12.25
✎
23:08
|
(0) Зачем?
|
|
|
2
bolder
09.12.25
✎
23:15
|
(0) Перенеси базу на медленный диск.
|
|
|
3
abask
09.12.25
✎
23:16
|
(1) так получилось
(2) там только nvme
|
|
|
4
bolder
09.12.25
✎
23:19
|
(3) и бэкапы тоже храните на nvme?
|
|
|
5
H A D G E H O G s
09.12.25
✎
23:21
|
В нормальных СУБД это делается так
select 'ALTER INDEX [' + I.name + '] ON [' + T.name + '] DISABLE'
from sys.indexes I
inner join sys.tables T on I.object_id = T.object_id
where I.type_desc = 'NONCLUSTERED'
and I.name is not null
|
|
|
6
abask
09.12.25
✎
23:23
|
(4) только одну копию, далее все сливается в другой ДЦ с необходимой глубиной, в нашем случае это не поможет.
|
|
|
7
Asmody
09.12.25
✎
23:25
|
(0) [настроить postgres так, чтобы стало заметно, что тормозит] - я бы послал матом.
|
|
|
8
H A D G E H O G s
09.12.25
✎
23:26
|
отключите nestloop. 1С любит их.
SET enable_nestloop = off
|
|
|
9
bolder
09.12.25
✎
23:27
|
(6) ну тогда только какие то процедуры на выборку вешать.
|
|
|
10
abask
09.12.25
✎
23:28
|
(5) мысль интересная, для postgres можно так
DROP INDEX index_name;
CREATE INDEX index_name ON table_name (column);
|
|
|
11
abask
09.12.25
✎
23:28
|
(8) (9) спасибо, пошел гуглить
|
|
|
12
Asmody
09.12.25
✎
23:35
|
запихни один инстанс postgres в докер и ограничь ему количество cpus (можно даже меньше 1) и memory 640k
|
|
|
13
Asmody
09.12.25
✎
23:37
|
без докера через systemd тоже можно подрезать крылышки, но я не помню как
|
|
|
14
PR
09.12.25
✎
23:37
|
(3) Что значит так получилось?
|
|
|
15
abask
09.12.25
✎
23:37
|
(13) через nice уже подрезал
|
|
|
16
Asmody
09.12.25
✎
23:44
|
(15) nice вроде только приоритет меняет. он не ограничивает ресурсы.
вот https://fastfox.pro/blog/tutorials/systemd-limits-memory-cpu/
оставь процессу 1% CPU и 640k memory и пусть попробует взлететь
|
|
|
17
ansh15
10.12.25
✎
00:13
|
Помнится, лет 12-13 назад, online_analyze для всех таблиц хорошо так замедляло, в разы. А если еще тактовую у ядер понизить, мегагерц до 800, то тест Гилева за пределы 5-и и не выходил...
|
|
|
18
zva
10.12.25
✎
05:04
|
(0) А без извращений через параметры базы 1С не проще?
|
|