Производительность в 1С, как же понять что тормозит в 1с её работу и что улучшить?

1. user712943 17.08.17 12:48 Сейчас в теме
Здравствуйте! Проблема заключается вот в чём:
Имеется сервер с Windows Server 2008R2.
Intel® Xeon® CPU E5620 @ 2.40GHz 2 процессора по 8 ядер
ASUSTeK Computer INC. : Z8NA-D6©
Оперативная память: 49ГБ частота памяти 1*333
ЖД: INTEL SSDSC2BX800G4
SQL 2008, шарид мемори включён, в плане электропитания выбран режим наивысшей производительности.

Однако Тест Гилёва показывает не более 17 попугаев(При запуске на сервере). В чём же проблема? Куда копать?

Только что провёл тест на файловой базе данных, и он показал 44,64.
Заранее спасибо!
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
9. Armando 1401 17.08.17 14:08 Сейчас в теме
(1) Предполагаю, что с процессором 2.40GHz на клиент-серверной базе 17 попугаев - средний показатель.
Gilev.Vyacheslav; +1 Ответить
23. Gilev.Vyacheslav 1917 18.08.17 11:46 Сейчас в теме
(1)
E5620
процессор для неудачников, низкая частота, прежде всего проблема в процессоре, процессор это 50% всей производительности, к тому же максимум из него по дефолту не выжат, это надо настраивать в биос и ос http://www.gilev.ru/systemperfomance/,
файловый тест и клиент-серверный не корректно сравнивать http://www.gilev.ru/mssqlvsfile/
приходите на наш тренинг http://www.gilev.ru/training/ по подбору оборудованию, больше нигде подобного полного освещения темы вы не найдете
30. DAL 18.08.17 15:50 Сейчас в теме
(23)
больше нигде подобного полного освещения темы вы не найдете


Вот ну не соглашусь, ибо сказано "И опыт - сын ошибок трудных, и гений - парадоксов друг..."

Ищущий всегда найдет)
31. OlegAr 22 18.08.17 15:54 Сейчас в теме
(30)Ищущий найдет, пройдет по кругу и вернется откуда начал и снова пойдет искать.
32. DAL 18.08.17 15:55 Сейчас в теме
(31) Ну да... Многие берут на вооружение лозунг: "Бороться и искать, найти и не сдаваться".

Так что каждый сам хозяин своего железа, софта и кода)))
28. DAL 18.08.17 15:45 Сейчас в теме
(1)
Как много "букаф"...

Скажу одно. В свое время тоже голову с попугаями ломал. А вопрос решился просто заменой массива хардов.

И первые и вторые - абсолютно новые. Но на сигейтах тормозил, а на рапторах взлетел с 17 до 60.

Так что не торопитесь говорить, что дело не в железе.

Тут тоже вопросв много - какая память, какой хард, может тупо камень печкой прикинулся)))
2. OlegAr 22 17.08.17 12:59 Сейчас в теме
меняйте SSD ищите и устанавливайте самый лучший, не жалейте денег.
5. user712943 17.08.17 13:49 Сейчас в теме
(2) Диск и так SSD, он весьма хорош. Обратите внимание что в файловой версии базы данных тест показывает 44,64, а в клиент-серверном, варианте 17.
Возможно вопрос в SQL или в настроке сервера 1С ?
6. OlegAr 22 17.08.17 13:56 Сейчас в теме
(5) да, я хотел сказать, что все "затыки" именно в дисковых операциях, будь то файловый вариант, или SQL, да и обратите внимание, никакие другие службы или сервисы "Окна" не запущены ?
3. OlegAr 22 17.08.17 13:04 Сейчас в теме
сори. сразу не обратил внимание. но "копать" нужно в данном направлении, замедляет 1С только обмен с диском.
4. Vovan1975 13 17.08.17 13:20 Сейчас в теме
ищете в сети и качаете книгу "эксперт 1с по технологическим вопросам".

там во втором разделе как раз описано что Вам нужно сделать - настройки счетчиков производительности в винде и настройка технологического журнала.
user712943; ipoloskov; +2 Ответить
7. OlegAr 22 17.08.17 14:01 Сейчас в теме
специально запустил у себя: Однопоточный синтетический тест платформы 1С:Предприятие + Многопоточный тест записи на диск (2.1.0.7)
Гилёв Вячеслав Валерьевич
(gilev.ru/1c/tpc)
тест показал 63,29, махнусь неглядя на сервак.
Прикрепленные файлы:
8. OlegAr 22 17.08.17 14:02 Сейчас в теме
так, что ищите проблемы. может ненаглядный Каспер стоит или обновление в этот момент шло. в общем диск был занят другими приложениями.
10. DarkUser 17.08.17 14:26 Сейчас в теме
А каталог сервера приложений 1С тоже на SSD лежит? И tempdb скуля?
12. user712943 17.08.17 14:31 Сейчас в теме
(10)
SSD - используется в качестве диска С , так что скорее всего да, но где это можно посмотреть ? Я бы проверил.


(11)
l создает базу в режиме full и приходится затем каждую базу созданную автоматически, перенастраивать


Серверу выделено 30ГБ оперативной памяти, ядер на SQL выделено 16 (каждый процессор по 8)
11. ssega 17.08.17 14:27 Сейчас в теме
Возможно причина в настройках SQL:

имхо база в режиме simple быстрее работает чем база в режиме full

Но по умолчанию sql создает базу в режиме full и приходится затем каждую базу созданную автоматически, перенастраивать вручную.

затем сколько памяти отведено на sql сервер, сколько ядер и т.п.
13. DarkUser 17.08.17 14:43 Сейчас в теме
Проверьте что бы в SQL 2008 стояли настройки:
Maximum worker threads 2048
Boost priority ИСТИНА
14. pm74 203 17.08.17 15:02 Сейчас в теме
tempdb лучше на отдельном шустром диске
поковыряйтесь в параметрах базы автообновление статистики , автосжатие лучше убрать, авторасширение в зависимости от скорости изменений > 1 мб (по умолчанию)
15. OlegAr 22 17.08.17 15:04 Сейчас в теме
Повышение производительности 1С для администраторов http://www.gilev.ru/training/
Gilev.Vyacheslav; +1 Ответить
16. starik-2005 3087 17.08.17 15:06 Сейчас в теме
1.44 попугая в файловой базе на 2,4GHz - это нормально (на 3,2 - 65 => 3,2/2,4 * 65 = 48). Зависимость файловой базы от частоты процессора практически линейная (на одной архитектуре вообще линейная).
2. 17 попугаев на серверной базе - это почти хорошо, т.к. в самом лучшем случае клиент-серверная база с одним пользователем работает в 2 раза медленнее. У Вас в 2,6 почти раз медленнее, что говорит о наличии некоторых проблем.
3. Основные проблемы для одного потока, в котором нет никакой конкуренции за ресурсы, - это передача данных от сервера 1С серверу SQL и обратно, время записи данных на диск (как со стороны 1С - лог, так и со стороны SQL - файл базы данных, лог базы данных, файлы временных таблиц). Чтение с диска в однопоточном тесте Гилева, полагаю, вообще не производится, т.к. памяти хватает и вся база закеширована.

Отсюда простые рекомендации:
1. Включите boost. Он позволит одному потоку достигать большей частоты и увеличит цифры теста как для файловой, так и для серверной части. Но для Вашего процессора тут все печально - 2,66GHz всего. Проц еще 32nm, 10-го года начала выпуска. Проц, собственно, - это тут самое узкое место, полагаю.
2. Разнесите логи и данные SQL на разные физические диски. Но если у Вас SSD, то это особо не поможет.
3. Разделите tenpdb на несколько частей (добавьте файлы в системную таблицу tempdb). Поместите их на отдельный диск (или вообще в RAM).
4. Но, полагаю, что-то выжать из этой железяги будет непросто.
18. user712943 17.08.17 15:47 Сейчас в теме
(16)
Спасибо! Похоже, что вы правы!


(17)
ла надо посмотреть планы выполнения запросов, настройки SQL сервера, адекватность индексов и кеша.
Системные метрики по памяти, дисковым очередям и прочее..


Тормоза при проведении заказа клиента на УТ11 ( На проведение уходит почти 10 сек иногда, а иногда и за 3-4 проводится.)
19. caponid 17.08.17 15:56 Сейчас в теме
(18) А это стандартная УТ? или заказ дописывался - менялся?
и это время - 3-10 сек с течением времени выросло? когда то было все хорошо?
20. user712943 17.08.17 16:18 Сейчас в теме
(19)
Дописывался но не много.
21. ImHunter 327 17.08.17 16:33 Сейчас в теме
(20) Ну так для начала просто сделайте замер производительности. Может сразу что-то интересное найдете.
24. Gilev.Vyacheslav 1917 18.08.17 11:49 Сейчас в теме
(16)
Чтение с диска в однопоточном тесте Гилева, полагаю, вообще не производится, т.к. памяти хватает и вся база закеширована.
второй тест, идущий следом тестирует диск в многопоточном режиме на максимуме загрузки, тест написан с учетом пробивания кэша контроллера дисков
25. starik-2005 3087 18.08.17 12:19 Сейчас в теме
(24)
второй тест, идущий следом тестирует диск в многопоточном режиме на максимуме загрузки, тест написан с учетом пробивания кэша контроллера дисков
С этим я не спорю. Просто те самые "попугаи" - это, в общем-то, первый тест, который однопоточный.
26. Gilev.Vyacheslav 1917 18.08.17 15:16 Сейчас в теме
(25) искажаете,
есть операции типа открытия элементов интерфейса, которые коррелируют с тестом и есть операции, которые работают фоном, пользователь их не видит, но они например делают закачку данных многопоточно из другой системы - разные тесты для разных операций
17. caponid 17.08.17 15:24 Сейчас в теме
А в чем собственно проблемы? - оценка в гилевских попугаях не имеет никакого отношения к реальной работе.
Почему собственно задумались об повышении производительности железа ?
На каких то операция пользователям некомфортно... или вылазят блокировки?

Может для начала надо посмотреть планы выполнения запросов, настройки SQL сервера, адекватность индексов и кеша.
Системные метрики по памяти, дисковым очередям и прочее..
Посмотреть на учет - может не закрываются в 0 остатки регистров накопления/бух итогов - то, что накопилось с течением времени и вызывает деградацию производительности системы.

Сравнение однопоточного файлового и многопоточного серверного вариантов не имеет практического смысла.

Сервер 1с на виртуалке с е5-2699 2.2Г и 32Гб памяти, база на данный момент 800 гиг с приростом 20-30 гиг в месяц
Сервер SQL на таком же проце с 64Гб
- нет никаких проблем с производительностью за последние пол года точно.
Восьмой; +1 1 Ответить
27. Gilev.Vyacheslav 1917 18.08.17 15:18 Сейчас в теме
(17)
е5-2699
у вас другой и явно более быстрый процессор, но при этом вы человеку говорите что дело не в железе
29. DAL 18.08.17 15:46 Сейчас в теме
(27)Во всем виноват 1С! Как всегда)))
33. caponid 18.08.17 18:06 Сейчас в теме
(27)
у вас другой и явно более быстрый процессор, но при этом вы человеку говорите что дело не в железе


Да, дело не железе, а в одном проблемном документе - заказе.
Тормоза при проведении заказа клиента на УТ11 ( На проведение уходит почти 10 сек иногда, а иногда и за 3-4 проводится.)
так что нужно смотреть на реальных данных что в эти моменты происходит.

Нормально спроектированная и отлаженная система на том же самом оборудовании при увеличении объема данных не будет деградировать.
И смысл сразу валить на железо на основании попугаемеров нет.
Fox-trot; +1 Ответить
34. tailer2 18.08.17 18:11 Сейчас в теме
(33) вычисляет что-нибудь, вместо того, чтобы тупо записать заранее вычисленные циферки
35. Gilev.Vyacheslav 1917 22.08.17 15:41 Сейчас в теме
(33) если проблема массовая, носит общий характер, то проблема с высокой вероятностью связана и с железом в том числе
если есть отдельная операция, которая написана программистом с ущербной днк ))), то дело в таком случае и в железе и в коде
то что плохой код это ни как не характеризует железо,
и основание валить в том числе на железо на основе теста есть и еще какое
ускорять можно и кодом и железом
36. caponid 23.08.17 15:59 Сейчас в теме
(35)
то проблема с высокой вероятностью связана и с железом в том числе

Вполне возможно, что проблема в железе, но:
Тест разве проводит низкоуровневые проверки? - он оперирует общей производительностью системы, которая складывается и из программных факторов, таких как настройка ОС, СУБД, конфигурации.
Т.е. три четверти теста зависит от программных настроек, причем больший вклад дают конфигурация и СУБД.

И на что тогда надо обратить первым внимание? на железо?

PS: Железо уже в наличии. оно есть и мгновенно не меняется. Самое простое что можно "быстро" с ним сделать - это добавить оперативки. А проще всего проверить в первую очередь конфигурацию и настройки СУБД - это займет меньше времени и средств.

PSS: По собственному опыту:
Удаление лишнего условия при соединении в запросе позволило увеличить производительность этого запроса на порядки.
Установка правильно порядка измерений в регистрах - еще прирост производительности (селективные индексы).
Перенос одного из условий отбора вирт таблицы регистра в секцию "ГДЕ" - тоже прирост выполнения в 3-4 раза.
Организация учета, что бы закрывались в 0 таблицы остатков (устранение "пересортов" по вроде бы неважным измерения) - еще плюс..

В большинстве случаев надо не сверх-быстро - а стабильно, т.е. одинаковое время на операции с увеличеним данных вне зависимости от их объемов как в месяц так и проводок в секунду. И тут железо стоит на последнем месте.
Если добился стабильности - тогда можно переходить на новое железо - эффект будет заметен.
37. Gilev.Vyacheslav 1917 23.08.17 17:06 Сейчас в теме
(36) E5620 не сочетается с
Железо уже в наличии

ну да, купили унылую хрень и думаете "оно есть и мгновенно не меняется"
не в теории, а на практике когда есть желание у Заказчика решать вопросы мы помогли и за день организовали новое железо, вот отзыв http://www.gilev.ru/lamoda/
и главное, это замена заметно помогла решить вопрос

PSS: По собственному опыту:
Удаление лишнего условия при соединении в запросе позволило увеличить производительность этого запроса на порядки.
пока запрос не оптимален, его надо оптимизировать, но если дальше оптимизация не возможна, вот тут то замена E5620 на нормальный проц скажется очень
как показывает практика, руководство охотней выделяет суммы как раз на апгрейд, а не колупания программиста, хотя важно со всех сторон решать задачу
причем кодом решение проблемы может происходить значительно дольше чем железом

думаю вам будете интересен http://www.gilev.ru/training/
22. ImHunter 327 17.08.17 17:00 Сейчас в теме
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот