Open
Close

Нагрузочное тестирование 1с. Стандартный нагрузочный тест. Операционная система ms server и субд ms sql

Результаты нагрузочного теста TPC-1 производительности 1С по Гилеву для конфигурации с файловой базой данных:

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

  • временем операции
  • временем ожидания оборудования
  • временем логических ожиданий вроде блокировок

При этом ключевой характеристикой является скорость операции.

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

Быстродействие системы и планирование необходимых вычислительных ресурсов для ее реализации является обязательной операцией при любом внедрении или изменении существующей ИТ системы.

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

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

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

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

В нашем тесте, как раз и используется такой подход.

Мы получили в качестве результата некий индекс производительности (скорости). Это результат работы платформы в целом на нашем «железе». В случае клиент — серверного варианта это результат сложной цепочки прохождения запросов по различным участкам. Вы получаете общий фактический результат, который определяется самым узким местом в системе. Настройки СУБД, и настройки ОС, и оборудования оказывают влияние на общий результат производительности системы.

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

Стандартный нагрузочный тест предназначен для оценки производительности серверного оборудования и программного обеспечения в так называемых «Стандартных пользователях 1С». Основная область применения данного теста – выбор конфигурации серверного оборудования и программного обеспечения для целей конкретного внедрения.

Решаемые задачи

  • Расчет производительности данной конфигурации серверного оборудования и программного обеспечения
  • Сравнение производительности различных конфигураций серверного оборудования и программного обеспечения
  • Выбор оборудования, необходимого для работы данной информационной системы
  • Расчет параметров оборудования, необходимого для работы данной информационной системы

Что оценивает тест

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

  • все рабочие серверы, использованные для развертывания кластера «1С:Предприятия» и серверы СУБД
  • операционные системы всех рабочих серверов;
  • настройки операционных систем, «1С:Предприятия» и СУБД.

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

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

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

Следует обратить внимание на то, что тест никак не оценивает производительность клиентской части системы, поэтому этот фактор должен быть полностью исключен. Иначе говоря, клиентские рабочие места не должны стать узким местом системы. Этот вопрос более детально обсуждается в главе «Подготовка клиентской части тестового стенда».

Как работает тест

Стандартный нагрузочный тест представляет собой информационную базу «1С:Предприятия 8.2» с конфигурацией, основанной на «Управлении производственным предприятием». Конфигурация объединена с «Тест-центром 2.0», в состав которого включен один сценарий тестирования.

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

Предыстория

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

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

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

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

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

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

Что такое TPC -1C-GILV

Это серия независимых тестов, предназначенных для оценки быстродействия платформы 1С:Предприятие 8.1 на вашем компьютере (ах).

Разумеется, "независимый" тест означает, что он не спонсируется фирмой 1С.

В настоящее время доступен тест "TPC -A-local Throughput / TPC -1C-GILV-A" (последнее обновление - август 2008г. версия 1.0.3)

Идея теста TPC -A-local Throughput / TPC -1C-GILV-A

Вы скачиваете с данного сайта файл выгрузки конфигурации (~400 Кб) и загружаете у себя. Если развернете конфигурацию в файловых вариант, то в значительной степени тест будет тестировать связку "CPU вашего компьютера - HDD где лежит база".

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

В тесте выполняется интенсивная запись 5000 документов. Глубокого смысла в бизнес-логике кода нет, оцениваться просто условно выбранная за эталон производительность документа Х.

Главная прелесть теста в том, что Вам не надо знать технических подробностей. Тест выполняется сам и сам выдает оценку. К тому же результат кому сообщать Вам тоже не обязательно:)

Вы можете сравнить производительность нескольких серверов, или одного сервера с разными характеристиками дисковой подсистемы.

Выполняя тест с сервера приложений и с клиента по сети можно понять влиятие сети на участке от клиента до сервера.

Как запустить тест

Запустить тест очень просто. Надо нажать кнопку

и дождаться пока индикатор теста (справа от кнопки) достигнет 100%.

Обычно тест длится около 8 минут.

Что означают результаты теста

Результат теста представляется как "скорость записи" данных теста. Погрешность теста составляет 2 единицы. Для точной оценки можно повторить тест 3 раза.

После того, как индикатор теста достигнет 100% вы увидите примерно такие графики:

Ниже графиков расположены некоторые ранее проведенные аналогичные тесты.

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

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

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

Вы получили в качестве результата некий индекс производительности (считай скорости). Не важно, хороший или плохой результат - это результат работы ПЛАТФОРМЫ на вашем "железе". В случаи клиент - серверного варианта это результат . Вы получаете общий фактический результат, который определяется САМЫМ УЗКИМ МЕСТОМ в системе. УЗКОЕ МЕСТО ЕСТЬ ВСЕГДА!

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

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

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

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

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

Как опубликовать результаты теста

Если Вы хотите помочь развивать тест, вы можете выполнить ряд тестов на своих серверах. Затем общего перечня сделанных тестов оставьте только те, что хотите опубликовать и пришлите dt-выгрузку с результатами.

Данные будут вручную проверены (что они не являются ошибочными), в колонку "автор" тестов добавляется адресат тестов и добавляются в выгрузку, доступную для скачивания всем.

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

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

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

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

Примечание. Модификация теста "A " означает "автоматическое управлением блокировками" . После выхода официальных версий типовых решений от 1С, планируется модифицировать тест для работы в режиме "управляемых блокировок" и обозначить буквой "M ".

Скачать тест

Данный тест не является коммерческим и .

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

Топ - 3 лучших клиент-серверных инсталляций 1С на MS SQL Server. Вы тоже можете попасть в эту таблицу. Подробнее можно посмотреть результаты, скачав тест.

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

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

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

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

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

Контакты для TPC -1C-GILV

http://сайт/1c/tpc

результаты тестов, предложения о развитии

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

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

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

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

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

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

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

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

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

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

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

Данный тест, выполненный на конкретном сервере, дает результат по совокупности настроек 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 .

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

Компьютеры(условное название) участвовавшие в тестах - описание (диски указаны только для БД):

(уточнение между серверами сеть 1 Гбит )

1) IT33 - десктоп на Core i5 4 ядра по 2.8 Ггц, DDR3 3 ГБ , один жесткий диск 7200 об/с .

2) REAL - САМЫЙ МОЩНЫЙ как мне думалось)) 8 ядер Xeon по 3 Ггц , DDR2 48 Гб , RAID10 на SSD

3) REAL2 - 8 ядер Xeon по 2 Ггц, DDR2 22 ГБ , RAID10 на жестких дисках SAS 10 000 об/с

Были проведены тесты в конфигурации 1с от Гилева:

"Сервер SQL"--->"Сервер 1с"--->"Оценка" + "Имя клиентского компьютера(если не указан то Он Же - певый в списке)"

>1)REAL2--->REAL2--->25.64(TCP--SQL)
>2)REAL2--->REAL2--->26.32(SQL--Shared Memory)

>3)REAL2--->REAL2--->25.64(SQL--Shared Memory) + IT33(клиент) - от клиента до Серверов сеть=10 Мбит

>4 )REAL2--->REAL2--->24.27(SQL--Shared Memory) + REAL(клиент) - хм.. странно сеть 1 Гбит... почему же меньше попугаев..
>5)REAL2--->REAL2--->37.59(Файловый)

** **** **************************
>1)REAL--->REAL--->8.73(TCP--SQL)

>2)REAL--->Real2 --->11.99(TCP--SQL) --- это уже начало меня наводить на некоторые мысли))

>3)REAL--->REAL--->17.48(Файловый)

** **** ******************************

>1)IT33--->IT33--->26.88(TCP--SQL)
>2)IT33--->IT33--->34.72(SQL--Shared Memory)
>3)IT33--->IT33--->59.52(Файловый)

Итоги:

Смотрел результаты теста... крутил и так и сяк)) и вот осенило (сделал замеры скорости работы Оперативной памяти),

что на скорость работы 1с 8.х (замечу что Результаты Теста основаны на ОДНОПОЛЬЗОВАТЕЛЬСКОМ режиме, но и для клиент-серверного варианта при многопользовательской работе - думаю также будут иметь немалую долю влияния) -

итак на скорость 1С влияет: частота шины CPU + частота RAM памяти

----> что влияет на скорости ЗАПИСИ и ЧТЕНИЯ в RAM. Что и есть основа быстродействия 1с 8.х .

