Вход | Регистрация


1С:Предприятие :: 1С:Предприятие 8 общая

1С использует ресурсы сервера на 25%

1С использует ресурсы сервера на 25%
Я
   Tester
 
29.09.18 - 12:00
Все привет.
В 1С 8.3.10 выполняется длительная операция > суток. При этом ресурсы сервера (в данном случае CPU) используются на 25%. Есть ли возможность понять какое узкое место на сервере и увеличить скорость работы 1С?
https://d.radikal.ru/d34/1809/95/a5d4723ae245.jpg
https://d.radikal.ru/d04/1809/95/d43ae538606d.jpg
 
 
   Aleksey
 
1 - 29.09.18 - 12:07
А что ты ожидал увидеть? 1С одноядерное приложение и больше 1-го ядра за раз не может использовать
   Cool_Profi
 
2 - 29.09.18 - 12:09
Одноядерный процессор поставь и наслаждайся загрузкой
   Cool_Profi
 
3 - 29.09.18 - 12:11
+ (0) скажи, а точно радикальный противник использования кнопки PrtScr?
Тебе религия не позволяет? Или внутренние убеждения? Или, может СБ тебе туда 380 вольт подключила?
   Tester
 
4 - 29.09.18 - 12:11
(1) 2-й скрин да, один процесс грузит полностью одно ядро. 1-й скрин сумма загрузки процессами ядер тоже около 25%. Неужели нет вариантов?
   Aleksey
 
5 - 29.09.18 - 12:12
(4) Я понять не могу что за 1С у тебя

Судя по второму это файловая, тогда причем тут 1 скрин?
   Tester
 
6 - 29.09.18 - 12:12
(3) может у меня сервер вне внешней сети и интернета?!
   Aleksey
 
7 - 29.09.18 - 12:13
(6) И ты снимаешь через окошко на улице? Какая религия запрещает сделать скриншот на той машине что сидишь?
   Tester
 
8 - 29.09.18 - 12:14
(5) да, 1-й скрин это серверная, 2-й это файловая.
   Aleksey
 
9 - 29.09.18 - 12:15
(8) Так сколько 1С у тебя запущено и что ты ускорить собираешься?
   lodger
 
10 - 29.09.18 - 12:17
(0) 1 ядро на проце - вот твое узкое место.
варианты лечения: взять процессор помощнее (чтобы отдельное ядро было значительно сильнее).
распараллелить нагрузку. если позволяет задача - запустить (число потоков минус 1) инстанца, чтобы каждое ядро повисло на 100% загрузке.
 
 Рекламное место пустует
   lodger
 
11 - 29.09.18 - 12:18
ну и все от задачи зависит. в 99.59% случаев такие проблемы решаются исправлением запроса, оптимизацией обработки данных.
   Tester
 
12 - 29.09.18 - 12:19
(9) на 1-м скрине одна 1С запущена серверная, на 2-м запущено две 1С, действия выполняет только файловая.
Хочу, чтобы использовала ресурсы сервера. Из 4-х ядер используется одно, как серверной так и файловой версией. Давали 36 ядер, загрузка проца 3-4%.
   Tester
 
13 - 29.09.18 - 12:22
(10) Уже лет 10 мечтаю, что появятся процессоры, в которых вырастет многократно мощность одного ядра. Либо ПО начнет использовать нормально ядра. Речь в теме есть ли варианты ускорить работу без оптимизации алгоритмов и распараллеливания запросов и т.п. в самой 1С?
   Aleksey
 
14 - 29.09.18 - 12:23
(12) При таком описании максимум что ты можешь услышать это (11)

Какое оборудование, какая задача.

Одно дело когда пишутся в справочник линейно данные и тут сложно программно ускорить.
Другое дело когда идет выборка и тут можно смотреть план запроса, попадает ли выборка в индексы
   Aleksey
 
15 - 29.09.18 - 12:24
(13) Да увеличить частоту процессора. Заменой или разгоном
   Tester
 
16 - 29.09.18 - 12:29
(14) В 1С в этот момент (2-й скрин) выполняется ПланыОбмена.ПрочитатьИзменения(). Читается xml файл размером 23 Гб. Т.е. оптимизация кода в данном случае в 1С невозможна.
   Cool_Profi
 
17 - 29.09.18 - 12:44
(16) Если у тебя накопилось изменений на 23ГБ - это не проблемы 1с. Это проблемы настройщиков обмена
   Остап Сулейманович
 
18 - 29.09.18 - 12:48
Итить колотить... 23 Гб...
Признайся - сколько по времени такой обмен формируется?
   Tester
 
19 - 29.09.18 - 12:54
(17) а если мне нужно развернуть узел из центра, в котором за 2 года работы куча объектов накопилось, которые необходимы в новом узле?
(18) xml-файл формируется около 12 часов. Читается в несколько раз дольше. Вот это и хотелось бы ускорить. А так хоть 100 ядер выделяй и пол терабайта ОЗУ толку нет.
   Cool_Profi
 
20 - 29.09.18 - 15:15
(19)
Существует куча способов создать узел, не прибегая к штатной выгрузке
   Tester
 
21 - 29.09.18 - 16:06
(20) Как мне создать новый узел, выгрузив в него пол миллиона элементов номенклатуры, тысячи контрагентов, данные из десятков прочих справочников, тысячи документов не прибегая к штатной выгрузке, чтобы при этом ускорился общий процесс сколь либо значительно?
   Aleksey
 
22 - 29.09.18 - 16:12
   Tester
 
23 - 29.09.18 - 16:20
(22) спасибо за ссылку, но из центральной базы 500 ГБ сделать копию и очистить гигов 450 будет наверное дольше, чем создать периферийный 50 гиговый узел штатными средствами.
   Фрэнки
 
24 - 29.09.18 - 17:07
(23) даже если тобой будет проведено исследование разных приложений, то ты удивишься - почти абсолютное большинство приложений не умеет использовать более одного ядра при создании всего одного процесса. Можешь из интереса посмотреть при запущенном браузере с множеством вкладок на количество созданных процессов браузера. Можешь посмотреть сколько процессов создает скайп и т.д.
В этом смысле приложения 1С ничем не лучше. Представь, что открытый только один сеанс пользовательский = одной вкладке браузера...
Другими словами, распараллеливание длительных операций, если это реализовано типовыми способами, до делается запуском фоновых ПРОЦЕССОВ. И вот тогда можно увидеть, что эти процессы садятся на разные ядра. Но! При работе в клиент-серверном режиме нужна правильная настройка 1С кластера серверов.

з.ы. В твоем частном случае этого распараллеливания нагрузки не сделаешь.
   Фрэнки
 
25 - 29.09.18 - 17:09
25% в среднем - использование 1 ядра на 4-ех ядерном процессоре (ядра могут быть и виртуальными тоже)
3-4% на 36 ядерном - это тоже загрузка только одного из 36-ти ядер
   Tester
 
26 - 29.09.18 - 18:02
(24) спасибо, хорошо описал! Итого единственный вариант - это распараллеливание выгрузки и загрузки объектов с помощью отдельных сеансов работы 1С либо фоновых заданий. В серверном варианте, возможно, придется увеличивать количество rphost'ов ограничивая число соединений.
   Aleksey
 
27 - 29.09.18 - 18:18
(26) в общем случае бред и практически не реализуемая задача
   Aleksey
 
28 - 29.09.18 - 18:27
Грубо говоря таблица изменений и таблица планов обмена одна на объект и на ней нельзя наложить "гибкие" блокировки.
А значит выгружая номенклатуру в одном сеансе платформа будет блокировать всю таблицу изменений номенклатура (так как она будет туда писать номер выгружаемого пакета) и другой сеанс нарвется на "блокировку" и выпадет в ошибку транзакции.
Даже если предположить что мы будет в каждом сеансе выгружать "свой" объект то во первых таблица планов обмена одна и значит при выгрузки пакета он будет писать туда номер выгруженного пакета, а значит если два параллельных пакетах попытаются записать туда очередной номер, то несложно догадаться что будет в этом случае.
И это мы еще упускаем из виду тот факт что типовыми средствами такой сценарий нельзя будет реализовать.
Типовой сценарий подразумевает что выгружаются в пакете все изменения и если потом прилетает подтверждение, то значит все считается что все пакеты до этого номера успешно загружены.
Например выгрузили номенклатуру, пакету присвоится номер 42. Выгрузили контрагентов - номер 43. При загрузки подтверждения с номером 43 1с будет считать что пакет 42 тоже успешно загружено. Т.е. нельзя выборочно подтвердить пакет.

Вот именно поэтому народ отказывается от типового механизма и реализовывает свой, например на РС, где можно наложить и блокировку и выборочное подтверждение
   H A D G E H O G s
 
29 - 29.09.18 - 19:36
(28) Чет дичь какая-то.
   H A D G E H O G s
 
30 - 29.09.18 - 19:37
Щас проверим.
   H A D G E H O G s
 
31 - 29.09.18 - 19:54
А не, все верно. Я перепутал с записью 2 элементов справочника.
   DmitrO
 
32 - 29.09.18 - 20:22
Предлагаю.
При создании набора данных для начальной загрузки не надо работать с регистрацией изменений вообще.
Надо сначала просто создать узел (только сам объект узла), чтобы началась регистрация изменений от транзакций в этой базе.
Далее надо просто выгружать все подряд, что необходимо для нового узла по условиям обмена (повторю, без всякой работы с таблицами регистрации изменений).
Потом сделать загрузку данных в новой базе (нового узла) с полученного набора данных.
После этого уже запускать обмен по традиционному регламенту.

У меня например так и работает.
   DmitrO
 
33 - 29.09.18 - 20:29
(32)+ при этом обе задачи как выгрузки, так и загрузки, хорошо и не сложно параллелятся разными сеансами, при условии формирования нескольких файлов.
 
 


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует