|   |   | 
| 
 | 1С использует ресурсы сервера на 25% | ☑ | ||
|---|---|---|---|---|
| 0
    
        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 | |||
| 1
    
        Aleksey 29.09.18✎ 12:07 | 
        А что ты ожидал увидеть? 1С одноядерное приложение и больше 1-го ядра за раз не может использовать     | |||
| 2
    
        Cool_Profi 29.09.18✎ 12:09 | 
        Одноядерный процессор поставь и наслаждайся загрузкой     | |||
| 3
    
        Cool_Profi 29.09.18✎ 12:11 | 
        + (0) скажи, а точно радикальный противник использования кнопки PrtScr?
 Тебе религия не позволяет? Или внутренние убеждения? Или, может СБ тебе туда 380 вольт подключила? | |||
| 4
    
        Tester 29.09.18✎ 12:11 | 
        (1) 2-й скрин да, один процесс грузит полностью одно ядро. 1-й скрин сумма загрузки процессами ядер тоже около 25%. Неужели нет вариантов?     | |||
| 5
    
        Aleksey 29.09.18✎ 12:12 | 
        (4) Я понять не могу что за 1С у тебя
 Судя по второму это файловая, тогда причем тут 1 скрин? | |||
| 6
    
        Tester 29.09.18✎ 12:12 | 
        (3) может у меня сервер вне внешней сети и интернета?!     | |||
| 7
    
        Aleksey 29.09.18✎ 12:13 | 
        (6) И ты снимаешь через окошко на улице? Какая религия запрещает сделать скриншот на той машине что сидишь?     | |||
| 8
    
        Tester 29.09.18✎ 12:14 | 
        (5) да, 1-й скрин это серверная, 2-й это файловая.     | |||
| 9
    
        Aleksey 29.09.18✎ 12:15 | 
        (8) Так сколько 1С у тебя запущено и что ты ускорить собираешься?     | |||
| 10
    
        lodger 29.09.18✎ 12:17 | 
        (0) 1 ядро на проце - вот твое узкое место.
 варианты лечения: взять процессор помощнее (чтобы отдельное ядро было значительно сильнее). распараллелить нагрузку. если позволяет задача - запустить (число потоков минус 1) инстанца, чтобы каждое ядро повисло на 100% загрузке. | |||
| 11
    
        lodger 29.09.18✎ 12:18 | 
        ну и все от задачи зависит. в 99.59% случаев такие проблемы решаются исправлением запроса, оптимизацией обработки данных.     | |||
| 12
    
        Tester 29.09.18✎ 12:19 | 
        (9) на 1-м скрине одна 1С запущена серверная, на 2-м запущено две 1С, действия выполняет только файловая.
 Хочу, чтобы использовала ресурсы сервера. Из 4-х ядер используется одно, как серверной так и файловой версией. Давали 36 ядер, загрузка проца 3-4%. | |||
| 13
    
        Tester 29.09.18✎ 12:22 | 
        (10) Уже лет 10 мечтаю, что появятся процессоры, в которых вырастет многократно мощность одного ядра. Либо ПО начнет использовать нормально ядра. Речь в теме есть ли варианты ускорить работу без оптимизации алгоритмов и распараллеливания запросов и т.п. в самой 1С?     | |||
| 14
    
        Aleksey 29.09.18✎ 12:23 | 
        (12) При таком описании максимум что ты можешь услышать это (11)
 Какое оборудование, какая задача. Одно дело когда пишутся в справочник линейно данные и тут сложно программно ускорить. Другое дело когда идет выборка и тут можно смотреть план запроса, попадает ли выборка в индексы | |||
| 15
    
        Aleksey 29.09.18✎ 12:24 | 
        (13) Да увеличить частоту процессора. Заменой или разгоном     | |||
| 16
    
        Tester 29.09.18✎ 12:29 | 
        (14) В 1С в этот момент (2-й скрин) выполняется ПланыОбмена.ПрочитатьИзменения(). Читается xml файл размером 23 Гб. Т.е. оптимизация кода в данном случае в 1С невозможна.     | |||
| 17
    
        Cool_Profi 29.09.18✎ 12:44 | 
        (16) Если у тебя накопилось изменений на 23ГБ - это не проблемы 1с. Это проблемы настройщиков обмена     | |||
