Каталог решений - Измерь его правильно! Краткое описание общепринятого метода оценки производительности DB серверов

Измерь его правильно! Краткое описание общепринятого метода оценки производительности DB серверов

Измерь его правильно! Краткое описание общепринятого метода оценки производительности DB серверов

В наличии

Сообщество программистов (администраторов) 1С является одним из самых замкнутых на себя.
Тот же JAVA senior без особых вопросов напишет код на PHP или на Python, если этого потребует обстановка.
1Сники же и powershell и bash и PHP и все остальное с разной степенью успешности реализуют на 1С.
В последнее время ситуация немного меняется, классическое высшее образование программистов уже не ограничивается ассемблером, бейсиком и фортраном.
Никто не падает в обморок при виде
class HelloWorld {
public static void main(String[] args) {
System.out.println(«Hello World!»);
}
}
Попробуем покуситься на тест Гилева © и узнать, как без него обходятся DBA админы остального мира, слабонервных прошу удалиться, остальных прошу под кат…

Категория:

Описание

Россиянин за границей пытается купить презервативы в аптеке.
Естественно — языковой барьер, не знает как объяснить. Видит — аптекарь мужик.
Достает свое хозяйство, кладет на прилавок и рядом 10$. 
Аптекарь не долго думая, достает свое и со словами:- Не уверен — не играй! забирает все деньги.

Что вам даст прочтение этой статьи:

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

Скажу сразу и жирным шрифтом:
Я не против решения всего и вся на 1С, а перед теми кто их создает, вообще снимаю шляпу.
Но иногда робко спрашиваю зачем ?

После того как об меня сломалось очередное копье, долгими осенними вечерами написал я эту статью.

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

Но в сообществе 1С и неожиданно у некоторых облачных провайдеров, публикующихся на Хабре, обнаружилось непонимание темы.
Масла в огонь подлил журнал "Системный администратор"  (!) 
№5 за 2017 г. с вопросом:
Сервер набрал примерно 17 баллов, в то время как десктоп – более 40… Так что же, сервер 1С лучше разворачивать на бюджетном железе, купленном в ближайшем киоске? 
Продолжу для них.

Зачем собственно пробовать что-то еще, если есть чудесный тест Гилева ©:

  1. Пожалуй самое главное ограничение теста Гилева © — это то, что провести его мы может только постфактум — установив 1С сервер.
    Кофе в постель могу сам себе подать. Но придётся встать, одеться,приготовить, раздеться, лечь и выпить. Жванецкий ©
    В добрые старые годы это не было большой проблемой — сервера были куском железа, а ключ 1С — USB.
    Пользуясь расположением поставщика можно было все тесты провести до покупки.
    Сейчас же сервера в облаке, а ключ программный (либо доплата за USB) и все не так просто.
  2. Тест идет по методологии TPC-A  (метода TPC-1C-GILV-A пока на сайте организации TPC не зарегистрировано) 
    И его второе ограничение, об этом сказано на сайте :
    Тест оценивает количество работы в единицу времени в одном потоке и подходит для оценки скорости работы однопоточных нагрузок
    То есть равные по скорости, но отличающиеся по количеству ядер процессоры дадут равные результаты.
    Хотя даже интуитивно понятно, что
    c Intel© Core i7 база будет работать быстрее чем с i3, i5.
  3. Это то, что его вообще нужно проводить. Правда, было бы неплохо, если бы сам поставщик предоставил результаты ?
    А еще лучше выбрать нужные результаты и под них собрать оборудование, хоть бы и виртуальное.

Еще раз внимание! 
Не против я этого теста, в конце концов можно мерить чем угодно, если это измерение дает повторяемость на различных конфигурациях софта/железа.

Переходим к теме:

Де-факто метод тестирования крупных провайдеров предоставляющих облачный хостинг (Alibaba Cloud к примеру или Google Cloud, на котором кстати, самое подробное описание работы) и удобная вещь в хозяйстве — HammerDB.

Методика тестирования не сложная, по сути напоминающая тот самый "Стандартный нагрузочный тест" из "Корпоративного инструментального пакета".
По классификации  www.tpc.org тесты близкие к 
TPC-C или TPC-H, но не такие полные.

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

Поэтому подробно расписывать ее не буду, опишу в общих чертах и больше про те грабли на которые наступил.
Самые большие — программа не работает с версиями MS SQL ниже 2008.

  1. Скачиваем программу с официального сайта www.hammerdb.com. Устанавливаем.(Можно взять поставку и в виде zip архива, ее достаточно распаковать)
  2.  Для последних редакций может потребоваться установить распространяемый компонент Microsoft Visual C++ для Visual Studio 2017, иначе она просто упадут с ошибкой.
  3. Создаем базу на SQL сервере (не обязательно Microsoft), название произвольное. Размер желательно сразу указать большой, чтобы рост файла не влиял на результаты теста. На Хабре горячие головы указывают под 200 Гб, но это на мой взгляд перебор. 
  4. Запускаем программу с клиентского компьютера. Выбираем тип сервера MS SQL и заполняем базу — Schema Build
    Требуется указать параметры подключения к серверу.
    Внимание! Программа будет строить строку подключения исходя из этих полей, поэтому совершенно не обязательно, что тип клиента в вашем случаем именно такой как указан по умолчанию.
    Скорее нет.

    Поэтому, если подключиться не удалось — нужно идти на сайт www.connectionstrings.com и там подбирать исходя из своих сервера и установленных клиентских компонент.
    Количество складов и виртуальных пользователей лучше поставить как на рисунке, тогда база будет приемлемого размера. (тот же Alibaba Cloud тестирует на этих величинах)
  5. Нажимаем Build
    и наблюдаем процесс заполнения базы данных
    Если все виртуальные пользователи стартовали -все идет по плану, если нет — первым делом проверяем строку соединения.
    Через некоторое время процесс завешается. Все флажки — зеленые. База готова к тесту.
  6. В ветке Driver Script повторяем параметры подключения и задаем "время разгона" теста и время его проведения
    Опять же значения можно взять с рисунка.

    Нажимаем Load и тестовый скрипт готов.
  7. Задаем количество виртуальных пользователей и не забываем установить флажок Show output
  8. Открываем вкладку Transaction Counter чтобы видеть результаты теста
  9. Нажимаем Run и следим за результатами теста. 
  10. Через некоторое время они стабилизируются
  11.  Или нет. Это значит в настройках сервера имеются проблемы. Или вы от жадности запустили больше виртуальных пользователей, чем он может обработать. 
  12. Тем кому не надоело смотреть картинки, могут продолжить. (Полный набор в хорошем разрешении в шапке публикации.)
    Поделюсь некоторыми наблюдениями.
  13. В тестах сравнивается Intel Core i5-6500 против i5-2500K. Почему для статьи выбраны они ?
    Есть достаточно большой обзор от technical.city где видно как Core i5-6500 бьет Core i5-2500K.
  14. Что получилось у меня:

    Процессор/Тест

    WinRar

    7zip

    HammerDB

    Тест Гилева

    i5-2500K

    5180

    14500

    249500

    35,71

    Core i5-6500

    5370

    17800

    395100

    34,72

    Все результаты на рисунках.

Подведение итогов

Самые правдоподобные результаты показали 7zip и HammerDB.

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

Список использованной литературы и ссылки

 

На сладкое

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

Планы на будущее

  • Пополнить статью результатами тестов.
  • Попробовать HammerDB тест как нагрузочный.

Желающие поддержать статью могут скачать rds-performance_whitepaper_mysql-intl-en-2018-05-04 — это тест от Alibaba Cloud.

has been added to your cart:
Оформление заказа