Описание
Тест создает множество фоновых сеансов и выполняет ими одинаковые действия, например создание элементов справочников или запись наборов записей регистров. Он позволяет оценить, насколько "производительна" данная связка 1с - субд, а также насколько она "масштабируема", т.е. количество активных пользователей, при котором система еще будет работать, но "низенько-низенько".
Эмпирическим путем получено число в 400-500 попугаев на поток (не учитывая временные таблицы), при котором работа терпима. Благодаря механизму "глобального обмена" можно повторить тест с чьии-то настройками и сравнить результаты.
Полный тест выполняется от получаса до часа на стандартных настройках, примерно в 2 раза меньше на "быстрых" и в 2 раза дольше на "точных". Естественно, проводить не все тесты, то время пропорционально уменьшится.
Планы
Снова сделать просмотр результатов на сайте. Сделано: https://fragster.ru/performanceTest/testResults
Работа на файловых базах.
Новые тесты.
Обмен "через файлы", для случай, когда на на сервере нет интернета
Многое другое :)
Версия 2.0.012
Исправлена невозможность обмена, если указано более 2-х серверов
Версия 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 потоков, не накапливая статистику. Пока работает только в клиент-серверном варианте.