Есть базы КА (Комплексная автоматизация) на Postgree. С некоторых пор начались тормоза при проведении.
Визуально это выглядит так. Идет проведение, вроде уже заканчивается и тут же у указателя мыши возникает значок песочных часов. Такое впечатление что чтото начинает происходить, какой то непонятный процесс.
Замечено на документах где в табличной части много строк - документы поступление товаров и устуг и реализации товаров и услуг.
Системный администратор сказал что дело возможно в postgree и его скорее всего нужно переустановить. Я так понимаю что нужно сначала снести старую версию и заново устанавливать postgree.
Не подскажете ли полезные ссылочки и можете дать также полезные советы.
Визуально это выглядит так. Идет проведение, вроде уже заканчивается и тут же у указателя мыши возникает значок песочных часов. Такое впечатление что чтото начинает происходить, какой то непонятный процесс.
Замечено на документах где в табличной части много строк - документы поступление товаров и устуг и реализации товаров и услуг.
Системный администратор сказал что дело возможно в postgree и его скорее всего нужно переустановить. Я так понимаю что нужно сначала снести старую версию и заново устанавливать postgree.
Не подскажете ли полезные ссылочки и можете дать также полезные советы.
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Я из своего небольшого опыта могу сказать только одно... под каждую конфигурацию 1C приходится долго и вдумчиво анализировать все тормозные запросы (pgfouine в помощь) а далее еще более долго и вдумчиво расставлять или сносить индексы...
Это не считая настройки конфига... на вскидку могу для 1С посоветовать
shared_buffers гигабайт на 10 (на 16gb сервере)
256Mb-512Mb work_mem 256Mb temp_buffers на таком сервере (1С держит мало но очень тяжелых коннектов)...
возможно поднять join_collapse_limit и from_collapse_limit до 12-14
поставить geqo_threshold = 14-16 соответственно или даже geqo = off
поставить default_statistics_target = 1000
seq_page_cost = 0.1
random_page_cost = 0.11
(опять же от случая к случаю все меняется это не всегда работающие настройки)...
А далее опять ручной анализ и расстановка индексов для медленных запросов и готовность разбирать больные на голову запросы на 20-30 таблиц :(
У меня всегда получалось получить высокую или как минимум приемлемую производительность но обьем ручной работы по анализу запросов и оптимизации был очень большим. Никаких советов конкретных предложить не могу больше.
То как 1С запросы в базу составляет это слезы одни... авторов поувольнять нафиг и взять людей которые умеют голову включать хоть иногда.
Это не считая настройки конфига... на вскидку могу для 1С посоветовать
shared_buffers гигабайт на 10 (на 16gb сервере)
256Mb-512Mb work_mem 256Mb temp_buffers на таком сервере (1С держит мало но очень тяжелых коннектов)...
возможно поднять join_collapse_limit и from_collapse_limit до 12-14
поставить geqo_threshold = 14-16 соответственно или даже geqo = off
поставить default_statistics_target = 1000
seq_page_cost = 0.1
random_page_cost = 0.11
(опять же от случая к случаю все меняется это не всегда работающие настройки)...
А далее опять ручной анализ и расстановка индексов для медленных запросов и готовность разбирать больные на голову запросы на 20-30 таблиц :(
У меня всегда получалось получить высокую или как минимум приемлемую производительность но обьем ручной работы по анализу запросов и оптимизации был очень большим. Никаких советов конкретных предложить не могу больше.
То как 1С запросы в базу составляет это слезы одни... авторов поувольнять нафиг и взять людей которые умеют голову включать хоть иногда.
включаете log_min_duration_statement = 0 + log_lock_waits = on + log_temp_files = 0 в базе
перечитываете конфиг базы
и проводите ваш документ...
далее берете этот лог и смотрите где и на чем база тормозила...
(возможно придете к выводу что дело вообще не в базе :))
У вас почти идеальная ситуация для отладки и профилирования так как нет конкурентных пользователей... странно что более менее стандартная конфигурация у вас так тормозит.
PS: еще полезно посмотреть на select * from pg_stat_activity во время пауз. Особенно на счет current_query и waiting полей.
перечитываете конфиг базы
и проводите ваш документ...
далее берете этот лог и смотрите где и на чем база тормозила...
(возможно придете к выводу что дело вообще не в базе :))
У вас почти идеальная ситуация для отладки и профилирования так как нет конкурентных пользователей... странно что более менее стандартная конфигурация у вас так тормозит.
PS: еще полезно посмотреть на select * from pg_stat_activity во время пауз. Особенно на счет current_query и waiting полей.
Был похожий случай. Оказалось, сдох один из винтов в RAID-массиве, и он стал работать в degraded mode. Винт заменили, и все заработало нормально. А вообще, если сервер БД и 1С находятся на одном компе, то настройки postgre должны быть менее агрессивными.
Для 16 GB RAM я бы сделал так:
effective_cache_size = 6GB #если сделать больше, начинает использоваться своп, что сильно замедляет работу
shared_buffers = 2000MB
max_connections = 120
maintenance_work_mem = 360MB
work_mem = 16MB
wal_buffers = 16MB
checkpoint_segments = 24 #если рэйд с батарейкой, то можно и 32, но ни в коем случае не больше
default_statistics_target = 100
checkpoint_completion_target = 0.9
constraint_exclusion = on
#ну и 1С-специфические настройки:
escape_string_warning = off #чтобы лог не засорялся соответствующими предупреждениями
standard_conforming_strings = off
join_collapse_limit = 1
Для 16 GB RAM я бы сделал так:
effective_cache_size = 6GB #если сделать больше, начинает использоваться своп, что сильно замедляет работу
shared_buffers = 2000MB
max_connections = 120
maintenance_work_mem = 360MB
work_mem = 16MB
wal_buffers = 16MB
checkpoint_segments = 24 #если рэйд с батарейкой, то можно и 32, но ни в коем случае не больше
default_statistics_target = 100
checkpoint_completion_target = 0.9
constraint_exclusion = on
#ну и 1С-специфические настройки:
escape_string_warning = off #чтобы лог не засорялся соответствующими предупреждениями
standard_conforming_strings = off
join_collapse_limit = 1
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот