Многопоточное тестирование производительности сервера 1С — СУБД






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

Описание

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

Эмпирическим путем получено число в 400-500 попугаев на поток (не учитывая временные таблицы), при котором работа терпима. Благодаря механизму «глобального обмена»  можно повторить тест с чьии-то настройками и сравнить результаты.

Полный тест выполняется от получаса до часа на стандартных настройках, примерно в 2 раза меньше на «быстрых» и в 2 раза дольше на «точных». Естественно, проводить не все тесты, то время пропорционально уменьшится.

Планы

Снова сделать просмотр результатов на сайте. Сделано: http://fragster.ru/perfomanceTest/results.php

Работа на файловых базах.

Новые тесты.

Обмен «через файлы», для случай, когда на на сервере нет интернета

Многое другое 🙂

Версия 2.0.011

Устранена несовместимость с 8.3.9 (из-за изменения http://downloads.v8.1c.ru/content//Platform/8_3_9_1648/1cv8upd.htm#f092f970-ec4b-11e5-a3f7-0050569f678a)

Версия 2.0.010

Исправлена ошибка несоздания узла обмена для обмена результатами.

Версия 2.0.009

Изменен способ старта фоновых заданий, теперь менее вероятна ошибка «Не получилось синхронизировать потоки за ХХ секунд!»

Исправлены ошибки невозможности выбора параметра в отчетах «Отчет по тесту» и «Профиль результата»

Изменены варианты ответов на запрос заполнения информации о серверах на более понятные.

Версия 2.0.008

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

Версия 2.0.007

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

Исправлены ошибки при запуске в режиме «Толстый клиент управляемое приложение». При запуске в этом режиме интернет на сервере не обязателен для обмена.

Если вы делаете обновление, то теперь возможно обновление только с версии >= 2.001 (при попытке обновления версии 1.х.ххх будет ошибка). Возможно позже сделаю поставку, чтобы корректно это контролировать.

Версия 2.0.006

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

Также при очистке данных регистров накопления и сведений теперь выключаются итоги.

Версия 2.0.005

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

Добавлен отчет «сравнение результатов», колонки — тесты, строки — результаты. Предложения по работе доработке этого и других отчетов приветствуются.

Форма списка справочника тестов, теперь она же является формой выбора/подбора.

Разрешен множественный выбор в форме списка — можно быстро сформировать отчет сравнения, выделив несколько строчек и выбрав его в меню «сформировать на основании»

Обработка «проверка синхронизации» заменена соответствующим отчетом (ради показа графика с распределением времени прихода сигнала синхронизации к потокам теста)

Во все отчеты по тестам добавлен быстрый отбор по видам тестов (по кнопке «настройки»).

Сообщения от потоков теперь приходят через регистр сведений (подготовка к реализации файлового варианта теста).

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

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

Немного причесан интерфейс, теперь все окна открываются единообразно.

Версия 2.0.004

Исправлена ошибка, существующая на платформе < 8.2.15

Версия 2.0.003

Исправлена ошибка доступа к таблице «профиль результатов» при выполнении теста

Версия 2.0.002

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

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

Переработана форма обмена — место на форме используется более рационально.

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

Версия 2.0.001

Новая версия. Старшая цифра изменилась, поскольку изменились алгоритмы работы — больше сделан упор именно на производительность СУБД.

Основные изменения:

Изменен алгоритм тестов (основной упор на запись наборов)

Добавлен тест «Временные таблицы» — он должен показать «чистую» производительность без блокировок (спасибо за идею Гилеву Вячеславу).

Добавлены настройки тестов — количество потоков и размер создаваемых объектов (100, 1000, 5000 строк)

Изменен отчет «Отчет по тесту» — добавлен показатель «средняя производительность одного потока»

Добавлен отчет «Профиль выполнения» — показывает распределение времени записи одного объекта (в мс), т.е. сколько объектов записалось за 16 мс, сколько за 32 и тд. Для платформы < 8.2.17 информация собирается только на вин-сервере, при релизе платформы >= 8.2.17 и на линуксе тоже.

Доработана обработка «проверка синхронизации». Теперь она показывает, через сколько миллисекунд (условия для работы как в предыдущем пункте) пришел сигнал от «мастера» до «потоков» о том, что пора начинать «работать».

Вместо публикации на сайте теперь глобальный обмен результатами, соответственно, создана обработка для него. Из-за того, что очень сильно доработана конфигурация — просмотр на сайте http://fragster.ru/perfomanceTest/ временно отключен, чужие тесты можно увидеть только через обмен, а он требует доступа к интернету на сервере 1с предприятия.

Доработан интерфейс, например отчеты перенесены в меню «создать на основании», а также через это меню возможно окрыть более одного окна 🙂

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

Версия 1.0.004

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

Дорботал интерфейс — на рабочий стол поместил список тестов, перенес отчет и новую обработку с панели действий на панель навигации (с верхней на левую).

Версия 1.0.003

Исправил синхронизацию потоков — теперь все потоки запускаются действительно одновременно, ранее на большом количестве потоков некоторые потоки «съезжали» по времени на время до 7 секунд (для 112  потоков, особенно на слабых серверах), что вызывало «флуктуации» в сторону аномального увеличения производительности результатов для большого количества потоков.

Информация о сервере 1с теперь заполняется при открытии формы, а не после выполнения теста.

Версия 1.0.002

Добавил автозаполнение информации о сервере 1с.

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

Теперь тесты выполняются в 1, 2, 4, 8, 16, 32, 48, 64, 80, 96, 112 потоков.

Обновил WS-ссылку, добавил версию платформы в результаты.

Добавил запрос на публикацию результатов теста при изменении (Внимание! Для успешной публикации должен быть разрешен интернет на сервере 1с!)

Версия 1.0.001

Добавил автосохранение после выполнения теста. (Отчет по текущему тесту теперь работает сразу после выполнения теста).

Добавил версию конфигурации в результаты теста.

Обновил WS-ссылку, подчистил WSDL, убрал anyType везде.

Убрал заглушку на кнопке «Опубликовать», теперь результаты публикуются на http://fragster.ru/perfomanceTest/ , можно сравнить с другими.

Версия 1.0.000

Причесал интерфейс

Добавил сохранение результатов

Немного изменил алгоритм проведения документов, добавил в него выборку данных.

Добавил отчет по тестам с красивыми графиками 🙂

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

Первая версия, она же альфа:

Начал писать тест для оценки производительности сервера в режиме параллельной работы. Нулевая версия, просто выполняет теств1/2/4/8/16 потоков, не накапливая статистику. Пока работает только в клиент-серверном варианте.

99 Comments

  1. Stepa86

    Чем принципиально будет отличаться от 1С:Тест-центра? Может лучше его допиливать, чем свое с нуля писать?

    Reply
  2. Fragster

    (1) Наверное тем, что тест центр надо покупать, а также настраивать этот комбайн, здесь же 1 клик — и результат есть. Попугаи получаются вполне себе. Надо статистику поднабрать, но нормальный результат >2000 для РС, >1500 для РН и >1000 для РБ на 4 потоках

    Reply
  3. qwinter

    Как реализована многопоточность?

    Reply
  4. Fragster

    (3) фоновыми заданиями

    Reply
  5. Fragster

    Кто скачал и выполнил тест, прошу нажать на кнопку «опубликовать» в конфигурации!

    Reply
  6. andrei.k

    А в чем отличие от теста Гилева?

    Reply
  7. Fragster

    (6) andrei.k, тест Гилева — однопоточный. Этот — многопоточный. Например на этих 2-х серверах тест гилева показывает одинаковый показатель, однако же с увеличением количества пользователей картина меняется радикально:

    http://wstaw.org/m/2013/03/03/plasma-desktopk17204.png

    http://wstaw.org/m/2013/03/05/2.png

    Reply
  8. Fragster

    (6) andrei.k, или вот еще характерный пример: http://s019.radikal.ru/i635/1303/05/668b720f69b1.jpg

    Reply
  9. ArtfulCrom

    С кластерами? нестандартными портами? Авторизацией на сервере ОНО работает? Или как и Гилева — сначала доработать напильником?

    Под 8.3 тоже имя объекта РУКАМИ менять?

    Reply
  10. Fragster

    (9) ArtfulCrom, работает. Только на линух сервере без ключа больше 8 потоков не выдаст (потому что следующее значение 16, а это больше 12 возможных соединений) и на постгре в конфиге надо максимальное количество соединений увеличить, иначе на 96 остановится. На 8.3 не проверял, но должно работать, вроде старался без овнокода делать.

    Reply
  11. ArtfulCrom

    (10) спасибо, добрый человек. Скачал потестим.

    Линукс у нас есть. Ключей защиты на всех хватит )

    на постгре в конфиге надо максимальное количество соединений увеличить

    А вот с этого места пожалуйста подробнее? Что именно и где? а то нужно админам передать, я ж в самой настройке зелень, аки…. кузнечека )

    Reply
  12. Fragster

    (11) ArtfulCrom, нужно в postgresql.conf найти строку с

    max_connections = 100

    и поменять на нужное число, для теста минимум 113, ну если там пользователи еще работают, то ставьте 200-250

    Reply
  13. ArtfulCrom

    (12) Передал. Зелень по результатам теста )

    Вернули ответ:

    сейчас стоит max_connections = 1024

    Reply
  14. Fragster

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

    Reply
  15. ArtfulCrom

    Еще вопрос… логичный. Нет никакого РТФМ по запуску.

    На чем обработку запускать? На любой рабочей БД? Это безопасно для ее данных? На чистой, пустой БД? На какой-то типовой?

    Стоит ли смотреть какую инфу она публикует на сервере результатов? Или вам можно доверять в плане адресов и паролей? )))

    Reply
  16. Fragster

    (14) ArtfulCrom, Это отдельная конфигурация, соответственно, изолирована от других конфигураций. Публикует информацию на http://fragster.ru/perfomanceTest/. Пароли если и будут введены, то только для регистрации на этом сайте.

    Reply
  17. Aleksey_3

    (15) опубликовал http://fragster.ru/perfomanceTest/testDetails.php?guid=358d9dab-945a-11e2-8dae-003048f00d88

    теперь бы понять что эти попугаи значат и почему ярко выраженные провалы (например на 64-х потоках) и графики не похожие на те что в публикации

    Reply
  18. Fragster

    (17) Aleksey_3, попугаи — это количество операций, выполненных всеми потоками за 10 секунд. На одном потоке 400 примерно соответствует 15 по тесту Гилева (это я по своим серверам сужу).

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

    Ваши графики не похожи на те, что в публикации — потому что в публикации график сделан на тестовом «сервере» — коре дуо первого поколения (двухъядерном) и 2 ГБ нешустрой (866 ДДР2) оперативной памяти.

    Кстати, на этих выходных у меня таки получилось допилить SOAP сервер на php таким образом, чтобы он передавал сложные структуры таким образом, чтобы 1с их кушала нормально. Соответственно, скоро будет версия теста с глобальным обменом результатами.

    Reply
  19. mybracho

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

    Спасибо

    Reply
  20. Fragster

    (19) mybracho, закончится через пол часика, анализировать — там есть 2 отчета: «Отчет по тесту» и «Профиль результата». Первый показывает сводную информацию и падение производительности в зависимости от количества активных пользователей, второй — насколько меняется распределение времени выполнения одной операции в зависимости от количества потоков, т.е. насколько влияют блокировки и обслуживание служебных таблиц типа итогов, нумераторов и т.п.

    приемлемая нижняя граница производительности — это 500 на поток, ниже — уже совсем некомфортно работать, но это верно для так называемых «активных пользователей», в общем случае момент количество пользователей можно увеличить на 10 (т.е. 10% активности) а то и больше 🙂

    производительность менее 500 в тесте 1 потока — говорит, что либо что-то с железом, либо оно совсем старое.

    Reply
  21. Fragster

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

    Reply
  22. ansh15

    Может конфу для файлового варианта отдельно сделать? А В клиент-серверном оставить как было, с показом результатов по мере выполнения тестов. А то, первый раз когда запустил, подумал, что сервер подвесил. Хорошо, что уже никто не работал…

    Reply
  23. Fragster

    (22) ansh15, я, наверное, сделаю, чтобы в файловой замерзало, а в клиент-серверной — нет.

    Reply
  24. serg1974

    Скачал, загрузил конфу в новую базу на сервак, запускаю с другого компа (win serv 2008R2/RDP) в режиме клиента получаю ошибку:

    Платформа: 1С:Предприятие 8.2 (8.2.14.519)

    Конфигурация:

    Режим: (сжатие: усиленное)

    Приложение:

    Локализация: Информационная база: русский (Россия), Сеанс: русский (Россия)

    Ошибки:

    ———————————————————————————

    10.04.2013 12:44:21

    {ОбщийМодуль.ОбщиеФункции.Модуль(17,55)}: Слишком много фактических параметров (ЗапуститьПриложение)

    ЗапуститьПриложение(«ping -n 2 127.0.0.1», , Истина, <<?>>КодВозврата); // windows

    {ОбщийМодуль.ОбщиеФункции.Модуль(21,55)}: Слишком много фактических параметров (ЗапуститьПриложение)

    ЗапуститьПриложение(«ping -c 2 127.0.0.1», , Истина, <<?>>КодВозврата); // linux

    ЧЯДНТ?

    Reply
  25. Fragster

    (24) serg1974, спасибо за сообщение об ошибке. Оказывается, код возврата появился только в 8.2.15. Сейчас подготовлю обновление с исправлением.

    Reply
  26. KroVladS

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

    Reply
  27. Fragster

    (26) KroVladS, а что значит «типовые конфигурации серверов»? имеющиеся результаты можно получить прямо в конфигурацию с помощью обработки «обмен результатами». Чем больше комментариев в тестах пользователи будут указывать — тем проще накопить статистику и анализировать, но, к сожалению, я пока не придумал, как стимулировать этих самых пользователей к заполнению этой самой информации.

    Reply
  28. Кинстинтин

    Всем здрасьте! Ребят, что можно сказать, глядя на графики, по поводу производительности системы: 2*Xeon E5-2670, 128ГБ, RAID 10, Windows Server 2012, Postgresql 9.1.2. Че-то мне кажется слабенько получается. Ставил 40 пользователей. max_connections прописывал и 200 и 1000. Когда shared_buffers поставил 2048MB — результат существенно улучшился. Что еще можно настроить? Заранее спасибо всем неравнодушным!

    Reply
  29. Fragster

    (28) Кинстинтин, очень плохо, во первых — почему такие колебания графиков? тестирование проводилось во время работы пользователей?

    Также непонятно, почему временные таблицы почти не отличаются от реальных, надо посмотреть temp_buffers (увеличить?), да и вообще, посмотрите рекомендации http://www.gilev.ru/1c/81/postgresql/ (Вячеслав почему-то убрал статью, но в сети куча подобных статей, например http://www.1c-remote.ru/nastroika_postgre_dlya_1c.html) , после чего заново прогоните тест. Умолчательные значения ориентированы больше на веб-серверную специфику (простые маленькие запросы).

    Reply
  30. Кинстинтин

    Нет, в данный момент к серверу не подключен ни один пользователь — запускаю его с нуля. Сам удивился почему так сильно разнятся графики с другими людьми. Буду читать — разбираться. Спасибо большое!

    Reply
  31. Fragster

    (30) Кинстинтин, А график уже с увеличенным shared_buffers?

    Reply
  32. Кинстинтин

    Я уже и не помню с увеличенным shared_buffers или нет. Вот результаты нового тестирования со следующими настройками, которые я корректировал: shared_buffers = 4096MB, temp_buffers = 32MB, work_mem = 10MB, maintenance_work_mem = 60MB

    Reply
  33. Fragster

    (32) Кинстинтин, ну, видимо, первый график до увеличения — разница в 2 раза. Но все равно — не должен он так загибаться вниз, должен выходить в горизонталь при достижении предела производительности (как у почти всех остальных результатов, в том числе и у postgre. Правда, как я понял, остальные результаты postgre — на линуксе).

    А диски какие? Также можно поэкспериментировать с fsync = off у постгре.

    Reply
  34. Кинстинтин

    Все тесты на Винде. 4 диска Hitachi HUS156030VLS600 15000RPM на контроллере LSI 9260-8i, как уже выше писал RAID 10. 1С: Предприятие 8.2.17.153.

    С fsync = off потестирую сегодня попозже, как серверный ключ освободится. Кстати, насколько помню, на рабочей базе fsync крайне не рекомендуют же выключать, если бэкапса управляемого нету?

    Reply
  35. Fragster

    (34) Кинстинтин, да, по поводу упса — верно. Но он же есть, да?

    Reply
  36. Кинстинтин

    В магазине есть 🙂 А если серьезно, то планируем покупать. А пока базы не рабочие — можно и поэкспериментировать. Может, еще какие настройки подкрутить в postgre? Неужели у остальных все «ровно» работает?

    Reply
  37. Кинстинтин

    fsync = off. Графики практически не изменились.

    Reply
  38. Кинстинтин

    Поставил на встроенный контроллер Интел древненький жесткий диск (Seagate 320GB 7200.12). Установил с нуля систему. В postgresql все настройки по умолчанию. Результат получился еще больше, чем в RAIDе.

    Reply
  39. Кинстинтин

    Но поведение графиков все же схожее. Куда рыть? Сейчас гоняю на других настройках.

    Reply
  40. Fragster

    (39) Кинстинтин, Есть возможность попробовать на линуксе?

    Reply
  41. Fragster

    Еще есть вариант посмотреть perfmon.msc на предмет того, во что упирается — в процессор, в диски или еще во что (очередь к чему становится сиииильно больше на 32 потоках чем на 16). Но судя по тому, что при замене дисков пик переместился в 8 потоков на 16 — дело таки в них. Ну, или в каких-то других настройках, которые были изменены между тестами.

    Reply
  42. Кинстинтин

    Линукса, к сожалению нету. Ни разу не пользовался perfmon.msc. Как юзать, подскажите, плиз. Ниже графики с настройками: 1000 — подключений, shared_buffers = 4096MB, temp_buffers = 32MB. Остальное по умолчанию

    Reply
  43. Кинстинтин

    Кстати, а «Вид СУБД» нужно выбирать? 🙂 А то я выбираю Postgre SQL, и еще ставлю крыжик «Сервер СУБД». Хотя, пробовал по-разному — результаты сильно не изменялись

    Reply
  44. Fragster

    (43) Кинстинтин, все, что находится на форме теста, кроме того, что на вкладках в нижней части — предназначено для других людей, которые будут сравнивать свои результаты, с результатами, полученными через обработку обмен результатами. Табличная часть — она предназначена для того, чтобы можно было указать описание сервера СУБД, если он не на компьютере с сервером 1с. Ну, или поставить галочку на строке с сервером 1с, показав таким образом, что они находятся на одном компьютере.

    Reply
  45. Кинстинтин

    А вот графики из связки Windows Server 2012 + MS SQL Server 2012

    Reply
  46. Fragster

    (45) Кинстинтин, Это те же железяки? Да уж, разница очевидна 🙂

    Вот еще бы db2 протестировать…

    Reply
  47. Кинстинтин

    Интересно, сейчас проанализировал графики — до 4-х потоков PostgreSQL примерно с MS SQL наравне, а потом резко падает вниз. Тесты производились на том же железе — причем на старом винчестере (RAID-массив отключен). Следовательно, делаю выводы, что падение скорости все-таки из-за PostgreSQL, возможно, настройки. А железо в норме. Еще думал, может, Сервак 2012, но он бы и с MS SQL тормозил.

    А что нам даст тестирование db2?

    Reply
  48. Fragster

    (47) просто Postgre очень сильно полагается на кэширование IO операционной системы, а MSSQL использует свои механизмы. Именно по этому я про линукс и говорил. Возможно, что дело именно в том, что постгре под виндой.

    Было бы у меня время и оборудование — я бы с удовольствием провел бы кучу экспериментов, но, к сожалению, нет времени ни того, ни другого 🙁

    Тестирование db2 — оно даст полное сравнение 3-х СУБД на одинаковом железе (такого исслдедования я еще не видел).

    Reply
  49. Кинстинтин

    В принципе, у меня со временем тоже негусто, но потестить интересно. Опять же, нужно ведь на полноценной версии пробовать, а не на ограниченной IBM DB2 Express-C. Я правильно понимаю? Полную, к сожалению, не нашел.

    Reply
  50. ansh15

    (48) Тогда уж и Oracle тоже надо протестировать, чтобы совсем полная картина получилась. И не Express, конечно.

    Reply
  51. Кинстинтин

    В общем запускал групповую обработку — проведение документов одной и той же базы на серваке на PostgreSQL и MS SQL 2012 — результаты по времени практически один в один. Остался доволен. Прекратил поиски — запустил сервер в работу.

    Reply
  52. Fragster

    (51) Ну так стандартное перепроведение — оно же однопоточное, а разница в однопоточном режиме не так уж и велика. Кстати, для такого режима лучше всего что-нибудь с большим количеством мегагерц (проца и шины) и маленьким — ядер 🙂 Например, восстанавливать последовательность в отдельном узле РИБ и компом с АМД на 4,5-5 ГГц, причем на файловой (если база влезает в файловую, конечно)

    Reply
  53. ansh15

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

    Reply
  54. Fragster

    (53) ansh15, на .18 не тестировал, возможно дело в платформе. а различия по результатам есть?

    Reply
  55. Fragster

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

    Reply
  56. ansh15

    (54) Нет, различий нет, также осталось. По поводу подвисания сервера приложений, подумал, может увеличить число рабочих процессов до 4-8, сейчас 2 запущено. При одном рабочем процессе висло уже на 48-и фоновых заданиях. И еще наблюдение, при выполнении теста на синхронизацию потоков при 112 потоках, сеансы с PostgreSQL не завершаются, а остаются в состоянии idle in transaction и висят сколь угодно долго,вплоть до рестарта сервера приложений. Тут http://gray-hemp.blogspot.ru/2008/08/idle-in-transactions.html немного пишут про это, в принципе, не страшно, в повседневной работе такого не возникает, но все же…

    Reply
  57. ansh15

    (55) да, так работает.

    Reply
  58. nevro

    Несколько вопросов:

    1. Этот файл конфигурации объединять с тестируемой конфигурацией?

    2. Обязательно запускать тест на работающей конфигурации или можно развернуть бэкап и запускать на нем? Т.е. симулируется ли работа?

    3. Поддерживаются варианты: файловый и клиент-серверный? По комментариям выходит, что оба — просто уточнить.

    Спасибо.

    p.s. хотим сравнить скорость работы в обоих вариантах, т.к. база весит пока что около 2 гигов.

    Reply
  59. Fragster

    (58) nevro, в отличии от тестцентра этот тест предназначен для измерения производительности не алгоритмов + субд + железа, а только субд + железа. Это самостоятельная конфигурация, ни с чем объединять ее не требуется, просто загрузить .cf в пустую базу.

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

    Reply
  60. nevro

    >>в отличии от тестцентра этот тест предназначен для измерения производительности не алгоритмов + субд + железа, а только субд + железа

    Понятно. По файловому варианту тесты существуют?

    Reply
  61. Fragster

    (60) nevro, 1с:тест-центр будет работать в многопоточном режиме, но там настраивать надо. В однопоточном режиме — есть тест Гилева: http://www.gilev.ru/tpc1cgilv/ однако же из графиков в топике и комментариях видно, что однопоточный режим не полностью характеризует производительность системы, интегральная (суммарная по всем потокам) производительность при росте количества потоков может расти весьма значительно.

    Reply
  62. nevro

    Многопоточность — это количество подключений к базе?

    Reply
  63. Fragster

    (62) в смысле? Многопоточность — это выполнение чего-то в несколько «потоков», параллельно, т.е. «свойство действия». В данном тесте количество подключений к базе равно количеству «потоков» теста (просто потому что 1с так работает) + 1 подключение, из которого осуществляется запуск теста.

    Reply
  64. khan

    Добрый день, Подскажите пожалуйста на что влияет реквизит «Количество пользователей» в справочнике «Тесты»

    Reply
  65. Fragster

    (64) khan, все, кроме того, что находится на панели «настройки», является информационным и в большей степени нацелено на информирование остальных пользователей теста при обмене результатами.

    Конкретно это поле — сколько пользователей работает на данном сервере в «боевом режиме».

    Написать подробную справку/инструкцию пока руки не доходят 🙁

    Reply
  66. khan

    Тестирую два сервера БД, т.е. сервер 1С — один, и два сервера БД. Получилось непонятно : одинаковый тест сервер БД1 показывает 976 на поток в среднем, сервер БД2 — 920, но при этом на сервере БД2 тест выполнился за 1 ч 52 мин, а на сервер БД1 — 2 ч 43 мин.

    Т.е. по тесту БД1 производительней, а по времени выполнения результат обратный. Как это понять ?

    Reply
  67. Fragster

    (66) khan, очень просто — после проведения собственно тестов идет удаление тех данных, которые были созданы в процессе, и чем больше этих данных — тем дольше они удаляются, а удалялись они в 1 поток в версиях до 2.0.006. В версии 2.0.006 удаление происходит по разным видам метаданных параллельно, что сократило время теста до ~35 минут на стандартной точности (по крайней мере на серверах где я тестил).

    Reply
  68. Fragster

    кстати производительность сервера 1с намного сильнее влияет на результаты, чем производительность сервера СУБД, если они разнесены

    Reply
  69. Ed111111

    У кого какие результаты? Похвастайтесь. И какая конфигурация сервера дает такую производительность обязательно укажите)

    Reply
  70. Buldog57

    Просьба прокомментировать windows2012 + sql2008r2(64), 1c 8.2.18.61(32 битная)

    Железо: Сервер SRV|Legion SL2500/4UT8G2 / CPU-E5-2620×2 / 65G 1333мгц / SAS3,5-300G15Kx4 / LSI Megaraid 9271-4i

    raid 10.

    Reply
  71. Fragster

    (70) Buldog57, а в районе 1-2 потоков можно покрупнее? или без временных таблиц. Вообще — сервер — зверь 🙂

    Reply
  72. Buldog57

    71 щас попробую)

    Reply
  73. Buldog57

    (71) Что то не пойму а что ты там хочешь увидеть?

    Reply
  74. Fragster

    (73) Buldog57, сколько «попугаев» в 1 поток. Вообще — для практического применения можно воспользоваться графиком «производительность на поток», количество потоков, когда график пересечет 500 — это «условно максимальное» количество _активных_ пользователей, при котором они еще как-то смогут работать. Имеется ввиду именно железо, если на реальной базе «тормоза» начинаются сильно раньше — то, конечно, можно наращивать железо, но намного больший эффект даст оптимизация конфигурации 1с и/или организации бизнес процессов (применительно к серверу из (70)). Ну а если не все пользователи являются активными — то количество пользователей можно пропорционально увеличить.

    Reply
  75. Fragster

    Также показателен отчет «профиль выполнения» — он показывает сколько времени длилась одна операция, т.е. если 90% выполнялись 15мс, 9% — 30, а 1% — больше секунды — то отчет «профиль выполнения» это покажет.

    Reply
  76. Buldog57

    Теперь скину только через две недели когда заменят рейд плату глючная попалсь(((

    Reply
  77. CratosX

    (76) Buldog57, очень хочется посмотреть попугаев в одном потоке.

    Reply
  78. CratosX

    (0) Fragster

    Версия 2.0.006

    Также при очистке данных регистров накопления и сведений теперь выключаются итоги.

    Включаются по окончании удаления или перед запуском теста?

    Reply
  79. Buldog57

    (77) Сегодня привезут сервак завтра поиграюсь повешу скрин)

    Reply
  80. Fragster

    (78) CratosX, включаются по окончании удаления. Но удаление «на всякий случай» проводится еще и перед запуском теста — на случай, если предыдущий запуск отвалился и в регистре есть данные.

    Reply
  81. Buldog57

    Ура приехал сервачок)) выкладываю скрины, размер объектов обычные, повышенная точность очень долго плиз комменты)) потом еще с большими объектами тестану!!!

    Reply
  82. Buldog57

    что то Комментов нету

    Reply
  83. CratosX

    (82) Buldog57, сдохли от зависти))

    Reply
  84. Buldog57

    (83) CratosX, Ой да ладно))) не ужели прям гипер система)) даже ссд винтов нет:((

    Reply
  85. babys

    Fragster, объясните плз, для тех кто в танке. Могу ли я на Вашем тесте проверить нагрузочную способность 1С+SQL фермы на 50000 пользователей?

    Reply
  86. Fragster

    (85) babys, там сейчас стоит ограничение в 112 потоков выполнения, скорее всего это для вашей системы будет маловато. Но код открыт, можете добавить/поменять количество потоков теста, только прошу в таком случае не обмениваться результатами, чтобы не «портить» общую базу

    Reply
  87. Fragster

    (84) Buldog57, ну, у вас в пике 30000 по регистрам всяким, а у меня — 4 (правда этого все равно на 100 сонных пользователей хватает, да) 🙂

    Reply
  88. Foma4382

    Интересная статья! Спасибо!

    Reply
  89. Sergant

    Тестирование не работает, после сообщений —

    17.09.2013 8:36:08 Старт теста Регистры бухгалтерии в 1 потоков

    17.09.2013 8:36:02 Старт теста Регистры накопления в 1 потоков

    17.09.2013 8:35:55 Старт теста Регистры сведений в 1 потоков

    17.09.2013 8:35:49 Старт теста Справочники в 1 потоков

    17.09.2013 8:35:41 Старт теста Временные таблицы в 1 потоков

    сообщает об ошибке —

    {ОбщийМодуль.Тестирование.Модуль(139)}: Ошибка при вызове метода контекста (ОжидатьЗавершения)

    ФоновыеЗадания.ОжидатьЗавершения(МассивЗаданий);

    по причине:

    Выполнение одного или нескольких заданий завершилось с ошибкой

    Reply
  90. Fragster

    (89) Sergant, прошу сообщить релиз платформы, а также сообщение об ошибке из журнала регистрации.

    Reply
  91. Sergant

    (90) платформа 1С 18.109, в ЖР ошибок нет.

    Reply
  92. Fragster

    (91)(92) Sergant, ну не может же такого быть, что в фоновом задании выбросилось исключение, а в ЖР не отобразилось. В настройках ЖР, судя по всему, уровень журналирования максимальный.

    Тест падает стабильно на запуске в два потока (или на очистке после одного потока)? База, я надеюсь, клиент-серверная?

    Reply
  93. Sergant

    (93)

    уточню симптомы проблема возникает

    — при любом кол-ве потоков (возникала при одном двух четырех восьми шестнадцати), результаты предыдущих выполненнх этапах остаются видны, результаты очень низкие.

    — работа с мсскл стабильна, проблемы только с посгрес

    — иногда тест на посгрес завершается без ошибок.

    подключение клиент серверное.

    Reply
  94. Fragster

    (94) Sergant, а вариант с постгре — сервер 1с случайно не на линуксовом сервере без ключа?

    Reply
  95. Fragster

    (1)

    тест центр фактически проверяет способность сервера запускатб клиентов 1с

    (с) Е. Филиппов, автор настольной книги эксперта по технологическим вопросам, инфостарт эвент 2017

    Reply
  96. Stepa86

    (138) А ты злопамятный

    Reply
  97. Fragster

    (139) просто сижу в зале)

    Reply
  98. Stepa86

    (140) и вспомнил, что кто-то, что-то такое уже спрашивал и надо бы вот прям щас ответить? Спустя 140 каментов

    Reply
  99. Fragster

    (141) не, смотрел дату создания публикации (на мобилке она внизу) и увидел первый коммент

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *