Загрузка ЦП 100%

1. alan derex (alanderex) 10.08.16 17:34 Сейчас в теме
Добрый день.

Возник спор между мной, системным администратором, и 1с интегратором. При формировании печатной формы ТН процесс 1с забирает весь доступный ресурс процессора. Если эта обработка не используется - все работает отлично. При этом 1с разработчики кричат что проблема не в их коде, а в железе или настройках системы сервера. Вот даже одно из их писем:
По загрузке процессора поясняю:

Проблема была не в коде, дословно было сказано «Мы нашли небольшой баг, сейчас исправим», после чего мы написали Кристине о проблеме ввода данных:
[09.08.2016 19:31:25] Екатерина: Кристина, печатная форма долго формировалась, так как дата установки цен позже перемещения.

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

Однако, вопрос, даже если программа ищет глубоко, почему может забиваться процессорное время и память сервера.
Обращаю ваше внимание на то, что долгая работы программы может быть связана и с конфигурацией оборудования, как сервера, так и локальной машины. Если локальная машина не имеет достаточных ресурсов, то исполнение идет на сервер. У одного из наших клиентов проблема решилась модернизацией оборудования.

Мы не против оптимизировать код стандартных механизмов, если это требуется. При разработке мы рассчитываем на системные требования 1с.


Локальные компьютеры отпадают, так как работа идет через RDP. Сервер - виртуальная машина, выделено 11 гигов ОЗУ и 3Ггц процессор - 1 ядро. Можно конечно выделить больше ядер, но это только кое-как сгладит проблему, но не решит в корне.
как можно доказать свою точку зрения 1сникам?

У кого какие мнения и соображения на эту тему?
Ответы
3. Алекс Кон (alex-l19041) 11 10.08.16 17:45 Сейчас в теме
(1) alanderex, а вообще "если программа ищет глубоко", то таки "съест" одно ядро. Так что для виртуальной машины лучше выделить еще одно ядро
16. Ийон Тихий (cool.vlad4) 43 09.09.16 09:43 Сейчас в теме
(1) alanderex, код их выложить. сложно что-то определенное сказать. (замер производительности можно попробовать, его уже посоветовали, но может ничего и не дать). "программа глубоко ищет", не знаю что это означает и что имелось ввиду. с вероятностью 99,9% кривой код. а что там такого в печатной форме, что требует крутые вычислительные ресурсы сервера и модернизации оборудования,это и хотелось бы узнать.
17. Ийон Тихий (cool.vlad4) 43 09.09.16 09:46 Сейчас в теме
(1) блин, на время поста не обратил внимания. а тему апнули, зачем-то. как проблему-то решили?
2. Алекс Кон (alex-l19041) 11 10.08.16 17:41 Сейчас в теме
"цены для накладной были внесены позже, чем проводилось перемещение" - как работает, если цены введены раньше ?
4. Роберт В е р т и н с к и й (v3rter) 10.08.16 17:53 Сейчас в теме
Да, платформа может занимать 100% одного ядра. Кстати, 1 ядро на сколько одновременных пользователей?
5. alan derex (alanderex) 10.08.16 19:04 Сейчас в теме
пользователей 10 человек
6. alan derex (alanderex) 10.08.16 19:07 Сейчас в теме
платформа может занимать 100% одного ядра


Так что для виртуальной машины лучше выделить еще одно ядро


но на том же "занятом" ядре могут находится и рабочие процессы n-ного количества пользователей. Получается выделение доп.ядра спасет только тех, кому повезло быть не на этом занятом ядре...
7. Виталий Петерсон (Murvin) 10.08.16 19:15 Сейчас в теме
Принтер печатает после или тупо висит?
8. alan derex (alanderex) 10.08.16 19:40 Сейчас в теме
Печатает, формирование просто дико долго происходит печатной формы. После формирования - все ок
11. Андрей Язев (walp) 11.08.16 05:40 Сейчас в теме
(8) alanderex, если печ. форма долго формируется, то программистам надо найти место, которое жрет больше всего времени и попытаться его оптимизировать. Почти всегда с этим можно что-нибудь сделать. Остальные печатные формы в других документах формируются нормально? Отчеты делаются быстро? С проведением документов проблем нет? Если все так, то проблема не в конфигурации сервера или количестве пользователей, а конкретно в этой форме.
alex-l19041; +1 Ответить
9. Sergey Andreev (starik-2005) 1347 10.08.16 22:02 Сейчас в теме
Все зависит от размера базы, типа СУБД, архитектуры хранения данных. Вы ничего не сказали о том, какая печатная форма в какой конфигурации и на какой платформе формируется. То, что код кривой - это точно, но без полных сведений о решении что-то конкретное сказать невозможно.
10. alan derex (alanderex) 11.08.16 00:37 Сейчас в теме
Используется файловая версия 1с 8.2
Размер базы - 2,1 Гб
Печатная форма товарной накладной в конфигурации "Бухгалтерия для Беларуси" версия 1.6
12. Роберт В е р т и н с к и й (v3rter) 11.08.16 09:08 Сейчас в теме
На 10 пользователей я бы выделили ядра 3.
13. Игорь Кузнецов (kuznecovii) 11.08.16 10:41 Сейчас в теме
Очень сложно что то сказать без кода, могу лишь предположения высказать.

1) Вероятно печать ТТН (формирование вывода на печать) не проблема, скорее всего программисты по требованию Заказчика дописывали заполнение определенных полей (вероятно цен) по интересному алгоритму и надо смотреть как они это делали. Не могу сказать, что редко встречаю подобный код с циклом в котором есть подзапрос + еще один цикл по обработке и соответственно нагрузка на ЦП 100%.

2) Если все типовое без модификации, то скорее нужно смотреть в момент загрузки ЦП (опять же код и отладка), возможно проблема с драйверами принтера, т.е. при выводе на пред. осмотр или запрос каких то параметров происходит глюк и обработка пытается получить и обработать данные следовательно 100% загрузка. И это может объяснить почему на компе разработчика скорее всего все гуд.

На этом предсказания закончу.

PS А вообще в данной ситуации очень просто все скинуть на систему или сервак, особенно в такой ооооочееень ресурсоемкой операции как печать ТТН!!!!! Не ругайтесь, а совместно, т.е. дружно найдите в чем косяк, если что зовите суперменов ))))
14. Олег Медведев (olgerd666) 49 06.09.16 17:41 Сейчас в теме
Вообще лучше код посмотреть, что такого там есть. И 1 ядро - это маловато
15. Алексей Михайлов (Kinestetik) 18 09.09.16 07:16 Сейчас в теме
Проведите замер производительности отладчиком функции формирования печ.формы. И увидите, что дольше всего выполнялось - запрос или вызов еще каких-то функций или цикл с большим числом итераций. Эти моменты и оптимизируйте
Оставьте свое сообщение