Имя: Пароль:
1C
1С v8
Периодические подвисания 1С
0 bigzone
 
12.12.19
12:03
ЦПУ: intel core i7-4930K CPU 3.4Ghz (12ядер - из них физ 6шт.)
Оперативы: 60 Гб

ОС: Win2008 R2 64b
MS SQL 2012 - Под SQL выделено 24гб оперативы - из них забирает 18
1С:Предприятие 8.3 (8.3.13.1644)

включена шаред мемори.
диск огонь средняя дли очереди не более 0,03мс
Загрузка ЦП не более 20% в пике
блокировок вообще нет стабильно 0

БД 1С документооборот 2.1
включил замер времени для Apdex показывает средняя длительность всех операций в районе 1сек.

Проблема проявляется следующим образом: ПЕРЕОДИЧЕСКИ на любой из операций (открытие формы справочника из 100элементов или из 30т.эл) подвисает от примерно 3 до 10 секунд. При этом если смотреть замеры APDEX именно этой операции них... не показывает - ну показывает операция была замер показал 0,5 сек.
Виды ожиданий SQL на скрине по ссылке.
https://forum.infostart.ru/upload/forum/upload/5c1/5c1c9c8ae0d4ec871b07f9b5667b6979
+ Все пользователи на этом же сервере терминально тонким клиентом
+ rphost до 4 шт. каждый кушает от 1,4 до 2гб оперативы
+ непонятная особенность если запускать трасировку на sql и результат начать писать в sql бд на этот - же сервер то стабильно через 500-600 записей сервак встает колом. если это же писать в файл то работает но конечно начинает немного медленней.
1 H A D G E H O G s
 
12.12.19
12:06
mdop=1 ?
2 vicof
 
12.12.19
12:07
Автоприрост места для базы - 10Мб?
3 bigzone
 
12.12.19
12:07
+ непонятная особенность если запускать трасировку на sql и результат начать писать в sql бд на этот - же сервер то стабильно через 500-600 записей сервак встает колом. если это же писать в файл то работает но конечно начинает немного медленней. Физически диск с БД и файл куда писать трассу один.!
4 SSSSS_AAAAA
 
12.12.19
12:35
(0)
1. MaxDop явно не равен 1
2. Диск зашивается
3. Прирост маленький, да еще в сочетании с терминалом на этой же машине....
Целое поле граблей.
5 bigzone
 
13.12.19
04:04
Автоприрост места для базы длы базы и логов по 1024мб
6 bigzone
 
13.12.19
04:05
диск отдыхает ожидание менее 1мс.
7 bigzone
 
13.12.19
04:05
диск скорость чтения запись 1тб
8 rphosts
 
13.12.19
05:00
(0) длина очереди диска в единицах а не в мс.
Карл, что с сетью, антивирами и прочей херотой? Чем ещё посторонним помимо сервера 1С, СУБД и терминального сервера занят?
Регламентные/фоновые никакие не выполняются в момент подвисания?
Shared Memory = On?
9 bigzone
 
13.12.19
06:40
(8) На нет только 1С и субд. причем база 1шт.
Регламентные выполняются - но блокировок нет. а ресурсы сервера свободны!
Shared Memory = On
10 GedKo
 
13.12.19
07:36
в настройках энергопотребления стоит "максимальная производительность"?
11 sitex
 
naïve
13.12.19
07:59
(0) raid ? или ? Смотри performance с включенными счетчиками на диск.
12 rozer76
 
13.12.19
08:04
И Hyper-threading поробуй выключи. Камни должны быть с вкл Turbo Boost
13 bigzone
 
13.12.19
08:45
(10) да
14 bigzone
 
13.12.19
08:45
(11) диски свободны. Указанные счетчики смотрел.
15 rphosts
 
13.12.19
09:50
(14) сколько рамы выдал SQL?
Давай я тебе скину вечером список счётчиков для перфмона а ты посмотришь что там и как с ними.
Антивиров точно нет? Показатель перфмона Прерываний в сек не подпрыгивает в периоды торможения?
16 rphosts
 
13.12.19
10:01
и да, регламентно перезапускаете РП 1с? Регламентное обслуживание СУБД выполняете?
17 bigzone
 
13.12.19
10:43
(16) регламентно перезапускаете РП 1с - каждую ночь
Регламентное обслуживание СУБД выполняете - обязательно полное перестроение индексов, статистики кэш ну стандартный набор
18 bigzone
 
13.12.19
10:44
(15) Давай я тебе скину вечером список счётчиков для перфмона а ты посмотришь что там и как с ними - буду благодарен.
Антивиров точно нет - точно нет.
Показатель перфмона Прерываний в сек не подпрыгивает в периоды торможения - не смотрел.
19 rphosts
 
13.12.19
11:06
(18)кидай... сеть-то не провисает? икто гигабайты не таскает туда-сюда (никому нельзя кроме измерений верить!)
20 bigzone
 
13.12.19
12:11
(19) вот сеть то вроде между 1С и SQL по Shared Memory = On не должна пользоваться! покрайней мере по мониторингу используется менее чем на 10%
21 sitex
 
naïve
13.12.19
12:22
(18) в (14) говоришь смотрел,  оказывается не смотрел. Как дальше то собираешь искать проблему.
22 sitex
 
naïve
13.12.19
12:22
Еще раз Raid есть или нет?
23 rphosts
 
13.12.19
13:08
(20)может провисать передача пакетов до клиентов
24 rphosts
 
15.12.19
17:34
Счётчики:
PhysicalDisk\Avg. Disk Queue Length (длина очереди к дискам) - должна быть не более 2 диск, если рэйд то 2* кол-во параллельно работающих диска (работающих а не зеркалирующих),
PhysicalDisk\Avg. Disk Write Time (среднее время записи на диск) - не более 15 мс,
PhysicalDisk\Avg. Disk Read Time (среднее время чтения с диска) - не более 15 мс,
Processor(_Total)\% Processor Time (% загруженности процессора) - не более 80%,
System\Processor Queue Length (очередь к процессорам) - не более 2 на 1 ядро,
Memory\Available Mbytes (доступная оперативная память) - не менее 300-500 мб,
Network Adapter(*)\Bytes Total/sec (скорость передачи данных по сети) - для терминального доступа не более 60% от максимальной пропускной способности адаптера,

По счетчикам PhysicalDisk\Avg. Disk Queue Length, Processor(_Total)\% Processor Time, System\Processor Queue Length допустим короткий пик но не "полка".

Доп.счетчики для MS-SQL:
SQLServer:Buffer Manager\Buffer cache hit ratio (Процент чтения страниц из кэша) - при норме не менее 85%
SQLServer:Buffer Manager\Page life expectancy (Среднее время нахождения страницы в буфере) - при норме не менее 300 сек
Если по этим счетчикам хуже - не хватает памяти или совсем плохо с архитектурой работающего приложения.


PS я-бы ещё на всякий случай начал собирать ТЖ хотя-бы по дампам. Может там дампы пачками валятся и всё от этого.
25 rphosts
 
15.12.19
17:34
и да схему-бы железных дисков с указанием на каком из них база, ЖР, темпы
26 bigzone
 
16.12.19
06:08
(25)
диск ssd intel otane серия 900
Последовательное чтение (в пределах) 2500 MB/s
Последовательная запись (в пределах) 2000 MB/s
Случайное чтение (участок 8 ГБ) (в пределах) 550000 IOPS
Случайное чтение (участок 100%) 550000 IOPS
база и srvinfo на нем
tempdb на RAM диске
27 АНДР
 
16.12.19
07:54
Чем создан ramdisk и его параметры? Подкачка то же на нем?
ЦП 20% - суммарно по всем ядрам, а что в разрезе ядер ?
28 rphosts
 
16.12.19
07:58
(26) ЖТ тоже на нём? MS-SQL работает  в режиме WAL (Write Ahead Log), т.е. пока в ЖТ не будут внесены записи о изменения данных - транзакция не будет зафиксирована.
Скорость дисков это хорошо, но нужно смотреть на загруженность в процессе работы (счётчики перфмона, например, очень хороши для общей оценки(без разбора по конкретным операциям и транзакциям)).
29 ansh15
 
16.12.19
08:18
(0) >>БД 1С документооборот 2.1 1С:Предприятие 8.3 (8.3.13.1644)
Нельзя полностью исключать и возможные(спонтанные) особенности поведения конкретной конфы и конкретной платформы.
Пользователей сколько всего одновременно? Зависания появляются когда все пользователи начинают что-то делать(и/или фоновые/регламентные задания), или же при одном пользователе в базе такое же поведение?
30 bigzone
 
16.12.19
09:21
(28) MS-SQL работает  в режиме WAL (Write Ahead Log) - а разве можно поменять ? где ? как ? т.к. на первом месте по ожидания как раз выходило ожидание WRITELOG.
31 bigzone
 
16.12.19
09:31
(24) показания снял https://cloud.mail.ru/public/2r63/5kKHzrQNF
криминал не нашел
32 SSSSS_AAAAA
 
16.12.19
10:01
(30) Зачем? Потерять транзакционную целостность? Может таки полечить проблему, а не её последствия?
33 bigzone
 
16.12.19
10:15
(32) ну как бы да не хотелось бы жертвовать целостностью транзакций.
34 Glup0sti
 
16.12.19
10:20
Технологический журнал на все события по пользователю, лови тормоза
35 bigzone
 
16.12.19
10:24
(34) точно не включен. да если бы и был включен то место на диске бы очень быстро достигло 0байт
36 bigzone
 
16.12.19
10:26
а что думаете про (непонятная особенность если запускать трасировку на sql и результат начать писать в sql бд на этот - же сервер то стабильно через 500-600 записей сервак встает колом. если это же писать в файл то работает все пишет причем на диск на котором лежит база (в тоже место для чистоты эксперимента).
37 Glup0sti
 
16.12.19
10:29
(35) в чем проблема настроить на свободный диск?
С отбором по пользователю не будет колоссального роста
38 dnab
 
16.12.19
10:40
(0) Рабочие процессы не завершаются аварийно?
39 bigzone
 
16.12.19
11:24
(38) в ЖР нету. В настройках кластера ничего не настраивал.
40 rphosts
 
16.12.19
11:30
(30) гони ересь из головы!
41 rphosts
 
16.12.19
11:32
(39) ну так настрой сбор дампов - это не сложно.
(31) вечером если успею - гляну.
42 rphosts
 
16.12.19
11:33
(36) сколько памяти сиквелу отдал?
43 dnab
 
16.12.19
11:33
(39) а в консоли кластера 1с в свойствах РП время запуска?
44 bigzone
 
16.12.19
12:34
(42) 25гб на нем база одна база весит 16гб.
45 bigzone
 
16.12.19
12:41
46 ИС-2
 
naïve
16.12.19
15:24
аналогичная проблема, но проявляется и в тестовых базах.

Это может быть из-за проблем с сетью?
47 Vstur
 
16.12.19
15:35
(45) по картинке № 2

А что, теперь после сентября и КОРПа, кол-во ИБ на процесс без КОРП лицензии можно отличное от умолчания (8) ставить ? Или КОРП ?
48 rphosts
 
16.12.19
15:50
(45) 1.Перезапуск обязан быть! Например раз в сутки строго обязательно. Память ограничь... ну пусть 3 ГБ на РП.
2. 1 РП = 1 ИБ, 128 сеансов. 90% что это локализует проблемную ИБ, если проблема не общего порядка (типа какаго-то процесса).
что со счётчиками о которых писал? Все показатели выдержаны?
49 bigzone
 
17.12.19
04:10
(48) в (31) выложил все норм
50 bigzone
 
17.12.19
04:15
(48) rphost создается до 4 шт каждый кушает около 2Гб. платформа 32 поэтому если rphost начинает кушать более 3.4гб то превышение адресации для 32b платформы
51 pavig
 
17.12.19
08:32
(50)
Ну вот в этом и проблема: рпхост достигает своего потолка по памяти и 1С его прихлопывает, попутно создавая новый рпхост почти "с чистого листа"
52 pavig
 
17.12.19
08:33
не жопьтесь, переходите на 64 сервер
53 pavig
 
17.12.19
08:33
И не ставьте ограничение по памяти на рпхост, лучше разнесите с СУБД на разные машинки
54 Повелитель
 
17.12.19
08:55
(48) (53)  Один пишет ограничить РП второй не ограничивать.
Кому верить?
55 rphosts
 
17.12.19
09:12
(53) начинать нужно с 1 рп = 1 ИБ, 128 сеансов +  перезапуск РП раз в сутки
56 Vstur
 
17.12.19
09:28
(50) если 1с 32-х битный, переходите на 64-х.
Забудете о куче проблем.
Проходил через это много лет назад.
Другого пути просто нет.
57 bigzone
 
17.12.19
10:49
(56) нет возможности руководство пока не хочет тратиться. т.к. это же работает !
58 Vstur
 
17.12.19
11:26
(57) Там же не мульЁны за update ключа с 32 до 64-х.
Если не тратиться, лучше оттуда уходить.
"Я так думаю"(c)
59 rphosts
 
18.12.19
08:31
(58) от Питеров до Сибири эти вения докатываются не моментально... да и выбор вакух заметно уже.
Хотя... ТС, а что-б не в Ярче?
60 bigzone
 
18.12.19
09:50
(59) не не в ней. Хотя эта контора у нас в городе есть и считается крутой !
61 bigzone
 
18.12.19
09:54
вчерась тока раскопал одну занимательную закономерность. Когда у меня выполняется одно фоновое задание стабильно на нем замечал и повисает 1С. А задание то выполняется раз в 5мин длительность в среднем 15 сек. Теперь пока буду смотреть, что в нем именно вызывает столь чудесные эффекты.
Но все равно мне непонятно почему если запускать трассировку на sql и результат начать писать в sql (табличку) на этот - же сервер то стабильно через 500-600 записей сервак встает колом. если это же писать в файл то работает и пишет за час примерно 1,5 гб.
62 pavig
 
18.12.19
09:57
(57)
Руководство продолжает жевать кактус)
63 sitex
 
naïve
18.12.19
10:00
(62) Поймет когда "колом" встанет в один момент все. (57)  ТС лучше бы бумажку написал с подписью ответственных лиц за выделение финансов, чтоб не на словах было.
64 ansh15
 
18.12.19
10:00
(62) Значит, их это пока не напрягает. Когда начнет напрягать, сразу найдется и финансирование и претензию выставят "Почему этого раньше не было сделано??"
65 bigzone
 
20.12.19
09:52
Похоже нашел причину:
при выполнении следующего кода:
    Соединение = Новый COMОбъект("ADODB.Connection");    
    Соединение.ConnectionString = СокрЛП(Константы.СтрокаСоединенияСБазойСайт.Получить());
    Соединение.ConnectionTimeout = 60;
    Соединение.CommandTimeout = 60;
    Соединение.CursorLocation = 3;    
    Попытка
        Соединение.Open();
        Если Соединение.State = 1 Тогда
        КонецЕсли;
    Исключение    
    КонецПопытки;

99.7% (более 12сек.) занимает вот эта строка (Соединение.Open();)
есть мысля как ее многократно :) ускорить или еще чего похуже с ней сотворить ?
66 bigzone
 
20.12.19
10:00
(65) причем если повторно его запустить то на второй раз Open выполняется за 0,028сек.
67 palsergeich
 
20.12.19
10:46
(65) а зачем оно надо и почему оно делается в клиентском потоке?
68 palsergeich
 
20.12.19
10:47
(65) если это весь код, то он очень странный, он же ничего не делает
69 Cyberhawk
 
20.12.19
10:53
(68) Как ничего не делает - открывает коннект и инициализирует СОМ-объект для переиспользования
70 bigzone
 
20.12.19
11:07
(67) это фоновое делает на сервере
71 bigzone
 
20.12.19
11:08
(68) это не весь код
72 palsergeich
 
20.12.19
11:09
(69) Ну очевидно - отказаться от ком и сделать на HTTP
73 bigzone
 
20.12.19
11:13
(72) не очевидно. есть какой то пул соединений пока изучаю что это.
74 arsik
 
гуру
20.12.19
11:14
Еще можно отказаться от ком и сделать на внешних источниках данных
75 palsergeich
 
20.12.19
11:18
(73) Беда в том что каждое фоновое это отдельный сеанс. Если в рамках одного сеанса закешировать com соединение можно, то как это сделать между сеансами - я не знаю.
76 Cyberhawk
 
20.12.19
12:15
(72) Кого на ХТТП - ADODB.Connection?
77 palsergeich
 
20.12.19
12:20
(76) Обмен же
78 Cyberhawk
 
20.12.19
14:43
(77) Так он походу прямо в БД сайта и пишет. Предлагаешь сделать для сайта АПИ / перепискать серверную часть?
79 rphosts
 
23.12.19
08:07
(75) Эээээ константа (+ перед использованием проверка кратеньким запросом)?
80 bigzone
 
26.12.19
04:31
(79) в константу не запишешь comОбъект
81 rphosts
 
26.12.19
05:45
(80)А если в Хранилище и адрес в константу?
82 ДенисЧ
 
26.12.19
08:45
(79) Ага. А тут внезапно кластер и следующее фоновое выполняется на другом (а то и линуховом) сервере...

Не... Тут всю систему менять надо (с)
83 Сияющий в темноте
 
26.12.19
09:16
для этого есть Com+
чтобы можно было подключаться к пулу обьектов,и они не дохли,а также не жили внутри процесса.
84 rphosts
 
26.12.19
10:55
(82) поэтому "(+ перед использованием проверка кратеньким запросом)"
85 bigzone
 
30.12.19
07:16
(84) не попробовал от туда пустое значение возвращается.
86 bigzone
 
30.12.19
08:34
Проблема решена.
сменил драйвер odbc mysql  с версии 8.0 на 5.1
время подключение изменилось с 12сек. на 0,03сек