нет, мы не партнеры...)))
так что у нас только обычный ИТС.
мы сделаем демку УТ...
по результату напишу
так что у нас только обычный ИТС.
мы сделаем демку УТ...
по результату напишу
Вход в личный кабинет
Внимание! Данный форум является модерируемым.
Для получения к нему доступа необходимо зарегистрироваться или авторизоваться на сайте.
24.06.2014 17:04:53
нет, мы не партнеры...)))
так что у нас только обычный ИТС. мы сделаем демку УТ... по результату напишу |
|
|
|
25.06.2014 10:56:16
Насколько я Вас понял базы в клиент-серверном режиме работы и в качестве сервера 1С, баз данных и терминального используется один и тот же физический сервер? |
|||
|
|
25.06.2014 11:09:21
Типовые формы открываются быстро... секунда-две.
Если скрыть нижнюю панель в форме списка Партнеров быстрее открываться не стало. Возможно, что формирование списков и требует больше времени... но не 6 же секунд на открытие карточки Партнера или списка Партнеров))) В замере производительности основные временные затраты уходят на следующие процедуры: СписокПриАктивизацииСтрокиНаСервере(ТекущийПартнерВСписке) [Справочник.Партнеры.Форма.CRM_ФормаСписка] - 8% Если Выборка.ТипЗначения.СодержитТип(Тип) Тогда [ОбщийМодуль.CRM_КлиентыСервер] - 10% Если Выборка.ТипЗначения.Типы().Количество() <> 1 Тогда [ОбщийМодуль.CRM_КлиентыСервер] - 11% ОткрытьФорму("Справочник.Партнеры.ФормаСписка" [Справочник.Партнеры.Команда.Клиенты] - 53% То, что тормоза связаны с наполнением базы стало понятно в процессе тестирования демо-базы УТи ВСК... Учитывая, что в нашей базе в основном электронные письма и события, остальных данных совсем чуть-чуть, связано увеличение времени открытия скорее всего со считыванием данных о взаимодействиях. Встает вопрос - как бороться с этим? Ведь количество взаимодействий будет только расти... да и остальная информация начнет наполнять систему... Есть ли возможность отключения автоматического считывания сопряженных данных при открытии форм списка и элемента справочника Партнеры? То есть открывать с минимальным набором данных, а остальные подгружать по кнопке например... С тормозами при открытии входящих электронных писем, я так понял, поделать на сегодняшний день ничего нельзя? Ждем новых релизов платформы? На 8.3.5 проблема осталась? |
|
|
|
25.06.2014 11:12:23
Кэширование явно присутствует ... первое открытие форм справочников и форм элементов проходит значительно дольше, чем последующие... Отсюда вопрос - кэшируются какие данные? где кэшируются? непосредственно в клиентской сесии? где-то на сервере? может можно каким-то регламентным заданием их кэшировать? |
|||
|
|
25.06.2014 11:19:23
Да было бы круто )) |
|||||
|
|
25.06.2014 11:25:36
На мой взгляд аномальная деградация производительности для базы с 4 пользователями. Скорее всего сильный вклад дает именно оборудование и настройки ПО. Можете ответить по конфигурации оборудования (вопрос выше), если, конечно не секрет. |
|||
|
|
25.06.2014 11:33:24
|
|||
|
|
25.06.2014 11:38:56
Добрый день, Андрей!
Изменено: |
|||||
|
|
25.06.2014 11:49:59
Наталья, спасибо!
Но этой информации мало. Нужна информация по нагрузке и доп. информация по оборудованию. Сколько пользователей в среднем единовременно работает, размер базы и режим работы (клиент-сервер или файловая), СУБД (если используется). А так же характеристики серверного оборудования используемого (хотя бы краткие ОЗУ/ЦП/RAID из скольки дисков и их RTM) под сервер 1С и сервер БД. |
|
|
|
25.06.2014 12:19:59
Пользователей в среднем работает 15-20. Размер базы - около 13 ГБ В базе, на сегодняшний день используется только блок CRM, ведется база клиентов, создаются события, задачи. Используется встроенный почтовый клиент. Режим работы базы клиент-серверный. Сервер баз данных и сервер приложения разнесены на разные машины. Пользователи работают в тонких клиентах с терминального сервера. Сервер БД (текущий): Один четырехядерный Intel Xeon E5620 2,4 ГГЦ, 12 ГБ ОЗУ, RAID 5 Windows 2008 R2 SP1 SQL 2008 R2 x64 (верия 10.50.1600.1) Сервер приложений 1С: Один четырехядерный Intel Xeon E5620 2,4 ГГЦ, 8 ГБ ОЗУ, RAID 5 Windows 2008 R2 SP1 Платформа 1С x64 версия 8.3.4.465 Сервер терминалов: Два четырехядерных Intel Xeon E5-2407 2,2 ГГЦ, 32 Гб ОЗУ, RAID 5 Windows 2008 R2 SP1 Сеть между всеми этими серверами везде 1 Гбит. По проведенным экспериментам можно сделать следующие заключения: 1. Время задержки при открытии форм не зависит от количества работающих пользователей. Даже с одним пользователем все тормозит. 2. На типовой торговле (демо-база) релиза 11.1.15.16 все летает. 3. На демо-базе УТи ВСК релиза 2.0.6.2 тормоза присутствуют, но в два раза меньше, чем на нашей рабочей базе. 4. Работа под полными правами незначительно ускоряет процесс открытия. |
|||
|
|
25.06.2014 12:28:30
Владимир:
1) Скорость вращения дисков на серверах 1C и БД (10K, другая или у Вас SSD)? 2) Предположу, что сервера БД и 1С это "виртуалки" на одном и том же физическом сервере? Если да, то используете Hyper-V или другую платформу для виртуализации? |
|
|
|
25.06.2014 13:28:13
Да, сервера - "виртуалки". На одном и том же физическом сервере. Используется VMware. Скорость винтов - 7200. |
|||
|
|
25.06.2014 14:51:19
Насколько я понял, скорость реакции системы при работе одного пользователя сравнима со скоростью реакции системы при многопользовательской работе. Давайте выберем самую тормозящую операцию (из ключевых) - проведение документа, запись элемента справочника, открытие формы списка и др. и посмотрим на каком именно компоненте системы тормозит (база данных, сервер приложения, сетевой обмен или еще что-то). Что это за ключевая операция?
Изменено: |
|||
|
|
25.06.2014 15:22:52
Винты нам тоже не нравятся)))
Достались в наследство... Как и VMware... Если можно, то чуть подробнее про разнесение серверов БД и 1С. Вроде бы раньше считалось их разнесение по разным машинам кошерным))) Если есть причины, по которым их лучше держать на одной машине, то мы с удовольствием их обсудили бы... тем более, что сейчас планируем закупать физический сервер под это... В качестве ключевой операции можно выбрать открытие формы списка или формы элемента справочника "Партнеры". Есть более волнующая операция - открытие формы документа "ЭлектронноеПисьмоВходящее" и создание нового документа "ЭлектронноеПисьмоИсходящее" при ответе и пересылке... Но, насколько, я понял тут проблемы в платформе... Так что - справочник Партнеры и его формы... |
|
|
|
25.06.2014 16:18:36
Владимир
С VMware у меня негативный опыт общения (была источником сильных тормозов при работе с системами). Даже Citrix Xenserver кажется более предпочтительным. А вообще если у вас "все" на платформе MS, то мне кажется самым разумным использование Hyper-V он ведь бесплатный (в определенных "размерах") и легковесный.
Разносить сервера 1С и БД имеет смысл, когда для функционирования системы необходимы доп. ресурсы, а «добавить» их в доступные серверные мощности невозможно. Например, явно видно, что процессорных мощностей недостаточно, однако еще один сокет добавить нельзя. При вашей нагрузке (размер базы, количество пользователей, перечне тормозящих мест) мне кажется, что разносить нет смысла (если только не запланировано увеличение числа автоматизированных рабочих мест с 20 до 80-100). Наоборот, стоит объединить, а так же отказаться от виртуализации, перенастроить сервер 1С (в части ограничений по использованию оперативной памяти) и СУБД. Лично я так бы и сделал. Так же, необходимо настроить взаимодействие 1С и MS SQL через протокол Shared Memory (т.е. не через TCP/IP, а через оперативную память физического сервера), это должно снизить время отклика системы.
В MS SQL Management Studio выполните, пожалуйста, следующий запрос: sel ect * fr om sys.dm_os_wait_stats order by wait_time_ms desc Благодаря ему получим обобщенную статистику по нагрузке на компоненты СУБД. Так же выполните запрос из вложения. Он покажет нам информацию о состоянии памяти выделенной СУБД. Запросы необходимо выполнять в «рабочее время». Никаких изменений в БД или настройки СУБД они не вносят. Покажите результаты запросов.
Изменено: |
|||||||
|
|
25.06.2014 17:05:59
Планируется увеличение количества пользователей до 50-60...
Во вложении результаты запросов. |
|||||||
|
|
25.06.2014 19:20:04
У Вас выделенная СУБД память используется в соотношении 55/45 для хранения участков базы данных (MS SQL хранит в памяти часто используемые данные - кэш, о котором вы выше спрашивали) и для хранения планов выполнения запросов (перед тем как выполнить запрос, MS SQL строит план его выполнения или подбирает оптимальный план из уже имеющихся, планы тоже хранятся в памяти для повышения скорости выполнения запросов, тоже кэш). На мой взгляд многовато для хранения планов (в рамках вашей системы). Давайте более детально посмотрим что за планы у Вас хранятся. Выполните запрос из вложения. Да, и как часто у Вас выполняется очистка процедурного кэша и пересчет статистики (регламентные операции в MS SQL)? |
|||||
|
|
26.06.2014 11:34:07
Очистка процедурного кэша производится раз в неделю.
Собрали трассировки на тестовой базе с отключенными регламентными заданиями и одним пользователем с полными правами. Результаты во вложении. |
|
|
|
26.06.2014 11:34:39
За один заход все не прикрепилось...
|
|
|
|
26.06.2014 14:14:16
Владимир,
в работе SQL я не увидел, каких либо проблем в виде "тяжелых" запросов (запросов выполняющихся долго). По трассировкам видно, что при исполнении всех (кроме «ответа на электронное письмо») операций сервер 1С многократно обращается (через СУБД MS SQL) к базе данных для получения различной информации. Таких запросов очень много, но все они выполняются практически мгновенно (исполнение каждого длится в среднем по 1-3 мс). Эти запросы (несмотря на их количество), не являются источником низкой производительности. В части операции «ответ на электронное письмо» 1С к БД практически не обращается за информацией, а это значит что львиная доля трудозатрат не на стороне БД. Вероятнее всего, проблема именно на стороне сервера 1С (или в его взаимодействии с сервером БД). По логам «замеров производительности» снятым на стороне 1С, видно, что почти все затратные команды (строки кода) выполняются либо на сервере, либо «обрабатываются сервером». СУБД при выполнении запросов (на чтение информации, создание временных таблиц и др.) отрабатывает очень быстро, что позволяет локализовать проблему на уровне сервера 1С или же взаимодействия между сервером 1С и сервером БД. Следующий шаг – более детальный анализ замеров времени собранных на стороне 1С. Вероятно, получится найти временное решение путем корректировки кода. Например, снижение количества обменов данными между клиентскими машинами и сервером 1С, изменение алгоритмов расчета на более производительные. Еще я бы всерьез задумался об отказе от разделения серверов 1С и БД (Вы итак стоите перед движением в этом направлении). Теперь насчет использования памяти. Теперь у Вас есть запрос, который позволяет увидеть, чем в данный момент занята ОЗУ сервера БД. Помониторьте какое-то время состояние памяти накануне выполнения регламентной операции по очистке процедурного кэша. Если «SQL Plans» отнимает более 15-20% от всей памяти выделенной СУБД это не очень рациональное использование памяти. В таком случае запустите запрос, который показывает, какими именно планами заполнена память (в моем предыдущем сообщении). Например, видим такой результат: Обратите внимание на первую строчку. Если вы видите, что в памяти хранится много «adhoc» запросов, которые выполняются однократно (т.е. перед выполнением формируется план, сохраняется в памяти, но больше этот план не используется и лежит в памяти), необходимо включить в MS SQL настройку «Optimize for adhoc workloads». Это заставит SQL сохранять в памяти планы, только если запрос выполняется 2 и более раз. На примере вы можете увидеть, что под «adhoc» запросы в памяти выделено около 2ГБ, при этом в памяти хранится 19120 планов, для запросов которые выполнялись однократно. Эти планы занимают 1,2 ГБ из 2ГБ, при этом ценности никакой не несут (план ценен, если используется несколько раз). Если же основное место занято «Prepared» запросами: Как у Вас (одноразовые планы adhoc запросов занимают всего 54мб), но процедурный кеш все равно занимает большой объем ОЗУ, следует увеличить частоту очистки процедурного кеша (с обязательным предварительным перестроением статистики). Посмотрите насколько он разрастается за один, два рабочих дня, сколько памяти у Вас остается в состоянии "Free memory". Лучше когда СУБД имеет запас свободной памяти - это снизит риск резкой деградации производительности. Когда, например срочно требуется память, но доставать ее приходится за счет удаления из памяти/считай кэша часто использующихся пользователями данных, а значит эти данные при необходимости будут читаться с диска (что ощутимо медленнее памяти, особенно для 7200RTM).
Изменено: |
|
|
|
26.06.2014 16:22:56
Спасибо огромное за помощь!
каким-то образом можно проанализировать что в процессе открытия формы занимает какое количество времени? |
|||||||
|
|
26.06.2014 20:08:59
Давайте попробуем поэкспериментировать с открытием элемента справочника «Партнеры». Мне кажется, что это самая наглядная в плане ускорения операция. Нас будет интересовать несколько функций/процедур, начнем с: Справочник.Партнеры.CRM_ФормаЭлемента. КомпанияЧастноеЛицоПриИзменении(Элемент) Процедура вызывается в событии «При открытии» и при изменении значения реквизита «ЮрФизЛицо». 1. Попробуйте создать дубль процедуры с другим наименованием (допустим «КомпанияЧастноеЛицоПриИзменении_Сервер») и укажите у нее предикат компиляции «&НаСервере», вместо «&НаКлиенте». 2. Закомментируйте вызов процедуры «КомпанияЧастноеЛицоПриИзменении» в событии «ПриОткрытии» 3. Поместите в самом конце события «ПриСозданииНаСервере» вызов процедуры «КомпанияЧастноеЛицоПриИзменении_Сервер». Должно получиться, что-то вроде текста прикрепленного к сообщению (изменения "выделены" комментариями «ААА+» и «ААА-»). 4. Проверьте работоспособность функционала. Соберите логи замером производительности и оцените влияние изменений на скорость открытия формы. В данный момент выполнение алгоритмов этой процедуры занимает чуть больше 1 секунды: Давайте посмотрим как выглядит список самых трудоемких строк кода в замере после вышеописанных изменений. |
|||||||||
|
|
||||||||
{{ formTitle ? formTitle : 'Заказ обратного звонка' }}
{{ formDescription }}
Сообщить об ошибке