Компьютеры разделившие призовые места По скорости работы 1с))

1)IT33 --->IT33--->59.52(Файловый)

RAM DDR 3 (Чтение 11089 Мб/с, Запись 7047 Мб/с)------ как я и предпологал разница будет значительной с серверами

2)REAL2 --->REAL2--->37.59(Файловый)
- RAM DDR2 (Чтение=3474, Запись=2068)

3)REAL --->REAL--->17.48(Файловый)
- RAM DDR2 (Чтение=1737 Мб/с, Запись=1042 Мб/с) - как выяснилось скорость ниже чем на Real2 - ровно в 2 раза,

из за включенных Виртуальных ядер (Гипер-трейдинг)- будем скорее всего отключать.

ВЫВОДЫ:

Наибольшая скорость работы 1с 8.х достигается:

I) для Файлового варианта (мне лично неинтересен)

А)запуск Клиента(любого) на компьютере с большой скоростью работы с Оперативной памятью. (например Терминальный сервер

БД тамже).

II) для Клиент-Серверного варианта

1) Толстые клиенты 1C на "Терминальном сервере" - с +

2) Тонкие клиенты 1C - уже нет особой разницы где... но желательно настроить через "HTTP://".
3а) "SQL сервер" +"Сервер 1с предприятия" (в режиме Shared Memory) - на одной тачке сНаибольшей скоростью Запись/Чтение оперативки + Наибольшая частота Ггц Ядер процессора дисках

Уточнения:

- поддержка Shared Memory - появилась на движке начиная с 8.2.17 (ВНИМАНИЕ в конфигурации - не должен быть включен режим совместимости с предыдущими версиями движка), на предыдущих движках будет использоватся Naimed Pipes - тоже показывающий неплохие результаты))

- RAID на SSD дисках - целесообразно использование RAID10 - для отказоустойчивости, при этом беря в расчет ШРАФ на Запись:

пример RAID10 (4 шт Штраф записи=2) , Скорость Записи= 4/2 = 2 диска, Штрафа на чтение нет.

Еще можно дополнительно поднять надежность и стабильность скорости SSD - используя не весь объем диска.

пример(поднятие надежности Десктопного SSD до уровня Серверного SSD):

Если к примеру, SSD Intel 520 series 120GB, и разметить 81 GB, а остальное пространство оставить неразмеченным -

то под over provisioning будет выделено около 32% пространства SSD дополнительно к уже имеющимся скрытым 8%. Итого получаем около 40%

Отличие серверного SSD Intel 710 series от десктопного SSD Intel 320 series как раз и составляет разница в over provisioning: более 40% для Intel 710 и 8% Intel 320.

Если клиентов 1С много от 100 и далее:

1)На текущих технологиях сети Ethernet - НЕ ЦЕЛЕСООБРАЗНО ранесение "SQL""Сервер 1С" .

например из-за Латентности(задержек) в сети Gigabit Ethernet - реальная скорость обмена с SQL= 30 Мегабайт/с - что мало даже для интенсивной работы с Базой Данных 1-го пользователя.

2)Т.к. фактически "Сервер 1с"="Объектная СУБД" (многомерные объекты), а "SQL"="Реляционная СУБД" (плоское -табличное хранение данных)

=> в базе SQL -хранится ПЛОСКАЯ проекция Объектов 1С и Сервер 1С собирает из этой проекции Объект, далее проводит работы с этим Объектом и наконец по завершении работы Опять раскладывает в плоский вид сохраня в SQL.

То как следствие между "SQL""Сервер 1С" - и приходится отказыватся от разнесение на два физических сервера. Но можно использовать по полной реализацию NUMA-узлов. (Это должна поддерживать OS и сами процессоры ).


3б) Разносим сервера SQL и Сервера 1с отдельно : На текущих технологиях Ethernet - например Gigabit - НЕ ЦЕЛЕСООБРАЗНО
-SQL на сервер с Наибольшей скоростью Запись/Чтение оперативки + Наибольшая частота Ггц Ядер процессора
-Несколько ФИЗИЧЕСКИХ серверов в Кластере 1с c Наибольшей скоростью Запись/Чтение оперативки + Наибольшая частота Ггц Ядер процессора + желательно ипользование RAID на SSD- дисках