Завершающая публикация цикла «В облако на работу:… Рецепты от Капитана», в ходе которых был собран полнофункциональный рабочий контур 1С в сети на отечественной Ред ОС. С веб-серверами, доменной авторизацией, архивированием, отказоустойчивостью и прочая, прочая… В этой статье мы определяемся с быстродействием системы, проводим нагрузочное тестирование и отпускаем ее в свободное плавание (зачеркнуто) выпускаем ее в продуктовый контур, где конечно же придется отлавливать ошибки, мониторить состояние и т.п.


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



©А. С. Пушкин. Евгений Онегин



На этом моя серия публикаций о развертывании 1С Предприятие 8.3 на РедОС подходит к завершению.



Получился мини-курс по импортозамещению.



Кто прошел все публикации (и/или видео), тот сможет с минимальными затратами, прежде всего нервов, собрать контур для работы 1С Предприятие 8.3 на РедОС корпоративного уровня.



Надеюсь ваше время не пропало зря.



Обращайте внимание на даты и номера релизов, все меняется, все течет.



Огромное спасибо всем написавшим как в комментарии, так и в личные сообщения.
 



Моему поколению, чтобы уронить телефон в унитаз,
надо было сначала оторвать его от стены. 

©народный фольклор



 



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



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




Тем кто не любит много букв



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

Как тут не вспомнить момент когда все начиналось в далеком 2019 году статьей 
1С и Яндекс.Облако Compute Cloud. Вдоль и поперек, кто хочет ненадолго предаться приятной ностальгии, может перейти по ссылке.



Кто не любит читать вообще, может посмотреть видео.



youtube

rutube
vk



Остальные, добро пожаловать.



Постановка задачи



Имеем прототип корпоративной windows-linux сети в облаке ©Serverspace.





Контроллер домена, сервер Windows 2012 R2, домен AD уровня Windows 2012. dc.test.loc



Рабочая станция Windows 10. win-cln01.test.loc



Рабочая станция РедОС 8. red8-cln01.test.loc



Сервер 1С РедОС 8 настроенный. red8-srv.test.loc



Сервер 1С РедОС 8 настраиваемый. red-srv.test.loc



Postgres 16 от PostgresPro



1С Предприятие 64-х 8.3.24.1467



все в домене test.loc. 



Имя домена *.local не рекомендуют коллеги РедОС.



все по железу 4ГБ RAM 50ГБ SSD 2 Ядра CPU



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



Отказоустойчивый кластер с балансировкой нагрузки на двух серверах 1С



Ее и проверим для начала
 



Балансировка нагрузки в кластере 1С



База для тестирования это типовая Зарплата и управление персоналом 3.1, как самая распространенная из баз 1С.



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

Принцип его работы: в серверном вызове создается временный текстовый файл, в него системная команда hostname пишет данные, 1С их выводит на форму.



В сценарии запуска нагрузочного тестирования устанавливаем флажок "Пауза после запуска ВРМ", поэтому виртуальные рабочие места откроются, но не начнут работу до нажатия кнопки подтверждения.



Пройдя по окнам приложений 1С, можно увидеть что плюс-минус распределение по серверам равномерное, на red8-srv чуть больше.
Его и нагрузим утилитой stress-ng на 5 минут.
В консоли администрирования 1С видно как начала падать доступная производительность 



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



Нагрузочное тестирование при помощи 1С: Корпоративный инструментальный пакет



Очень тонкий момент. Как вы яхту назовете...



Чем ближе к реальности удастся создать прототип тестовых обработок, тем спокойнее будет ваша жизнь в продакте.



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



  • Хороший путь это взять статистику по количеству документов за определенный период, например за прошлый год, обработок подобного рода достаточное количество и попробовать эмулировать тестовыми обработками похожую нагрузку только сжатую во времени.
    Иными словами, если пользователи в течении года набили 1000 приемов на работу, 1000 увольнений и 10000 табелей рабочего времени, то их и надо пропорционально заносить во время теста, а не вести 30 корректировок зарплаты и отчитаться об успехе.
    Он потребует написания этих тестовых обработок для заведения нужного количества документов и справочников.
  • Если такой статистики нет, но есть желание сравнить старый/новый контуры или получить значения для некоей средней базы 1С можно взять из КИП стандартный нагрузочный тест.
    Да и в любом случае его не помешает прогнать для начала.
  • Промежуточный путь это взять готовые тестовые обработки рабочих мест кадровиков, расчетчиков и т.п. из раздела Обновления -> 1С: Корпоративный инструментальный пакет -> Дополнительные материалы на ИТС.
    Их потребуется доработать напильником для интеграции в типовую базу ЗУП с типовым же расширением нагрузочного теста из комплекта КИП.
    Никогда такого не было и вот опять... 

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


Я попробовал использовать как агента тестирования рабочую станцию Ред ОС 8 и получил странную ошибку с которой надо разбираться — какое бы количество не указать ВРМ, парочка из них не запустится, причем на всех агентах, т.е. запускается 8 из 10, если поменять общее число на 6 то запустится 4 из 6. :)



Поэтому ушел на клиентов windows как проверенный вариант и тест отработал штатно.



Возможно просто где то опечатался в настройках, все же эта статья для меня night builds.



В любом случае, даже если тест не отработал до конца, у вас будут замеры производительности с виртуальных рабочих мест, по которым вы можете сравнивать результаты с другими контурами серверов.
Также можно посмотреть картину по клиентским сеансам, например
APDEX, APDEX-ксом, но могут быть и пользователи… Статистический подход к замерам производительности. Внешний отчет на СКД



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



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



Желающие могут в комментариях подискутировать.



Если у вас нет времени/возможности использовать 1С: Корпоративный инструментальный пакет, то придется прибегать к подручным средствам linux в котором правильнее сказать для которого написаны как всеобъемлющие пакеты тестирования, так и утилиты ставшие де-факто методом тестирования одного рода оборудования, сети, диска, etc.



Измерение производительности с помощью утилит
 



  • pgbench
     


О ней мы говорили ранее Построение отказоустойчивого кластера PostgreSQL. HAProxy, давай до свидания. Рецепты от Капитана



На лидере создаем и инициализируем базу pgbench.
sudo -u postgres psql -U postgres -c "create database pgbench;"
PGPASSWORD='123456' pgbench -h redos-vm -U postgres -i -s 5 pgbench



Затем с клиента проверяем по прямому соединению на лидер

Устанавливается вместе с пакетами postgres  



все остальные требуют установки и все присутствуют в штатном репозитории РЕД ОС



PGPASSWORD='123456' pgbench  -h red-srv.test.loc -U postgres -c 10 -j 1 -t 10000 pgbench



  • 7z


Отличный инструмент для быстрого измерения производительности компьютера, причем дающий сравнимые результаты как для linux так и для windows. 



7z b



Еще два кроссплатформенных инструмента



  • iPerf


измеряющий пропускную способность сети между устройствами, одно из которых будет сервером, а второе клиентом тестирования



iperf -s и iperf -c <адрес сервера> в простейшем случае, но у утилиты есть достаточное количество настроек для любого тестирования сети



Еще больше настроек есть у 



  • fio


для замера производительности дисковой системы в Linux



Уважающие себя облачные провайдеры приводят тесты своих систем обычно в ее нотации
у одного из них я и взял как образец файл test.ini со следующим содержимым:



[test IOPS]
blocksize=8k
filename=/tmp/testfile
filesize=1G
direct=1
buffered=0
ioengine=libaio
iodepth=64
rw=randrw
rwmixwrite=30
runtime=10
clat_percentiles=0
unlink=1



тогда запуск будет fio ./test.ini



  • Нагрузочный тест gilev.ru


Без него обзор вариантов будет неполным. Измеряющий на мой взгляд сферического коня в вакууме,



быстродействие ЦП т.к. нагрузку на сеть дает небольшую, а база почти наверняка вся будет в кэше сервера СУБД.



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



Зато он четко продуман маркетологически. 

С красивыми картинками и названием.
И он на 1С, это магические слова.
Можно стартануть его на ноутбуке финансового директора и потом, пустив скупую мужскую слезу показать результаты с сервера и просить бюджет.

Это работает.



Аналогичные результаты можно получить простым запуском бенчмарка 7zip, если вы измеряете производительность для своего понимания.



C’est tout… как говорят французы



 



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



Подтянуть собственные знания, особенно 1С: Исполнитель хочется пощупать)
А если серьезно, то далее идет мониторинг и поддержка.
Поэтому скорее всего будет публикация "1000 мелочей..." с различными нюансами, вроде того как заново собрать контур patroni и где у PostgresPro прячется $PGDATA.



И на ИТС есть отличная статья про мониторинг, ее тоже хочется проверить и визуализировать.



Благодарности:



Благодарю компанию ©Serverspace за предоставленное оборудование, без поддержки собрать такой пингвинариум мне было бы негде.



Желающие знают, где меня искать, время за пределами рабочего.



Статья продолжает серию публикаций:





Серия "Рецепты от Капитана" на всякий случай





 

Комментарии (2)


  1. haga777
    01.11.2024 17:01

    Хм, я наоборот читал, что ад и 1с вообще не желательно на одном ПК размещать. А почему вы вин12 и 1с рекомендуете вместе ?


    1. capitannemo Автор
      01.11.2024 17:01

      Хотите меня поставить в тупик своими вопросами, я вас поставлю в тупик своими ответами.

      Как выйдет вин12 так сразу и приходите)