Лагает интерфейс 1С на серверной базе PostgreSQL под Windows10

1. beard1 17.07.17 19:01 Сейчас в теме
Доброго времени суток!

Лагает может быть громко сказано, подлагивает, подтармаживает, подмерзает. Немного, но не приятно. Пользователь нервничает...

Как выражается:

В форме списка документов чуть-чуть задумывается при переходе в конец или начало списка
При закрытии окна формы несколько мгновений ничего не происходит, а потом форма закрывается (курсора ожидания нет)
ну и т.д.

При этом документы проводятся, тьфу-тьфу, нормально.

клиент 1С х32 8.3.10.2375
сервер 1С х64 8.3.10.2375
pgSQL 9.6.3 от Postgres Pro (настройки conf по рекомендациям мануалов pdSQL, ИТС, Инфостарт и т.д. )
Win 10x64
i5-6500, 32 GB, fake RAID1, система на SSD, базы и логи pgSQL на RAID1

ИБ типовые БП 2.0, 3.0
размеры ИБ не большие, если верить pg_database_size: 3,3GB, 3,1GB

по монитору ресурсов все нормально, на первый взгляд:
доступной памяти > 15Gb
длина очереди дисков <1
правда ЦП всегда в районе 90, и пользуют его два rphost и postgres в основном

может чего-то подкрутить в конфе Possgre?

в сервере 1С ничего не настраивал, все по умолчанию. Может там какие галки поставить? (вроде в последних уже и не надо особо)

Спасибо!
+
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Dream_kz 129 17.07.17 19:21 Сейчас в теме
(1) А регламентные операции настроены? (реиндексация, обновление статистики)
+
3. beard1 17.07.17 22:39 Сейчас в теме
(2) нет пока, первый день полета на Postgre )

до этого здесь были файловые (

а опыт только с MS SQL

ткните носом, где посмотреть по планам обслуживания Postgre
+
4. Dream_kz 129 18.07.17 08:27 Сейчас в теме
(3) Я такой скрипт выполняю

SET PGPASSWORD=123456

"C:\Program Files\PostgreSQL\9.4.2-1.1C\bin\psql.exe" --dbname BaseName --host 127.0.0.1 --port 5432 --username postgres --command "reindex DATABASE BaseName;"
"C:\Program Files\PostgreSQL\9.4.2-1.1C\bin\psql.exe" --dbname BaseName --host 127.0.0.1 --port 5432 --username postgres --command "vacuum full analyze;"

Ну а почитать, гугл/инфостарт, все ищется)
+
6. beard1 18.07.17 08:59 Сейчас в теме
(4) гуглю, читаю )))

нету пока опыта с Postgre (
вопросительных слов не знаю ;)

спасибо!
+
7. ansh15 18.07.17 09:43 Сейчас в теме
(6) Попробуйте включить блокировку регламентных заданий для всех баз, может регламентные задания грузят.
Тактовая частота процессора(при загрузке ЦП в 90%) какая показывается?
+
9. beard1 18.07.17 10:33 Сейчас в теме
(7) максимальная производительность включена, если мы об этом

а расклад вот такой



смущает, что много процессов postgres.exe в состоянии прерван, пока не понимаю... направьте, если есть соображения )

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

надо ли после загрузки из dt выполнять какие-то дополнительные операции на pgSQL?
+
11. ansh15 18.07.17 11:28 Сейчас в теме
(9)https://bugboard.v8.1c.ru/version/plt8gen/8.3.10.2466.html
Последняя запись.
Можно попробовать обновиться до 2446, посмотреть на ней.
Может какие-то фоновые задания прервались, их сеансы с postgresql не завершились и
процессы остались в состоянии "idle in transaction"
На версии платформы 8.2+PostgreSQL такое когда-то возникало http://forum.infostart.ru/forum105/topic79742/message904591/#message904591
+
12. beard1 18.07.17 14:25 Сейчас в теме
(11) последнюю запись багрепорта я видел, но вроде как не ожидалось "массового запуска и прерывания работы фоновых заданий", может не верно интерпретировал тему, но...

поднял ВМ в том же составе, только postgresql.conf по умолчанию, развернул Бухгалтерию 3.0 (демо) запускаю 1С, диспетчер, монитор ресурсов, ProcessExplore и чего-то я не понимаю...

"прерванные" процессы отображает только Монитор ресурсов, ни Диспетчер задач, ни ProcessExplore их не показывают, кроме того прерванные процессы возникают даже когда сервер 1С не запущен:



только у меня такая картинка? или это нормальное поведение?
+
15. h00k 50 20.07.17 01:27 Сейчас в теме
(12)
но вроде как не ожидалось "массового запуска и прерывания работы фоновых заданий"

Это коварная ошибка, под которую попадает и поиск в динамических списках. При наборе первой же буквы в поле поиска запускается фоновый поиск и если набрать следующую букву до того как появится результат, то предыдущее фоновое задание поиска прерывается и запускается новое. И так на каждую новую букву в этом поле.
+
17. beard1 20.07.17 07:36 Сейчас в теме
(15)(16)

при динамическом поиске на первый взгляд не проявляется... правда и количество записей сравнительно не большое
на имеющемся "железе" вряд ли получится выкрутить сильно больше попугаев
+
18. h00k 50 20.07.17 10:32 Сейчас в теме
(17)
на имеющемся "железе" вряд ли получится выкрутить сильно больше попугаев

С постгри не пробовал, но с мс эскуэл на похожем железе индекс должен быть выше 40.
+
19. beard1 20.07.17 10:40 Сейчас в теме
(18) попробую логи вынести на ssd или еще какие темпы в рам-диск запихнуть, но как-то боязно, нет опыта с pg.
+
20. starik-2005 3036 20.07.17 10:53 Сейчас в теме
(19) http://pgtune.leopard.in.ua/ - ставите винда + DWH, сколько памяти (-30% на 1с). Смотрите, что получилось. Вносите исправления в конфиг постгреса. default_statistics_target в 5000. Пробуете.
+
21. beard1 20.07.17 11:47 Сейчас в теме
(20)
default_statistics_target


кстати, про default_statistics_target

pgtune рекомендует default_statistics_target = 100

в других источниках видел 400, на ИТС - 4000,

поверил pgtune, сейчас стоит 100, попробую 5000 )

по памяти мы про effective_cache_size говорим? так и есть, прописал 1/3 от RAM

стесняюсь спросить что скрывается за аббревиатурой DWH?
+
22. Dream_kz 129 20.07.17 11:48 Сейчас в теме
(21)
DWH?

видимо data warehouse
+
23. beard1 20.07.17 12:01 Сейчас в теме
(22) это я предположил ) но как-то засомневался... не перебор? самая большая база чуть больше 3GB, правда этих бах 15 (так исторически сложилось), пользователей всего 12.
+
24. starik-2005 3036 20.07.17 13:10 Сейчас в теме
(21)
что
Просто все настройки, как на сайте выставьте (кроме стата) и пробуйте. Не забудьте рестарт сервера сделать (или подгрузить настройки). Также нужно иметь ввиду, что на 32-битном сервере память не будет выделена по указанным значениям - нужно использовать 64-битную версию.
+
26. beard1 20.07.17 13:29 Сейчас в теме
(20)
ставите винда + DWH


DWH = Data Warehouse?
+
27. starik-2005 3036 20.07.17 16:45 Сейчас в теме
(26)
Data Warehouse
Без вариантов.
+
5. alex-l19041 8 18.07.17 08:48 Сейчас в теме
(1)
правда ЦП всегда в районе 90,
- это перебор ! такая загрузка должна быть только в пиковые моменты...
+
8. Gilev.Vyacheslav 1911 18.07.17 10:25 Сейчас в теме
схема энергоснабжения какая?
сколько выдает наш тест http://www.gilev.ru/tpc1cgilv/ ?
+
10. beard1 18.07.17 10:40 Сейчас в теме
(8) максимальная производительность
про тест знаю, отдельный респект, но пока не запускал, постараюсь вечером, если дадут - бухгалтерия отчеты формирует )
+
14. beard1 19.07.17 22:35 Сейчас в теме
(8) получилось прогнать тест. результат 20.58
+
16. h00k 50 20.07.17 01:37 Сейчас в теме
(14)
получилось прогнать тест. результат 20.58

По моим наблюдениям пользователи довольны скоростью работы при индексе, по тесту Вячеслава, выше 35. Причём, если вдруг происходит замена сервера с индексом 60, на сервер с индексом 38-40 - то рядовые пользователи даже разницы не замечают.
Gilev.Vyacheslav; +1
28. Gilev.Vyacheslav 1911 22.07.17 11:04 Сейчас в теме
(14) по тесту надо начать с диагностики БИОСа
выключить там C-States, C1E
включить турбобуст
включить в биосе максимальную производительность в электропитании, управление электропитанием отдать БИОСу
затем снова сделайте тест
если результаты не подымутся, напишите модель вашего процессора
+
29. beard1 22.07.17 14:00 Сейчас в теме
(28) до BIOSa пока не доберусь (

а конфигурация вот такая:


клиент 1С х32 8.3.10.2375
сервер 1С х64 8.3.10.2375
pgSQL x64 9.6.3 от Postgres Pro (настройки conf по рекомендациям мануалов pgSQL, ИТС, Инфостарт и т.д. )
Win 10x64
i5-6500, 32 GB, fake RAID1, система на SSD, базы и логи pgSQL на RAID1
+
30. starik-2005 3036 22.07.17 18:07 Сейчас в теме
(29)
до BIOSa пока не доберусь
Для начала включить профиль питания "Высокая производительность" в винде. Тест сразу может показать цифру до в 2 раза большую.
+
31. beard1 22.07.17 21:41 Сейчас в теме
(30)
(7) максимальная производительность включена, если мы об этом


в мониторе ресурсов процессор > 100%
уже рапортовал в (9)

;)
+
32. starik-2005 3036 23.07.17 11:26 Сейчас в теме
(31)
в мониторе ресурсов процессор > 100%
Это говорит о том, что турбобуст включен. Но на картинке из (9) 102% - это не особо буст. У меня на I7 (рабочем ноуте, 2400/3000) больше 120% показывает. При этом тест Гилева тоже 20 показывает, но 1С и постгрес находятся на виртуалке (VirtualBOX) с Убунту сервер (16.04). На домашнем ноуте (i7/2400-3000) на хосте убунту десктоп 17.04, тест показывает 26-27 (это со схемой питания performance, без нее - 14-16).

Т.к. проц Ваш работает на частоте 3200 (в бусте 3600), то уровень производительности должен быть где-то в районе 40-ка попугаев по данному тесту. Вы правда включили схему питания "Высокая производительность"? А то на моем AMD Ryzen 5 1600 (3200 МГц) производительность в районе 38 (Linux Ubuntu 17.04, постгрес 9.6).

По поводу С-State, то это такая интересная штука, которая в последнее время владельцам AMD Ryzen стала знакома как мать родная ))) Суть в том, что процессор управляется BIOS или OS, при этом в соответствии со схемой производительности ему дается несколько вариантов вольтажа, частоты и прочих характеристик. В интеловских процах частоты, обычно, в лесенке С-State задаются от 800МГц до частоты с бустом, но при этом бустится только одно ядро (хотя с точки зрения диагностических утилит это не так), остальные не превышают максимальной частоты процессора без буста (в Вашем случае - 3200). При загрузке одного из ядер происходит повышение его частоты (не сразу, а шагами). В итоге, если схема производительности стоит обычная (сбалансированная), то львиную долю времени ядра работают на частоте 800МГц, а в моменты их загрузки частота ядер повышается системой до 3600 (в Вашем случае, если в БИОС включен турбобуст). Но т.к. ядру нужно время, чтобы повысить частоту до максимума, то, в среднем, частота у него находится в процессе прохождения теста где-то на середине. Почему? Потому, что 1С - это клиент-серверное приложение. Сначала сервер интерпретирует язык 1С, формирует запросы к SQL-серверу, передает их туда, а потом отдыхает, а в работу включается SQL, который получает данные и возвращает их 1С. Т.е. они постоянно занимаются этаким пинг-понгом. В итоге половину времени простаивает 1С, вторую половину времени простаивает SQL. Поэтому частота ядер, на которых работает 1С и SQL постоянно то повышается, то снижается. Чтобы этого не происходило, достаточно включить эту самую схему питания "Высокая производительность".
+
34. beard1 24.07.17 07:40 Сейчас в теме
(32)
Вы правда включили схему питания "Высокая производительность"?


ага )

+
36. starik-2005 3036 24.07.17 11:04 Сейчас в теме
(34)
ага )
А почему максимальная частота процессора 0 МГц? У меня так:
Прикрепленные файлы:
+
38. beard1 24.07.17 13:57 Сейчас в теме
(36) это последняя мулька Windows 10 версии 1703


Второе изменение в настройках схемы электропитания связано со скоростью работы процессора. Теперь, развернув раздел «Управление питанием процессора», вы можете указать максимальную частоту процессора.

Значение устанавливается в мегагерцах. К примеру, если вы укажите 1500 МГц, тактовая частота процессора всегда будет поддерживаться ниже 1.5 ГГц, даже если выполняемым задачам требуется больше мощности. Убедиться в корректности работы ограничителя скорости процессора можно в диспетчере задач на вкладке «Производительность».
подробнее тут

ИМХО, если 0, то не ограничивать
+
13. beard1 18.07.17 18:14 Сейчас в теме
вроде бы разобрался с "прерванными" процессами, это не "idle in transaction", это дочерние процессы которые инициируют plantuner, online_analyze и им подобные, а pg форкает потомка при каждом коннекте, они быстренько отрабатывают и закрываются, а монитор windows отображает по другому



на скриншоте два "прерванных" процесса в разное время

а процессор по прежнему под 100%

мог я его так загнать неправильным postgresql.conf?
+
25. beard1 20.07.17 13:27 Сейчас в теме
настройки сейчас как на картинке



память Total RAM указал 24GB из тех соображений, что всего 32, минус треть на Window + 1C, остальные 24 - доступны pg

плюс рекомендации с других источников

fsync on
synchronous_commit off
autovacuum on
autovacuum_max_workers 4
autovacuum_naptime 60s
bgwriter_delay 20ms
bgwriter_lru_multiplier 4
bgwriter_lru_maxpages 400
effective_io_concurrency 2
random_page_cost 2
row_security off
standard_conforming_strings off
escape_string_warning off
max_locks_per_transaction 256
max_connections 100
online_analyze.enaible on

все х64 - Win, 1C, pgSQL

попробую увеличить параметр как рекомендуете, только в не рабочее время, понаблюдаю )
+
37. ansh15 24.07.17 11:16 Сейчас в теме
(25) Попробуйте для теста
fsync = off, full_page_writes = off и online_analyze.enable=off
PostgreSQL после каждого завершения пишущей транзакции сбрасывает данные из файлового кэша ОС на диск. С одной стороны, это гарантирует что данные на диске всегда в актуальном состоянии, с другой при большом количестве транзакций падает производительность. Полностью отключить fsync можно, указав

fsync = off
full_page_writes = off

Делать это можно только в случае если вы на 100% доверяете оборудованию и ИБП (источнику бесперебойного питания). Иначе в случае аварийного завершения системы есть риск получить разрушенную БД. И в любом варианте не помешает так же RAID-контроллер с батарейкой для питания памяти недозаписанных данных.

Отсюда http://infostart.ru/public/325482/
Включенный online_analyze уменьшает результат теста процентов на 20.
+
39. beard1 24.07.17 14:00 Сейчас в теме
(37) были такие мысли, но на рабочем пока нельзя, а для чистоты эксперимента хотелось бы на том же оборудовании, а как поставить второй именованный экземпляр pgSQL для опытов пока не разбирался.
+
33. starik-2005 3036 23.07.17 12:05 Сейчас в теме
Кстати, еще раз прочитал название темы. Так вот, лаги интерфейса (управляемого) - это на столько обычно, что никто уже особого внимания не обращает. Такое поведение характерно и для MS SQL, и для PgSQL, и даже для файловой (не говоря уже об оракле и IBM DB2). Тут проблема не в СУБД, а в сети, клиентских машинах, положении звезд, ... Вот на практике видел решение (допил бухни 3.0), в котором обычная (абсолютно стандартная) ОСВ формируется хрен знает сколько времени, хотя там MS SQL, специальное решение от какой-то всем известной конторы, которая запиливает прослойку между 1С и SQL с чуть ли не ручной оптимизацией запросов суперэкспертами по SQL (не говоря уже об экспертах по тех.вопросам 1C). Да, интерфейс первые минут пять вообще живенький (но и железо там ОГОГО!!!), но это только первые пять минут - потом периодически фризы.
+
35. beard1 24.07.17 08:12 Сейчас в теме
(33)
лаги интерфейса (управляемого) - это на столько обычно, что никто уже особого внимания не обращает


раньше как-то не замечал или внимания не обращал )
в пользовательский интерфейс особо то не смотрю. понажимаю кнопочки, понаблюдаю, как время будет.

остальные базы файловые или MS SQL и, насколько помню, пользователь обычно ждет, пока 1с данные покажет и смотрит на курсорчик выполнения, и не нервничает, и не жамкает бестолково по тем же кнопочкам ))))

а тут новые практики - PostgesSQL, посмотрел более пристально - родилась тема на форуме )
+
Внимание! Тема сдана в архив

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