| 18
    
        Остап Сулейманович 29.09.18✎ 12:48 | 
        Итить колотить... 23 Гб...
 Признайся - сколько по времени такой обмен формируется? | |||
| 19
    
        Tester 29.09.18✎ 12:54 | 
        (17) а если мне нужно развернуть узел из центра, в котором за 2 года работы куча объектов накопилось, которые необходимы в новом узле?
 (18) xml-файл формируется около 12 часов. Читается в несколько раз дольше. Вот это и хотелось бы ускорить. А так хоть 100 ядер выделяй и пол терабайта ОЗУ толку нет. | |||
| 20
    
        Cool_Profi 29.09.18✎ 15:15 | 
        (19) 
 Существует куча способов создать узел, не прибегая к штатной выгрузке | |||
| 21
    
        Tester 29.09.18✎ 16:06 | 
        (20) Как мне создать новый узел, выгрузив в него пол миллиона элементов номенклатуры, тысячи контрагентов, данные из десятков прочих справочников, тысячи документов не прибегая к штатной выгрузке, чтобы при этом ускорился общий процесс сколь либо значительно?     | |||
| 22
    
        Aleksey 29.09.18✎ 16:12 | ||||
| 23
    
        Tester 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-ти ядер | |||
| 26
    
        Tester 29.09.18✎ 18:02 | 
        (24) спасибо, хорошо описал! Итого единственный вариант - это распараллеливание выгрузки и загрузки объектов с помощью отдельных сеансов работы 1С либо фоновых заданий. В серверном варианте, возможно, придется увеличивать количество rphost'ов ограничивая число соединений.     | |||
| 27
    
        Aleksey 29.09.18✎ 18:18 | 
        (26) в общем случае бред и практически не реализуемая задача     | |||
| 28
    
        Aleksey 29.09.18✎ 18:27 | 
        Грубо говоря таблица изменений и таблица планов обмена одна на объект и на ней нельзя наложить "гибкие" блокировки.
 А значит выгружая номенклатуру в одном сеансе платформа будет блокировать всю таблицу изменений номенклатура (так как она будет туда писать номер выгружаемого пакета) и другой сеанс нарвется на "блокировку" и выпадет в ошибку транзакции. Даже если предположить что мы будет в каждом сеансе выгружать "свой" объект то во первых таблица планов обмена одна и значит при выгрузки пакета он будет писать туда номер выгруженного пакета, а значит если два параллельных пакетах попытаются записать туда очередной номер, то несложно догадаться что будет в этом случае. И это мы еще упускаем из виду тот факт что типовыми средствами такой сценарий нельзя будет реализовать. Типовой сценарий подразумевает что выгружаются в пакете все изменения и если потом прилетает подтверждение, то значит все считается что все пакеты до этого номера успешно загружены. Например выгрузили номенклатуру, пакету присвоится номер 42. Выгрузили контрагентов - номер 43. При загрузки подтверждения с номером 43 1с будет считать что пакет 42 тоже успешно загружено. Т.е. нельзя выборочно подтвердить пакет. Вот именно поэтому народ отказывается от типового механизма и реализовывает свой, например на РС, где можно наложить и блокировку и выборочное подтверждение | |||
| 29
    
        H A D G E H O G s 29.09.18✎ 19:36 | 
        (28) Чет дичь какая-то.     | |||
| 30
    
        H A D G E H O G s 29.09.18✎ 19:37 | 
        Щас проверим.     | |||
| 31
    
        H A D G E H O G s 29.09.18✎ 19:54 | 
        А не, все верно. Я перепутал с записью 2 элементов справочника.     | |||
| 32
    
        DmitrO 29.09.18✎ 20:22 | 
        Предлагаю.
 При создании набора данных для начальной загрузки не надо работать с регистрацией изменений вообще. Надо сначала просто создать узел (только сам объект узла), чтобы началась регистрация изменений от транзакций в этой базе. Далее надо просто выгружать все подряд, что необходимо для нового узла по условиям обмена (повторю, без всякой работы с таблицами регистрации изменений). Потом сделать загрузку данных в новой базе (нового узла) с полученного набора данных. После этого уже запускать обмен по традиционному регламенту. У меня например так и работает. | |||
| 33
    
        DmitrO 29.09.18✎ 20:29 | 
        (32)+ при этом обе задачи как выгрузки, так и загрузки, хорошо и не сложно параллелятся разными сеансами, при условии формирования нескольких файлов.     | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |