|
Ускорить ЗУП3. Ой, тормозит | ☑ | ||
---|---|---|---|---|
0
1CIlya
24.09.18
✎
13:52
|
С переходом более-менее разобрались, стали задумываться о масле на хлебушек.
ЗУП3 работает в файловом варианте на терминальном сервере на RAID1. Пользователей: 4. И это просто тормоза из ряда вон. Свод на 200 человек формируется за 9 сек., не считая ожиданий менюшек. Перенес базу на SQL-сервер, получил те же 9 сек. И это не укладывается в голове. Недавно переносили КА 2.4 на SQL и она стала работать ощутимо быстрее. А здесь нулевая реакция. При повторном формировании свода на SQL-сервере время не сокращается, а в файловом варианте сокращается до 5 сек. Что этому управляемому интерфейсу ЗУП3 не хватает для счастья? |
|||
1
timurhv
24.09.18
✎
13:56
|
(0) Индексы на стороне SQL обновляли?
Редакция какая? |
|||
2
timurhv
24.09.18
✎
13:56
|
(1) точнее версия, 3.1.7?
|
|||
3
Amra
24.09.18
✎
13:56
|
А с чего вы, сударь, решили, что при переходе на клиент-сервер у вас чтото ускорится?
|
|||
4
1CIlya
24.09.18
✎
13:59
|
(2) 3.1.5.313, пока на этой сидим;
(3) По аналогии с КА 2.4. Там перенесли и все стало хорошо, причем, само-собой. |
|||
5
SleepyHead
гуру
24.09.18
✎
14:01
|
(0) Если программа работает быстро, это несолидно, уважать не будут. Оставьте все, как есть.
|
|||
6
1CIlya
24.09.18
✎
14:02
|
(5) Плачуть, вопрошають, сморят как на спасителя...
|
|||
7
SleepyHead
гуру
24.09.18
✎
14:04
|
(6) Не верь женскому коварству. Сделаешь ЗУП 3 быстрее - не останется времени на чай и печеньки, угадай, кого назначат виновным?
|
|||
8
NorthWind
24.09.18
✎
14:06
|
(0) 9 сек на формирование отчета - это много? Ерунда какая-то.
|
|||
9
1Сергей
24.09.18
✎
14:06
|
(8) +1
|
|||
10
NorthWind
24.09.18
✎
14:06
|
может, 9 мин?
|
|||
11
timurhv
24.09.18
✎
14:07
|
Проверил на 500, свод за 11 секунд. Но сервер совсем дубовый.
|
|||
12
1CIlya
24.09.18
✎
14:10
|
(8) Для сравнения на ЗУП 2.5 тот же свод <1 сек. Но это не только свод разница ощущается просто при работе с программой. Возникает ощущение, что или ты где-то не докрутил, или 1С не туда свернули.
|
|||
13
1CIlya
24.09.18
✎
14:11
|
(11) Файл, SQL? Сколько человек?
|
|||
14
H A D G E H O G s
24.09.18
✎
14:14
|
(0) Вы не сможете. Забейте.
|
|||
15
1CIlya
24.09.18
✎
14:14
|
(1) Прямо индексы не обновлял, но переформировывал несколько раз отчет. Это считается?
|
|||
16
1CIlya
24.09.18
✎
14:16
|
(14) ...
Коль искра сильных разгорится в нас, Мы разрешим судьбы головоломки, И жизнь прекрасной сделать без прекрас, Сумеем мы, достойные потомки. http://www.stihi.ru/2017/11/19/11261 |
|||
17
Builder
24.09.18
✎
14:24
|
(0) Тут у меня в соседней ветке такая же проблема :)
Какой сервер лучше использовать для УФ? |
|||
18
timurhv
24.09.18
✎
14:27
|
(13) SQL, всего сейчас в разных базах сидит 643 пользователя. Всего по организации 500 сотрудников в ЗиК ГУ.
ЦП SQL загружен на 80%, диски донные, если скажу какие - засмеют. Новые СХД не закупают. |
|||
19
1CIlya
24.09.18
✎
14:27
|
(17) Апач, интересно... Клиент-серверный вариант ему уступает, вроде как прослоек меньше?
|
|||
20
1CIlya
24.09.18
✎
14:30
|
(18) Получается, SQL показывает сопоставимую производительность с файловым вариантом, дела...
|
|||
21
d4rkmesa
24.09.18
✎
14:30
|
(0) Дык, вы для интереса посмотрите, как этот самый свод формируется? Недавно обсуждали в теме про сложность конфигураций. Там гирлянда процедур и пакетов запросов.
|
|||
22
timurhv
24.09.18
✎
14:30
|
(20) А кто сказал что будет быстрее? Файловая 640 человек потянет?
|
|||
23
1CIlya
24.09.18
✎
14:33
|
(22) Имеется в виду, что у меня 9 сек. в SQL, у вас 11 сек. Т.е. примерно равно. И файловая теже 9 сек., т.е. не понятно что делать дальше.
|
|||
24
1CIlya
24.09.18
✎
14:35
|
(14) Вы немного подробней расскажите. Ускорить можно, но это прям дебри-дебри, но можно. Или как не долбись лбом о стену, даже штукатура не осыпется?
|
|||
25
timurhv
24.09.18
✎
14:40
|
(24) В ЗУП 3 скорость формирования отчетов - наименьшая проблема в текущем положении дел.
|
|||
26
1CIlya
24.09.18
✎
14:44
|
(21) Согласен. Они добавили новый слой процедур, но можно ли как-то повлиять его работу?
|
|||
27
1CIlya
24.09.18
✎
14:44
|
(25) :)
|
|||
28
timurhv
24.09.18
✎
14:45
|
(23) Нашел клиентскую базу 3.1.5, развернул только что в файловом режиме.
Сотрудников 909, время формирования отчета 5 сек. |
|||
29
1CIlya
24.09.18
✎
14:47
|
(28) Ночные, вредность, доплата за профуровень?
|
|||
30
timurhv
24.09.18
✎
14:50
|
(29) Начнем с самого начала, вы структуру какую используете? Стандартную или выводите подразделения\сотрудников?
|
|||
31
d4rkmesa
24.09.18
✎
14:52
|
(26) Возможно все, только вот целесообразно ли... Я немного покопался с расчетной ведомостью (это вариант того же отчета с другой структурой) и написал свою на основе имеющейся для ЗУП 2.5. Возможно, в каких-то случаях можно обойтись без этого, но тогда скорее всего достаточно будет настройки своего варианта отчета.
|
|||
32
1CIlya
24.09.18
✎
14:52
|
(30) Полный свод, все подразделения, по одной организации за месяц. Типовой вариант отчета.
|
|||
33
1CIlya
24.09.18
✎
14:56
|
Возможно, возникло некоторое недопонимание. Ускорить свод не цель. Цель - ускорить всю ЗУП3. Тормозит не только свод и все остальные отчеты, документы, и пр. Приходится ждать после нажатия на кнопку сформировать, формы открываются так, как будто в процессе открытия решают задачу сходимости в n-мерном пространстве, ну а запуск конфигурации это особенное наслаждение для мазохиста.
|
|||
34
timurhv
24.09.18
✎
15:00
|
(33)
Я бы проверил итоги (в пользовательском режиме) и индексы БД. Включил APDEX, смотрел по проблемным участкам планы запроса. Сделал опрос пользователей что особо доставляет неудобств. Пересмотрел настройки видов расчета, на инфостате была статья по их перенастройке, скорость вроде в несколько раз возросла. |
|||
35
1CIlya
24.09.18
✎
15:04
|
(34) Спасибо.
|
|||
36
1CIlya
24.09.18
✎
15:04
|
Твердотельники помогают ускорить управляемые формы?
|
|||
37
Access granted
24.09.18
✎
15:37
|
Для начала надо сделать тест Гилева, сообщить оценку.
|
|||
38
Skylark
24.09.18
✎
15:45
|
(34) ... и ускорил формирование отчета на 1 секунду!!!
|
|||
39
Skylark
24.09.18
✎
15:45
|
Ничего этому ЗУПу не поможет.
|
|||
40
Builder
24.09.18
✎
16:13
|
(36) Да, помогает. Особенно если база локально и ты один, ЗУП тогда более менее крутится.
|
|||
41
Amra
24.09.18
✎
17:35
|
(40) Ну это из серии "а кому то жемчуг мелкий". База на 11 тыс сотров - нормально работает, вполне приемлемо
|
|||
42
blutang
24.09.18
✎
17:49
|
(37) В тесте Гилева файловая в 4 раза быстрее SQL... :)
|
|||
43
timurhv
24.09.18
✎
17:59
|
(38) С отчетом-то понятно. На первых версиях ЗУП/ЗиК ГУ (3.1.4 вроде) больничный на 1 человек мог рассчитываться на хорошем железе по 18-30 минут.
Есть косяки, например в порядке измерений регистра сведений "ПлановыйФОТ" (основной запрос "ВыборкаНачисленийНаДатыИзмененияИсточниковВторичныхДанных" не попадает в индекс), надо выставить примерно следующим образом: Сотрудник, Начисление, ГоловнаяОрганизация, ДокументОснование, ФизическоеЛицо, ДатаОкончания, Год Вместо: Сотрудник, ДатаОкончания, Начисление, ФизическоеЛицо, ДокументОснование, ГоловнаяОрганизация, Год. |
|||
44
timurhv
24.09.18
✎
18:02
|
+(43) Плюс есть тьма запросов, где идет левое соединение к табличным частям документа. Выносишь получение данных ТЧ во временную таблицу и потом делаешь соединение с ней и запрос отрабатывает в 5-10 раз быстрее.
|
|||
45
1CIlya
24.09.18
✎
18:11
|
(44) Поправьте меня, если ошибаюсь. Ускорение за счет применения индекса достигается путем исключения цикла в цикле при умножении таблиц. При этом первый (внешний) цикл будет в любом случае, а внутренний, только по элементам на которые укажет индекс из присоединяемой таблицы.
Почему перенос ТЧ во временную таблицу дает ускорение, ведь умножение левое и первому циклу, циклу по ТЧ документа быть в любом случае, и нет разницы будет индекс у левой ТЧ или нет? |
|||
46
Провинциальный 1сник
24.09.18
✎
18:17
|
(0) Терпите. В 1с пришли "веб-программисты", а для них задержка меньше полминуты допустима.
|
|||
47
timurhv
24.09.18
✎
18:20
|
(45) Надо голый запрос на MSSQL глянуть, похоже оптимизатор запросов так себя ведет.
Нашел только вот это: Сложные запросы, использующие большое количество соединений Раздел: Соединения в запросе Причина: Увеличивается время поиска оптимального плана запроса. Может быть не найден оптимальный план запроса за отведенное время. Варианты решений: Пересмотреть запрос, постараться уйти Разделить запрос на части, помещая каждую из них во временную таблицу Критичность: Важно |
|||
48
Провинциальный 1сник
24.09.18
✎
18:21
|
Не знаю насчет ЗУПа, но в БП3 при переводе базы в режим клиент-сервер отчеты начинают запускаться через асинхронное фоновое задание с периодическим опросом состояния выполнения. Как следствие, отчеты формируются дольше (плюс время на инициализацию ФЗ, плюс квант первого опроса 2 секунды, плюс нарастание этого кванта, если не выполнился сразу). Вот была бы в 1с подписка на уведомления - было бы намного красивее.
|
|||
49
1CIlya
24.09.18
✎
18:22
|
(5), (14) Начинаешь понимать, что простые советы оказываются самыми мудрыми. Не можешь повлиять на проблему, измени свое отношение к ней.
|
|||
50
H A D G E H O G s
24.09.18
✎
18:23
|
На моей практике самым первым кандидатом на кривой план запроса шел параллелизм.
Вторым - устаревшая статистика. Сложных запросов в ней не было. Были неоптимальные запросы, но никак не сложные. |
|||
51
timurhv
24.09.18
✎
18:24
|
+ (47) Там еще запросы вида:
|ПОМЕСТИТЬ ВТПоказатели |ИЗ | Документ.ИзменениеОплатыТруда.Показатели КАК ИзменениеОплатыТрудаПоказатели | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ИзменениеОплатыТруда.Начисления КАК ИзменениеОплатыТрудаНачисления | ПО ИзменениеОплатыТрудаПоказатели.Ссылка = ИзменениеОплатыТрудаНачисления.Ссылка | И ИзменениеОплатыТрудаПоказатели.ИдентификаторСтрокиВидаРасчета = ИзменениеОплатыТрудаНачисления.ИдентификаторСтрокиВидаРасчета | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ИзменениеОплатыТруда КАК ИзменениеОплатыТруда | ПО ИзменениеОплатыТрудаПоказатели.Ссылка = ИзменениеОплатыТруда.Ссылка |ГДЕ | ИзменениеОплатыТруда.Ссылка = &Ссылка Т.е. сперва идет соединение табличных частей документа без отбора и в конце отбираются данные по текущему документу. |
|||
52
H A D G E H O G s
24.09.18
✎
18:26
|
(51) sql нормально это прожевывает.
|
|||
53
H A D G E H O G s
24.09.18
✎
18:26
|
Хотя, не уверен, надо проверить.
|
|||
54
1CIlya
24.09.18
✎
18:27
|
(50) Интересно как себя покажет Слон (postgresql). Как известно в многопоток он не умеет. Есть ли среди нас люди, у которых он развернут, сравнить как отработает что-то похожее на (51) .
|
|||
55
Провинциальный 1сник
24.09.18
✎
18:29
|
(51) Оптимизатор sql сам решает, как он будет выполнять запрос. Для этого используется статистика. Можно перехватить профайлером и посмотреть план.
|
|||
56
1CIlya
24.09.18
✎
18:31
|
(51) Это внутреннее соединение здесь есть возможность сократить как первый (внешний) цикл, так и второй. И "правильный" sql будет строить индекс индексов. В этом случае наличие индексов у внешней таблицы, безусловно, важно.
|
|||
57
timurhv
24.09.18
✎
18:34
|
(53) Сейчас занимаюсь переносом 50 организаций. Делал замеры, на подобных вещах жутко тормозило.
Безобразие нашел в 2-3 документах, перетащил во временные таблицы + изменил порядок в регистре сведений. Было: 680 минут (одна организация) Стало: 296 минут. (54), (55), (56) Вы мне сейчас все про теорию, я на практике поправил таким образом. Насчет статистики не знаю как ее обновлять во время переноса данных из предыдущей редакции, постоянно дергать вроде не есть хорошо? |
|||
58
timurhv
24.09.18
✎
18:36
|
+ (57) Ради интереса сегодня-завтра разверну копию, приведу индексы и тд в порядок и посмотрю профайлером что не так.
|
|||
59
1CIlya
24.09.18
✎
18:36
|
(57) О том и речь. Действительно, закидываете в ВТ, прикручиваете индекс, и внутреннее соединение работает быстрее.
|
|||
60
FireAlex
24.09.18
✎
19:00
|
(0) насчет свода - попробуйте итоговый запрос который исполняется в СКД выполнить в консоли запросов.
На некоторых отчетах (в частности оптимизировал ЗПкультура) время выполнения в консоли быстрее в разы. Тут, я думаю, дело в СКД - не любит оно большие гирлянды. |
|||
61
mmmarat
24.09.18
✎
20:24
|
(0) проверьте настройки сортировки представления) сотрудников, можно попробовать выбрать вывод только ФИО.
|
|||
62
Amra
24.09.18
✎
20:33
|
(57) По сколько сотрудников в организации в среднем?
|
|||
63
Fram
24.09.18
✎
20:41
|
(0) на скуле темпы пользователя под которым сервер 1с крутится попробуй на ССД или РАМ диск кинуть. У нас отчеты БП3 в разы быстрее стали формироваться.
|
|||
64
Fram
24.09.18
✎
20:42
|
(63)+ и темпдб на ССД
|
|||
65
Провинциальный 1сник
24.09.18
✎
20:57
|
(64) И каталог аппдата 1с - туда же. Ибо там кэш метаданных.
|
|||
66
Rovan
гуру
24.09.18
✎
21:03
|
(0) "ЗУП3 работает в файловом варианте на терминальном сервере на RAID1. Пользователей: 4"
Памяти на сервере - 8 Гб ? |
|||
67
tesseract
24.09.18
✎
22:23
|
(54) "Широкоизвестный факт" от службы ОБС? Нормально слон все умеет.
|
|||
68
timurhv
24.09.18
✎
23:10
|
(62) первые 10 крупных от 500 до 700. Остальные по нисходящей до 190.
Но попросили делать полный перенос со всей кадровой историей, поэтому переносимый объем увеличивается раза 3. |
|||
69
1CIlya
25.09.18
✎
10:03
|
(63), (64), (65) Спасибо!
|
|||
70
1CIlya
25.09.18
✎
10:06
|
(66) RAM: 32 Gb, доступно 9 Gb. Свободный остаток после того, как все пользователи загрузятся. ЗУП3 на рейде одна, все остальное на скуле.
|
|||
71
1CIlya
25.09.18
✎
10:13
|
(67) Имелось в виду postgresql и многопоточность в рамках одного запроса. Читал статью, где-то в 2015г., там утверждали, что не могЁт.
|
|||
72
Фрэнки
25.09.18
✎
10:23
|
(71) грубо говоря, в рамках одного уже готового запроса и мс-скуль тоже не умеет разделять один процесс на разные потоки.
|
|||
73
tesseract
25.09.18
✎
10:23
|
(71) Тот который от 1С по умолчанию не мог.
У слона все оптимизации по умолчанию в принципе выключены. В 2015 слон не мог нормально CROSS JOIN да и JOIN временных таблиц с физическими параллелить не мог. С тех пор много чего поправили. Сейчас слон работает нормально. Но с физическими таблицами join делать все равно не стоит. |
|||
74
Фрэнки
25.09.18
✎
10:25
|
(71) и второе, даже если происходит разделение одного процесса на разные потоки, то на уровне самой системы (операционки) это еще не означает, что другой поток того же процесса сумеет уползти на другое ядро, а тем более, на другой процессор.
|
|||
75
tesseract
25.09.18
✎
10:25
|
(72) Даже 1С научился потоки уже разделять. Сколько потоков в итоге будут использовать компилятор/оптимизатор/ридер - это тебе даже сами авторы СУБД сказать не смогут.
|
|||
76
tesseract
25.09.18
✎
10:27
|
(74) Процессы и потоки как-бы при старте сервера заводятся на разных процессорах. Они не запросом порождаются. Процесс просто разбрасывает по ним задачки.
|
|||
77
Фрэнки
25.09.18
✎
10:27
|
(75) это в каком месте 1С разделяет процессы потоки? механизм этого разделения можете озвучить?
|
|||
78
Cool_Profi
25.09.18
✎
10:28
|
(75) Поставь MaxDOP = 1 и ты точно будешь знать, сколько потоков у тебя будет использовать скуль на один запрос
|
|||
79
Фрэнки
25.09.18
✎
10:30
|
(76) уже теплее :-)
Т.е. в принципе пофиг, как это работает на уровне СУБД, умеет СУБД крутить разные потоки одного процесса на разных ядрах или не умеет. Важно, что в готовом исполняемом из типовой(!) конфигурации ОДНОПОТОЧНОМ коде от 1С множества потоков не сгенирится. |
|||
80
tesseract
25.09.18
✎
10:32
|
(77) CreateThread() / fork(). 8.3.12 таки научился в потоках работать. Смотрел по htop.
(79) SQL запрос и код 1С в разных контекстах будут исполняться. И в моем случае на другой ноде вообще :-) |
|||
81
Фрэнки
25.09.18
✎
10:37
|
(80) // И в моем случае на другой ноде вообще :-)
ВОТ!!! Еще теплее! Так что самый первый рецепт для ускорения скульной 1С-ки Илья таки не выполнил, скорей всего. Я имею ввиду, что нужно было не только тест Гилева найти, но также инструкцию по настройке 1С кластера |
|||
82
tesseract
25.09.18
✎
10:39
|
(81) Тест Гилева показывает очень средние попугаи. Узких мест не ловит.
|
|||
83
Фрэнки
25.09.18
✎
10:42
|
(82) Главное, чтоб обязательно не читали никаких инструкций нигде, а только на мисте в прямом общении узнавали сакральные нечто
|
|||
84
1CIlya
25.09.18
✎
10:45
|
(81), (83) Спасибо за критику, буду выполнять этот первый рецепт для ускорения скульной 1С-ки.
|
|||
85
1CIlya
25.09.18
✎
10:52
|
Развернул ЗУП3 на диска в оперативной памяти (RAM), видимо, эту производительность можно считать эталонной. Показатели следующие:
Запуск после ввода пароля: 16 сек.; Свод, типовой вариант: |
|||
86
tesseract
25.09.18
✎
10:55
|
(83) Документацию по платформе читать вообще не нужно. Нужно найти обработку, которая сразу все сделает хорошо и никакого профайлера в 1С конечно нет, это грязные слухи.
|
|||
87
1CIlya
25.09.18
✎
10:55
|
(85) +
Свод, типовой вариант: 5 сек., 4 сек., 4 сек. Немного шустрей интерфейс стал работать, но формы списков как тормозили при открытии, так и тормозят. |
|||
88
1CIlya
25.09.18
✎
11:01
|
(83), (86) Как вы считаете возможно дотянуться до показателей из (85)+(87) при выполнении оптимизаций сервера 1С и MSSQL?
|
|||
89
tesseract
25.09.18
✎
11:04
|
(88) Да можно. Запусти в отладчике "Измерение производительности" для двух вариантов. Посмотри в каком месте тормозит, тормоза форм списков при открытии - это довольно странно. Платформа какая?
|
|||
90
timurhv
25.09.18
✎
11:31
|
(52), (55), (59)
Сравнил скорость, действительно если статистика и индексы в порядке - разницы никакой, MSSQL отработал корректно. Получается, проблема актуальна только во время переноса данных из старых редакций. Ради интереса проверил аналогичные операции на файловой базе, там 70% времени уходит на запрос, который исправлял путем вынесения во временные таблицы. |
|||
91
ansh15
25.09.18
✎
11:32
|
(71) Статья 2016-го года, утверждается, что может https://habr.com/post/305662/
10-й может еще больше https://habr.com/company/postgrespro/blog/352144/ |
|||
92
tesseract
25.09.18
✎
11:34
|
(91) Кстати сегодня как раз вышла 8.3.13 c официальной поддержкой 10-ки. И наконец без патчей, а на полностью стандартном слоне.
|
|||
93
Amra
25.09.18
✎
11:43
|
(92) Где инфа про "полностью стандартный слон"? Ссылка на десятку или на 1Сный, или на ПостгреПро. С ПостгреПро 10.ч и последние 8.3.12 работают
|
|||
94
tesseract
25.09.18
✎
11:54
|
(93) https://releases.1c.ru/version_files?nick=AddCompPostgre&ver=10.3-2.1C
>>С ПостгреПро 10.ч и последние 8.3.12 работают Официально не работают. Я не любитель совсем уж бета-версий. |
|||
95
1CIlya
25.09.18
✎
14:03
|
Извиняюсь за отсутствие, только вернулся от руководства. Установили новые приоритеты и поставили "сверх" срочные задачи. Со временем сделаю все необходимые тесты и отпишусь.
|
|||
96
H A D G E H O G s
25.09.18
✎
14:11
|
(95) Я еще в (14) все вам рассказал.
|
|||
97
1CIlya
25.09.18
✎
14:17
|
(96) И я "все понял", еще раз спасибо. Тут в (89) обещают производительность сопоставимую с RAM-базой, если все хорошо настроить на скуле. Надо попробовать, а вдруг выгорит.
|
|||
98
ansh15
27.09.18
✎
11:00
|
(92) В исходных текстах(по ссылке в (94)) патчи с доработками 1С как лежали, так и лежат. И при сборке их также надо применять к оригинальной версии.
Как там у автора темы с ускорением работы в ЗУП, что-нибудь получилось? |
|||
99
1CIlya
27.09.18
✎
11:16
|
(98) Автор пока прокачивает скил, читает о тесте Гилева и роет интернеты в поисках всевозможных оптимизаций скуля, которых у нас еще нет. В свободное от работы время, естественно.
Чуть позже продолжим приключения. |
|||
100
1CIlya
27.09.18
✎
11:21
|
(99)+ Нас с коллегами опьяняет мысль не заморачиваться со скулем, а тупо купить NVMe SSD, порадоваться за несколько возросшую производительность, а во всем остальном, что не ускорилось обвинять вендора (1С).
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |