Нагрузочный тест для 1с 83 предприятие. Стандартный нагрузочный тест

Доброго времени суток, уважаемые.
Данная заметка является подсказкой мне, и остальным.
Данная информация пригодиться новичкам для создания и оптимизации базы 1С на сервере SQL

Когда у тебя нет опыта работы с серверной частью 1С, то при появлении такого желания и/или необходимости появляется не мало нюансов и не очевидностей.
Печально, что даже такой простой квест, как выбор сервера под 1С не гарантирует успеха, и вы можете столкнутся с его крайне медленной производительностью.
Вот на этапе выяснения, что не так, и может понадобиться понимание того в какой последовательности и что делать.
Начинаем. Не забудьте сделать бекап данных.
Мой сервер базируется на Windows Server 2012 R2 standart, и SQL 2012.
У вас могут быть другие входящие, это не важно (сейчас).
Мы взяли Комплексную поставку УТП (в нее входит 10 клиентских лицензий, сервер (только 32 бит), и конфигурации ЗУП, УТ, Бухгалтерии, и сама УТП. Примечательно что франзайзи во всю хотели включить отдельные поставки, и лучше сразу КОРП. Анализ показал что это лишнее, и дешевле брать комплексную конфигурацию.
При подборе железа вам важно помнить, что в клиент-серверном варианте работе 1С нужно, чтобы частота работы процессора была максимальна, как и частота работы памяти (помните об этом, выбирая железо). (то есть Hyper трейдинг и всякие С1-2-3 state лучше отключить в BIOS).
Так же надо «физически» разносить файл базы (MDF) и лога (LDF) на отдельные жесткие, а не логические диски.
И если для файловой версии оптимально будет рекомендовать SSD, то тут, не все так очевидно.
Зайдите на форум Гилева, чтобы ознакомиться с «загадками», возникающими в попытке улучшить производительность 1С. Много интересного.
В моем случае коллеги админы выдели мне лезвие на блейд сервере, с 2мя физ.процессорами AMD Quad-Core Opteron(tm) Processor 2354, с 16 Гб (667 МГц). Система на 2 дисках в зеркале. Диски под базу выделялись по Fiber chanel, на HP EVA.
Сейчас ищу другую конфигурацию, но пока надо и на этом пожить.
И вот на этапе внедрения, пока ведется анализ как переносить данные из другой ERP системы, 1С программист обратил мое внимание на медленную работу, и долгое проведение документов. То есть систему еще не эксплуатируют, а она уже тормозит и помирает, а перепроведение раза в 3 медленнее, чем у человека на ноутбуке, а с этим еще и люди работать должны будут (3-4 основных, и 25-40 табельщиков).
Не порядок.
Он порекомендовал использовать тест Гилева (легко гуглится его сайт), у которого полного сервисов поддержки, и информации. Чем и воспользовался.
Тест показал что все плохо, и рекомендованное число пользователей отсутствует.
Посмотрев повнимательнее я понял что база и лог хоть на разных дисках - но логических.
И вот для исправления этого и сделал скриншоты и эту памятку на будущее себе и другим:

Создание базы данных в SQL server management studio. Базу и лог разносим на разные физические диски.


Методе восстановления выбираем Simple


Создаем новую базу через клиента 1С на компьютере


Выбираем добавление информационной базы. В нашем случае без конфигурации.


Задаем называние. Здесь любое. Лучше как на сервере.


Заполняем данные. Когда указывал на сервере, имя сервера указывал 127.0.0.1 - иное не работало.


здесь ничего не меняем


Делаем загрузку нашей информационной базы (предварительно имеющейся или новой, например теста)


Собственно выбор базы. Я загружаю тест Гилева для платформы 8.3


Подтверждаем

Подтверждаем



Итог теста. Еще все плохо, но рекомендованное число пользователей больше требуемого, что хорошо.

P.S. Не забывайте делать бекап.
P.P.S запуская тест Гилева в тестовой базе, которая расположена в тех же местах хранения что и любая боевая - имейте ввиду, что как минимум Лог файл стремиться занять все свободное место, что чревато остановкой боевой базы и не прохождением теста!!!
P.P.P.S так же помните, что SQL при работе использует TEMP базу, находящуюся там же, где установлен SQL (по умолчанию на C).
Поэтому доступ к этой базе желательно так же улучшить.

Так же информация в помощь - Effector Saver позволяет сохранять 1с базы
Бекапить все остальное смысла мало, так как в моем случае лицензии программные и при переносе на другое железо лицензии слетают.

Из дополнительного.
Если Вам захочется дать пользователям домена безнаказанно создавать любые БД средствами 1С, то учетной записи службы сервера 1С сделать доменную учетку, имеющую право создавать базы без всяких сисадминов вполне достаточно,
при этом логин и пароль в свойствах информационной базы писать не надо…

Для ролей сервера 1С, сервера СУБД MS SQL 2008 для 50 пользователей.

Согласно сервер-эксперту , собираем железо:

Выбираем платформу: IBM x3650 M3
Выбираем процессор: Intel Xeon E5506 - 1шт.
Выбираем оперативную память: 4 планки по 4Гб
Выбираем жёсткий диск: 3 SAS по 146 Гб RAID5

Используемое ПО:

ОС MS Windows 2008 x64
СУБД MS SQL 2008 x64
Сервер 1С 8.2 х64

Тестовая среда: для проведения нагрузочного тестирования использовалась конфигурация 1С 8.2: «Стандартный нагрузочный тест».

Ход тестирования:

На локальном сервере была запущена клиентская сессия 1С в режиме агента и в режиме тестирования.
В тестовой конфигурации был указано начальное количество эмулируемых стандартных пользователей 1С, создающих и удаляющих документы и отчеты, равное 20. Шаг увеличения количества пользователей, после проведения тестов был выставлен равный 20 пользователям.

Изначально (без пользовательских подключений) СУБД занимает 569 Мб оперативной памяти (созданы 2 БД: конфигурация 1С 8.2: УПП и тестовая конфигурация), занятая память системой составляет 2,56 Гб.
В ходе тестирования (до 110 пользователей) память под СУБД выделяется до 12 Гб, одна тестовая сессия 1С занимает 55 Мб (55Мбх200=11Гб). Для сравнения - одна реальная пользовательская сессия (клиентское приложение 1С) занимает около 300 - 500 Мб. Размер памяти, выделяемой для клиентского приложения 1С, указан для пользователя, работающего в стандартной конфигурации 1С: Торговля или 1С: УПП. Служба сервера 1С (rphost) практически не использует ОП, так как она лишь транслирует запросы от клиентской части к СУБД (по стандарту используется порт TCP 1541 и TCP 475 для сервера защиты 1С).

Использование ресурсов ЦП разделялось между службой сервера 1С (rphost) и службой СУБД (sqlservr). При нагрузке в 40 пользователей, rphost занимал 37% мощности ЦП, sqlservr занимал 30%. При нагрузке в 60 пользователей, rphost занимал 47% мощности ЦП, sqlservr занимал 29%.

Во время удаления созданных документов, служба sqlsrvr обращалась к дисковой подсистеме для записи на скорости до 6,5Мбайт/сек (около 52Мбит/сек).

Нагрузка на сеть между сервером 1С и СУБД (на локальных интерфейса lookback) составляла 10 Мб/с.
Результат тестирования, выданный тестовой конфигурацией 1С:

Параметры: Запуск теста 000000006 от 24.05.2012 12:44:16
Стандартный нагрузочный тест, версия 2.0.4.11
Начало тестирования 23.05.2012 12:36:39. Время выполнения: 57,1 минут.
Условия тестирования
«Сервер 1С: Предприятия: test
Имя информационной базы: testcenter_82
Виртуальные пользователи: TEST,»

Выводы:

Необходимо ослабить конфигурацию сервера, так как текущая является избыточной на 100% для 50 пользователей.
Необходимо выполнить тестирование, используя второй сервер для запуска эмулируемых пользователей и проверить нагрузку на сеть, ожидаемая нагрузка - 10 Мб/сек.
Архитектура 1С состоит из 4-х блоков: сервер 1С, СУБД, сервер защиты 1С и клиент 1С. В данном тесте все эти функции были запущены на одном сервере.

При большой нагрузке на сервер 1С есть следующие рекомендации:

Разносить роли сервера 1С, сервера СУБД, сервера защиты 1С и клиентские приложения 1С (для большего быстродействия клиентские приложения 1С лучше запускать на терминальном сервере).
На сервере СУБД необходимо использовать следующую структура для систем хранения данных: ОС должна располагаться на RAID 1, файлы данных СУБД (.mdf, .ndf) на отдельном RAID 0, файлы журнала (.ldf) на отдельном RAID 0, временные файлы и файл подкачки на отдельном диске.

Продукты по бухгалтерскому и управленческому учету компании 1С наиболее распространены на территории РФ. Тысячи компаний ведут свой бизнес, опираясь на типовые и специализированные конфигурации 1С. При таком массовом использовании, регулярно возникает ряд вопросов по оптимизации бюджета на ПО и разумному использованию ресурсов. Не утихают споры вокруг серверных частей данного комплекса, в частности – на какой операционной системе базировать сервер 1С и какой СУБД доверить обработку баз 1С. В ходе наших тестов мы постараемся ответить на эти вопросы.

Участники тестирования

Операционная система MS Server и СУБД MS SQL

  • Фирма 1С открыто позиционирует эту связку как основную рабочую модель, соответственно продукты 1С создаются в первую очередь для нее
  • Наличие протокола прямого скоростного обмена информацией SharedMemory
  • Есть официальная техническая поддержка и сервисные контракты
  • Есть база знаний и тонны информации по инсталляции и тонкой настройке 1C+MS SQL

Операционная система Unix и СУБД PostgreSQL

  • Система полностью бесплатна (кроме лицензии на сервер 1С:Предприятие)
  • Имеется возможность гибкой настройки множества параметров, улучшающих работоспособность СУБД
  • Заявлена поддержка СУБД PostgreSQL продуктами 1С
  • Есть возможность репликации баз

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

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

Методы тестирования

В наших испытаниях мы будем опираться на два метода синтетической генерации нагрузки и имитации работы пользователей в 1С. Это тест Гилева (TPC-1C) и специальный тест 1С «Тест центр» из инструментария 1С:КИП со специальными сценариями работы пользователей.

Тест Гилева (TPC-1C)

Тест Гилева принадлежит к разделу универсальных кроссплатформенных нагрузочных тестов. Он может использоваться как для файловой, так и для клиент-серверной архитектуры 1С:Предприятие. Тест измеряет количество работы в единицу времени в одном потоке и подходит для оценки скорости работы однопоточных нагрузок, включая скорость прорисовки интерфейса, влияния ресурсных затрат, перепроведения документов, процедур закрытия месяца, расчета зарплаты и т.п. Универсальность позволяет делать суммарную оценку производительности, не привязываясь к одной конфигурации платформы. Результатом теста является тотальная оценка измеряемой системы 1С, выраженная в условных единицах.

Специализированный тест из инструментария «Тест центр» 1С: КИП

Тест-центр – инструмент проведения многопользовательских нагрузочных испытаний систем на базе 1С:Предприятие 8 (см. рисунок 1). С его помощью можно моделировать работу компании без участия реальных пользователей, что позволяет оценивать применимость, производительность и масштабируемость информационной системы в реальных условиях. Система представляет собой конфигурацию, предоставляющую механизм управления процессом тестирования. Для тестирования информационной базы необходимо интегрировать конфигурацию Тест-центра в конфигурацию тестируемой базы при помощи сравнения и объединения конфигураций. В результате объединения, к метаданным тестируемой базы будут добавлены объекты и общие модули, необходимые для работы Тест-центра.

Рисунок 1 - Схема работы «Тест центр» 1С: КИП

Таким образом, используя инструментарий 1С: КИП, на основании имеющихся данных в реальных производственных баз 1С - программист формирует полноценный автоматический сценарий тестирования, основанный на перечне документов и справочников, ключевых для данного типа конфигурации (заявка на расходование средств, заказ поставщику, реализация товаров и услуг и т.д.). При запуске сценария Тест-центр будет автоматически воспроизводить многопользовательскую деятельность, описанную в сценарии. Для этого Тест-центр создаст необходимое количество виртуальных пользователей (в соответствии со списком ролей) и запустит выполнение действий.

Параметры тестирования

При настройке сценариев тестирования для достоверной имитации одновременной работы большого количества пользователей задаются определенные параметры тестирования для каждого типа документа (см. таблицу 1):

  • Документ – указывает конкретный документ в рабочей базе, на основе которого будет производиться нагрузочное тестирование
  • Приоритет запуска – формирует порядок запуска тестов для каждого типа документов
  • Количество документов – определяет объем формируемых тестовых документов
  • Пауза, секунд – задержка при запуске серии тестов, в рамках одного типа документов
  • Количество строк в документе – информационный указатель, сообщающий о «массивности» тестового документа, что влияет на время обработки и нагрузку на ресурсы

Тесты выполняются в 3 итерациях, результаты записываются в таблицу. Таким образом, полученные итоги тестирования, измеряемые в секундах, наиболее реалистично и объективно отображают уровень производительности баз 1С в условиях, максимально приближенных к реальным (см. таблицу 3.1 и 3.2).

Таблица 1. Параметры тестовых сценариев

Счет покупателю
Документ Приоритет запуска Количество документов Пауза, секунд Количество строк в документе
Роль 1 Счет покупателю 1 25 51 62
Поступление товаров 2 25 80
Реализация товаров 3 25 103
Платежные поручения 4 25 1
Возвраты покупателя 5 25 82
Роль 2 5 10 65 79
Поступление товаров 1 22 80
Реализация товаров 2 25 103
Платежные поручения 3 25 1
Возвраты покупателя 4 25 75
Роль 3 Счет покупателю 4 15 45 76
Поступление товаров 5 26 80
Реализация товаров 1 52 103
Платежные поручения 2 26 1
Возвраты покупателя 3 32 90
Роль 4 Счет покупателю 3 45 38 70
Поступление товаров 4 30 80
Реализация товаров 5 30 103
Платежные поручения 1 20 1
Возвраты покупателя 2 20 86
Роль 5 Счет покупателю 2 30 73 76
Поступление товаров 3 30 80
Реализация товаров 4 30 103
Платежные поручения 5 18 1
Возвраты покупателя 1 18 91
Роль 6 Счет покупателю 1 40 35 86
Поступление товаров 2 40 80
Реализация товаров 3 40 103
Платежные поручения 4 40 1
Возвраты покупателя 5 40 88
Роль 7 Счет покупателю 5 25 68 80
Поступление товаров 1 25 80
Реализация товаров 2 25 103
Платежные поручения 3 25 1
Возвраты покупателя 4 25 90
Роль 8 Счет покупателю 3 25 62 87
Поступление товаров 4 25 80
Реализация товаров 5 25 103
Платежные поручения 1 25 1
Возвраты покупателя 2 25 92
Роль 9 Счет покупателю 2 20 82 82
Поступление товаров 4 20 80
Реализация товаров 5 20 103
Платежные поручения 1 20 1
Возвраты покупателя 3 20 98
Роль 10 Счет покупателю 4 50 2 92
Поступление товаров 1 50 80
Реализация товаров 2 50 103
Платежные поручения 5 50 1
Возвраты покупателя 3 50 98

Таблица 2. Технические характеристики тестового стенда

№п\п Роль системы CPU\vCPU RAM, Гб Дисковая система ввода\вывода
1 Сервер терминалов – виртуальная машина для управления тестами 4 ядра
2.9 GHz
16 Гб Intel Sata SSD Raid1
2 Сценарий 1. Сервер 1С + СУБД аппаратный Intel Xeon E5-2690
16 ядер
96 Гб Intel Sata SSD Raid1
3 Сценарий 2. Сервер 1С + СУБД виртуальные 16 ядер
2.9 GHz
64 Гб Intel Sata SSD Raid1
4 Сценарий 3. Сервер 1С виртуальный 16 ядер
2.9 GHz
32 Гб Intel Sata SSD Raid1
5 Сценарий 4. Сервер СУБД виртуальный 16 ядер
2.9 GHz
32 Гб Intel Sata SSD Raid1
6 Программное обеспечение
  • Microsoft Windows Server 2016 DataCenter
  • Microsoft Windows Server 2016 Standart
  • Microsoft SQL Server 2016 SP1 (13.0.4001.0)
  • Гипервизор Hyper-V
  • Сервер 1C:Предприятие 8.3.10.2667
  • CentOS 7.4.1708 (x64)
  • PostgreSQL 9.6.5+Patch PostgreSQL 9.6.5-4.1C
7 Конфигурации 1С
  • Однопоточный синтетический тест платформы 1С:Предприятие + Многопоточный тест записи на диск (2.1.0.7) Гилёв Вячеслав Валерьевич
  • Размер 0,072 Гб
  • Конфигурация: Бухгалтерия предприятия КОРП, редакция 3.0 (3.0.52.39)
  • Приложение: Тонкий клиент
  • Вариант интерфейса: Такси
  • Размер 9,2 Гб
  • Платформа: 1С:Предприятие 8.3 (8.3.10.2667)
  • Конфигурация: Управление торговлей, редакция 11 (11.3.4.21)
  • Режим: Серверный (сжатие: усиленное)
  • Приложение: Тонкий клиент
  • Локализация: Информационная база: русский (Россия), Сеанс: русский (Россия)
  • Вариант интерфейса: Такси
  • Размер 11,8 Гб

Таблица 3.1 Результаты тестирования с помощью теста Гилева (TPC-1C). Оптимальным считается наибольшее значение

Таблица 3.2 Результаты тестирования с помощью специального теста 1С:КИП. Оптимальным считается наименьшее значение

Операционная система Microsoft Server Операционная система класса Unix
Перечень тестов (среднее значение по итогам серии из 3 тестов) Аппаратный сервер 1С+СУБД, протокол SharedMemory Виртуальный сервер 1С+СУБД, протокол SharedMemory Аппаратный сервер 1С и аппаратный сервер СУБД, протокол TCP-IP Виртуальный сервер 1С и виртуальный сервер СУБД, протокол TCP-IP
Проведение тестов 1С:КИП на существующей базе, конфигурация Бухгалтерия Предприятия
Оборотно сальдовая ведомость 1,741 сек 2,473 сек 2,873 сек 2,522 сек 13,866 сек 9,751 сек
Проведение возврата товаров от покупателей 0,695 сек 0,775 сек 0,756 сек 0,781 сек 0,499 сек 0,719 сек
Проведение платежных поручений 0,048 сек 0,058 сек 0,063 сек 0,064 сек 0,037 сек 0,065 сек
Проведение ПТИУ 0,454 сек 0,548 сек 0,535 сек 0,556 сек 0,362 сек 0,568 сек
Проведение реалиизации товаров и услуг 0,667 сек 0,759 сек 0,747 сек 0,879 сек 0,544 сек 0,802 сек
Проведение счета на оплату 0,028 сек 0,037 сек 0,037 сек 0,038 сек 0,026 сек 0,038 сек
Расчет калькуляций себестоимости 3,071 сек 3,657 сек 4,094 сек 3,768 сек 15,175 сек 10,68 сек
Проведение тестов 1С:КИП на существующей базе, конфигурация Управление Торговлей
Проведение и возврат от клиента 2,192 сек 2,113 сек 2,070 сек 2,418 сек 1,417 сек 1,494 сек
Проведение и возврат товаров поставщику 1,446 сек 1,410 сек 1,359 сек 1,467 сек 0,790 сек 0,849 сек
Проведение заказа клиента 0,355 сек 0,344 сек 0,335 сек 0,361 сек 0,297 сек 0,299 сек
Проведение пересчета товаров 0,140 сек 0,134 сек 0,131 сек 0,144 сек 0,100 сек 0,097 сек
Проведение поступления ТУ 1,499 сек 1,438 сек 1,412 сек 1,524 сек 1,097 сек 1,189 сек
Проведение реализации ТУ 1,390 сек 1,355 сек 1,308 сек 1,426 сек 1,093 сек 1,114 сек
Проведение РКО 0,759 сек 0,729 сек 0,713 сек 0,759 сек 0,748 сек 0,735 сек
  1. В специальном тесте 1С операции «чтения данных и сложных вычислений», такие как «Оборотно-сальдовая ведомость» и «Расчет калькуляций себестоимости» в несколько раз быстрее выполняются на СУБД MS SQL от Microsoft.
  2. При операциях «записи данных и проведения документов» в большинстве тестов лучший результат показывает СУБД PostgreSQL, оптимизированный для 1С.
  3. Синтетический тест Гилева также показывает преимущество PostgreSQL. Связан данный факт с тем, что синтетический тест основан на измерении скорости создания и проведения определенных типов документов, что считается также операциями «записи данных и проведения документов».

Закончим с кроссплатформенным сравнением, перейдем к сравнениям внутри каждой системы:

  1. Ожидаемо, тесты 1С на аппаратной платформе показывают результаты лучше, чем на виртуальной. Разница в результатах специального теста 1С в обоих случаях невелика, что свидетельствует о постепенной оптимизации производителями виртуальных гипервизоров.
  2. Также ожидаемо, что использование технологии разделяемой памяти (SharedMemory) ускоряет процесс обмена данными между сервером 1С и СУБД. Соответственно, показания тестов немного лучше, чем у схемы с сетевым взаимодействием этих двух сервисов посредством протокола TCP-IP.

Можно сделать вывод, что при верной настройке 1С и СУБД, можно добиться значительных результатов даже на бесплатном программном обеспечении. Поэтому при проектировке новой ИТ-структуры для 1С требуется учитывать уровень нагрузки на систему, тип превалирующих операций в базе, имеющийся бюджет, наличие специалиста по нестандартным СУБД, необходимость интеграции с внешними сервисами и т.д. Исходя из этих данных, уже можно подбирать требуемое решение.

Читайте продолжение тестирования .

Чтобы понять реальную нагрузку на оборудование, необходимо было провести тест производительности терминального сервера 1С в продакшене, чем я и занимался совсем недавно, а теперь хочу представить результаты на всеобщее обозрение.

Подробнее читайте в статье.

Другие статьи об 1С вы найдете в соответствующей рубрике — .

В нескольких предыдущих статьях по 1С я занимался расчетами конфигурации серверов под различные нагрузки, генерируемые стараниями главных пользователей 1С, а именно сотрудниками бухгалтерии и отделов продаж. Задачи бухгалтеров упираются не только в составление отчетов и внесение данных в программу и потому для них более предпочтительным является полноценный терминальный доступ и уже работа со всем необходимым оттуда (). Для менеджеров все значительно проще и для них вполне приемлемым сценарием использования является публикация приложения ().

Выводить сервер в продакшн без проведения реального тестирования я не рискнул и потому было организовано масштабное тестирование. Его плюсом лично для меня являлось ещё и то, что я мог бы подкрепить (или опровергнуть) на практике свои теоретические расчеты, основой для которых были весьма субъективные показатели производительности рабочих станций сотрудников.

Тестовая среда

Итак, для тестирования был взят сервер с ЦП Intel Xeon E5-1650 v3 @ 3.50GHz, 128 ГБ RAM, 2*SSD в RAID 1 . На этом сервере развернута виртуальная машина, представляющая из себя как раз терминальный сервер, с установленными на нем приложениями 1С 8.2, 1С 8.3, MS Office 2013 Pro.

Сразу скажу, что характер нагрузки был смешанный, то есть были клиенты, работающие через RemoteApp и были те, кто заходил полноценно по RDP и использовал необходимые для своей работы программы (не только 1С, но и Office). Распределение было примерно следующим: 24 сессии RemoteApp, 5 клиентов RDP.

Перед пользователями стояла задача в течение двух часов каждые 30 минут заходить в приложения и выполнять в них повседневные задачи — строить отчеты, выводить данные на печать, делать проводки документов, экспорт данных в другие форматы и т.п. Главное то, что не было цели положить сервер, была цель дать реальную среднестатистическую повседневную нагрузку .

Результаты тестирования

Началось все как обычно — пользователи с третьего пинка уже от руководителей отделов и выше все же начали заходить в 1С и выполнять рутинные задачи. Это все продолжалось недолго и у меня был всего один шанс, чтобы снять показатели производительности сервера максимально приближенные к реальной нагрузке. Вот что я получил в итоге:

Оперативка (на виртуальном сервере была выставлена динамически выделяемая память, поэтому при необходимости текущий объем RAM постоянно изменялся в большую сторону):

Теперь необходимо проанализировать результаты и подвести итоги.

Анализ данных

Надо отметить, что расчеты по процессору оказались на редкость точными.

В статье эмпирическим путем я установил, что потребление ресурсов ЦП одной сессией 1С RemoteApp составляет в среднем 122,775 единиц производительности процессора (данные о производительности взяты с сайта www.cpubenchmark.net ). В другой статье — — я подсчитал ресурсы, необходимые для работы полноценной сессии RDP и они составили 4% от Core i5 4460, то есть это 0,04*6622 (данные все также с www.cpubenchmark.net ) = 264,88.

Итого получаем:

  • полноценная сессия RDP съедает 264,88 единиц производительности ЦП;
  • сессия 1C RemoteApp потребляет 122,775 единиц.

Вверху я упоминал, что было 24 пользователя RemoteApp и 5 RDP. Считаем:

24 * 122,775 + 5 * 264,88 = 4271

Относительный индекс производительности Intel Xeon E5-1650 v3 составляет 13477 единиц. То есть теоретически нагрузка на ЦП должна составлять в районе 32% (4271 / 13477 * 100).

На графике загрузки ЦП видно, что на интервале времени 10:30 — 10:50 ЦП загружен на 25 — 40% (пики не в счет). Конечно прямой линии нагрузки ЦП в 32% вы не получите, все равно будут колебания от минимумов к относительным максимумам, но в целом можно считать, что реальные данные согласуются с теоретическими. Кстати, чем больше будет пользователей на вашем сервере, тем более равномерным будет загрузка.

На самом деле более ценными оказались данные по оперативной памяти. По расчетам из прошлых статей у меня было:

  • 2ГБ на сессию RDP;
  • 100МБ на сессию RemoteApp.

То есть объем занятой памяти должен был составить максимум 12,4 ГБ + немного для ОС. Но, как выяснилось и как я в принципе и предчувствовал, это значение на практике представляло из себя совсем другую цифру. 1С оказалась очень жадной до оперативки, к моему сожалению. Более того, приложение ведет себя таким образом, что заняв однажды какой-либо объем, оно не считает нужным его освободить в тот момент, когда потребности в нем больше нет:

Ну разве нормально сожрать под 2ГБ оперативки и при этом сидеть ничего не делать (загрузка ЦП сессии 0%). Современные программисты абсолютно не заботятся об оптимальном использовании ресурсов. Лично меня, когда я учился в вузе, заставляли переписывать код приложения, если он был написан нерационально с точки зрения использования вычислительных ресурсов. Видимо квалификация современных прогеров упала ниже плинтуса, а может это просто подход — зачем оптимизировать уже написанный код, когда лучше заниматься разработкой нового функционала. В общем не суть, бомбануло да и ладно.

Из выделенных серверу 16ГБ «динамики», он съел их все и вероятнее всего требовал больше. По идее при нехватке оперативки ОС свопит на диск и в этом случае начинается сильная просадка по производительности. В моем случае такого не было и вероятнее всего это заслуга SSD, который вообще не показал практически никакой нагрузки — только два кратковременных пика за весь период теста (с 10:00 до 12:00). Тем не менее, как показывает практика, не советую экономить на оперативной памяти терминальных серверов.

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

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

Большинство существующих методов оценки производительности основывается на том или ином типе тестирования .

Можно выделить два основных типа тестирования: компонентное и интегральное.

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

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

Зеленый цвет графика в совокупности с некоторыми условно выбранными за эталоны показателями справа позволяет сделать кроссплатформенную обобщенную оценку «неплохой» производительности.

Как радоваться результатам теста

Вы получили в качестве результата некий индекс производительности (скорости). Не важно, хороший или плохой результат - это результат работы ПЛАТФОРМЫ на вашем «железе». В случае клиент - серверного варианта это результат сложной цепочки прохождения запросов по различным участкам. Вы получаете общий фактический результат, который определяется самым узким местом в системе. Узкое место есть всегда.

Другими словами, и настройки СУБД, и настройки ОС, и оборудование оказывают влияние на общий командный результат.

Какой сервер лучше

Данный тест, выполненный на конкретном сервере, дает результат по совокупности настроек hardware, операционной системы, субд и т.д. Тем не менее высокий результат на конкретном серверном оборудовании означает, что при соблюдении нормальных условий такой же результат будет на идентичном серверном оборудовании. Данный тест является бесплатной помощью в возможности сравнить установку 1С:Предприятие под Windows и Linux, три различных СУБД, поддерживаемых платформой 1С:Предприятие 8.

Безопасность теста

Тест абсолютно безопасен. Он не приводит к «падению» сервера (отсутствует «стресс»-алгоритм) и не требует предварительных мероприятий даже на «боевом» сервере. Конфиденциальных данных в результаты теста также не записываются. Собирается информация о параметрах CPU, RAM, HDD. Серийные номера устройств не собираются. Во всем этом можно легко убедиться - код теста 100% открыт. Никакой пересылки информации без вашего ведома невозможно.

Классификация TPC -A-local Throughput / TPC -1C-GILV-A

Тест относится к разделу универсальных интегральных кроссплатформенных тестов. Даже более того, он применим для файлового и клиент-серверного вариантов эксплуатации 1С:Предприятие. Тест работает для всех СУБД, поддерживаемых 1С.

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

С другой стороны это означает, что для точных расчетов заказного проекта тест позволяет сделать предварительную оценку перед специализированным нагрузочным тестированием .

Скачать тест

Данный тест не является коммерческим и его можно скачать бесплатно для 8.2 и бесплатно для 8.3 .

Технические подробности

Что происходит в тесте в рамках «одного» такта операции?

Особенности использования теста на субд PostgreSQL

Установите значение параметра standard_conforming_strings в конфигурационном файле postgresql.conf в значение ‘off’

Как замерить загруженность железа

Надо отметить, что сам по себе тест уже частично выполняет замер. Для более детальной картины рекомендую воспользоваться утилитой Марка Русиновича Process Explorer .

На рисунке показан пример замера для файлового варианта.