PostGree начал тормозить

1. Swetlana 27 23.02.12 20:25 Сейчас в теме
Есть базы КА (Комплексная автоматизация) на Postgree. С некоторых пор начались тормоза при проведении.
Визуально это выглядит так. Идет проведение, вроде уже заканчивается и тут же у указателя мыши возникает значок песочных часов. Такое впечатление что чтото начинает происходить, какой то непонятный процесс.
Замечено на документах где в табличной части много строк - документы поступление товаров и устуг и реализации товаров и услуг.
Системный администратор сказал что дело возможно в postgree и его скорее всего нужно переустановить. Я так понимаю что нужно сначала снести старую версию и заново устанавливать postgree.

Не подскажете ли полезные ссылочки и можете дать также полезные советы.
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. userrxx 23.02.12 21:14 Сейчас в теме
Я из своего небольшого опыта могу сказать только одно... под каждую конфигурацию 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С запросы в базу составляет это слезы одни... авторов поувольнять нафиг и взять людей которые умеют голову включать хоть иногда.
3. Swetlana 27 23.02.12 21:18 Сейчас в теме
Да, согласна. Но до этого же все работало приемлимо. Видимо чтото случилось в самой системе сервера. :(
4. userrxx 23.02.12 21:33 Сейчас в теме
включаете log_min_duration_statement = 0 + log_lock_waits = on + log_temp_files = 0 в базе
перечитываете конфиг базы
и проводите ваш документ...
далее берете этот лог и смотрите где и на чем база тормозила...
(возможно придете к выводу что дело вообще не в базе :))

У вас почти идеальная ситуация для отладки и профилирования так как нет конкурентных пользователей... странно что более менее стандартная конфигурация у вас так тормозит.

PS: еще полезно посмотреть на select * from pg_stat_activity во время пауз. Особенно на счет current_query и waiting полей.
5. Swetlana 27 23.02.12 21:36 Сейчас в теме
Какие инструменты можно использовать? Я с postgree к сожалению на вы.

у меня имеется только
Прикрепленные файлы:
6. azevakin 2 27.02.12 09:54 Сейчас в теме
Еще vacuum базы данных сделайте.
vacuumdb -z dbname

Можно еще full vacuum сделать,но при запуске такой команды внешних подключений к базе быть не должно, т.к. может случиться взаимная блокировка.
vacuumdb -fz dbname
7. reghent@ngs.ru 27.02.12 12:12 Сейчас в теме
а если замер производительности 1с запустить?
на чем конкретно тупит? на записи набора или на получении какого ли набора при проверках??
8. audion 10.04.12 19:25 Сейчас в теме
Был похожий случай. Оказалось, сдох один из винтов в 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
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот