gifts2017

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

Опубликовал Антонио (Fragster) в раздел Администрирование - Сервисные утилиты

Тест для оценки производительности связки сервер 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 потоков, не накапливая статистику. Пока работает только в клиент-серверном варианте.

Скачать файлы

Наименование Файл Версия Размер Кол. Скачив.
Конфигурация
.cf 110,48Kb
12.08.16
533
.cf 110,48Kb 533 Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Антон Степанов (Stepa86) 12.02.13 19:36
Чем принципиально будет отличаться от 1С:Тест-центра? Может лучше его допиливать, чем свое с нуля писать?
2. Антонио (Fragster) 12.02.13 20:44
(1) Наверное тем, что тест центр надо покупать, а также настраивать этот комбайн, здесь же 1 клик - и результат есть. Попугаи получаются вполне себе. Надо статистику поднабрать, но нормальный результат >2000 для РС, >1500 для РН и >1000 для РБ на 4 потоках
3. Павел Алексеенко (qwinter) 13.02.13 20:45
Как реализована многопоточность?
4. Антонио (Fragster) 13.02.13 22:14
5. Антонио (Fragster) 25.02.13 12:51
Кто скачал и выполнил тест, прошу нажать на кнопку "опубликовать" в конфигурации!
6. Андрей К. (andrei.k) 05.03.13 11:48
А в чем отличие от теста Гилева?
7. Антонио (Fragster) 05.03.13 12:27
(6) andrei.k, тест Гилева - однопоточный. Этот - многопоточный. Например на этих 2-х серверах тест гилева показывает одинаковый показатель, однако же с увеличением количества пользователей картина меняется радикально:
http://wstaw.org/m/2013/03/03/plasma-desktopk17204.png
http://wstaw.org/m/2013/03/05/2.png
8. Антонио (Fragster) 05.03.13 15:16
9. Александр Кирилюк (ArtfulCrom) 06.03.13 17:17
С кластерами? нестандартными портами? Авторизацией на сервере ОНО работает? Или как и Гилева - сначала доработать напильником?

Под 8.3 тоже имя объекта РУКАМИ менять?
10. Антонио (Fragster) 06.03.13 17:27
(9) ArtfulCrom, работает. Только на линух сервере без ключа больше 8 потоков не выдаст (потому что следующее значение 16, а это больше 12 возможных соединений) и на постгре в конфиге надо максимальное количество соединений увеличить, иначе на 96 остановится. На 8.3 не проверял, но должно работать, вроде старался без овнокода делать.
11. Александр Кирилюк (ArtfulCrom) 06.03.13 17:38
(10) спасибо, добрый человек. Скачал потестим.
Линукс у нас есть. Ключей защиты на всех хватит )

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

А вот с этого места пожалуйста подробнее? Что именно и где? а то нужно админам передать, я ж в самой настройке зелень, аки.... кузнечека )
12. Антонио (Fragster) 06.03.13 17:54
(11) ArtfulCrom, нужно в postgresql.conf найти строку с
max_connections = 100
и поменять на нужное число, для теста минимум 113, ну если там пользователи еще работают, то ставьте 200-250
13. Александр Кирилюк (ArtfulCrom) 06.03.13 18:12
(12) Передал. Зелень по результатам теста )

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

сейчас стоит max_connections = 1024
14. Александр Кирилюк (ArtfulCrom) 06.03.13 18:29
Еще вопрос... логичный. Нет никакого РТФМ по запуску.

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

Стоит ли смотреть какую инфу она публикует на сервере результатов? Или вам можно доверять в плане адресов и паролей? )))
15. Антонио (Fragster) 06.03.13 18:29
(13) ArtfulCrom, только заполните инфу о сервере СУБД, если он не на машине с сервером 1с и нажмите "Опубликовать" после завершения тестов, пожалуйста. Вот, кстати, задача на будущее, собирать информацию о кластере серверов 1с, если он размазан по разным машинам.
16. Антонио (Fragster) 06.03.13 18:31
(14) ArtfulCrom, Это отдельная конфигурация, соответственно, изолирована от других конфигураций. Публикует информацию на http://fragster.ru/perfomanceTest/. Пароли если и будут введены, то только для регистрации на этом сайте.
17. Алексей Алексеев (Aleksey_3) 24.03.13 12:58
(15) опубликовал http://fragster.ru/perfomanceTest/testDetails.php?guid=358d9dab-945a-11e2-8dae-003048f00d88
теперь бы понять что эти попугаи значат и почему ярко выраженные провалы (например на 64-х потоках) и графики не похожие на те что в публикации
18. Антонио (Fragster) 25.03.13 11:33
(17) Aleksey_3, попугаи - это количество операций, выполненных всеми потоками за 10 секунд. На одном потоке 400 примерно соответствует 15 по тесту Гилева (это я по своим серверам сужу).

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

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

Кстати, на этих выходных у меня таки получилось допилить SOAP сервер на php таким образом, чтобы он передавал сложные структуры таким образом, чтобы 1с их кушала нормально. Соответственно, скоро будет версия теста с глобальным обменом результатами.
19. eremin (mybracho) 26.03.13 01:50
А где хоть маленький faq ? Нажал на кнопку. Когда закончится ? Как анализировать результаты и т.д.

Спасибо
20. Антонио (Fragster) 26.03.13 20:43
(19) mybracho, закончится через пол часика, анализировать - там есть 2 отчета: "Отчет по тесту" и "Профиль результата". Первый показывает сводную информацию и падение производительности в зависимости от количества активных пользователей, второй - насколько меняется распределение времени выполнения одной операции в зависимости от количества потоков, т.е. насколько влияют блокировки и обслуживание служебных таблиц типа итогов, нумераторов и т.п.

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

производительность менее 500 в тесте 1 потока - говорит, что либо что-то с железом, либо оно совсем старое.
21. Антонио (Fragster) 26.03.13 20:45
Также интересная вещь, определяющая производительность встроенного механизма управляемых блокировок сервера 1с - обработка "проверка синхронизации" - она проверяет, через сколько времени сколько потоков получают информацию о снятии блокировки.
22. Андрей (ansh15) 27.03.13 10:40
Может конфу для файлового варианта отдельно сделать? А В клиент-серверном оставить как было, с показом результатов по мере выполнения тестов. А то, первый раз когда запустил, подумал, что сервер подвесил. Хорошо, что уже никто не работал...
23. Антонио (Fragster) 27.03.13 10:42
(22) ansh15, я, наверное, сделаю, чтобы в файловой замерзало, а в клиент-серверной - нет.
24. Сергей Аблаев (serg1974) 10.04.13 10:47
Скачал, загрузил конфу в новую базу на сервак, запускаю с другого компа (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

ЧЯДНТ?
25. Антонио (Fragster) 10.04.13 11:28
(24) serg1974, спасибо за сообщение об ошибке. Оказывается, код возврата появился только в 8.2.15. Сейчас подготовлю обновление с исправлением.
26. Vladimir K (KroVladS) 11.04.13 11:44
Хотелось бы увидеть сколько попугаев выдают типовые конфигурации серверов, чтобы было понятно с чем сравнивать.
27. Антонио (Fragster) 11.04.13 13:01
(26) KroVladS, а что значит "типовые конфигурации серверов"? имеющиеся результаты можно получить прямо в конфигурацию с помощью обработки "обмен результатами". Чем больше комментариев в тестах пользователи будут указывать - тем проще накопить статистику и анализировать, но, к сожалению, я пока не придумал, как стимулировать этих самых пользователей к заполнению этой самой информации.
28. Кинстинтин (Кинстинтин) 16.04.13 18:13
Всем здрасьте! Ребят, что можно сказать, глядя на графики, по поводу производительности системы: 2*Xeon E5-2670, 128ГБ, RAID 10, Windows Server 2012, Postgresql 9.1.2. Че-то мне кажется слабенько получается. Ставил 40 пользователей. max_connections прописывал и 200 и 1000. Когда shared_buffers поставил 2048MB - результат существенно улучшился. Что еще можно настроить? Заранее спасибо всем неравнодушным!
Прикрепленные файлы:
29. Антонио (Fragster) 16.04.13 19:21
(28) Кинстинтин, очень плохо, во первых - почему такие колебания графиков? тестирование проводилось во время работы пользователей?
Также непонятно, почему временные таблицы почти не отличаются от реальных, надо посмотреть temp_buffers (увеличить?), да и вообще, посмотрите рекомендации http://www.gilev.ru/1c/81/postgresql/ (Вячеслав почему-то убрал статью, но в сети куча подобных статей, например http://www.1c-remote.ru/nastroika_postgre_dlya_1c.html) , после чего заново прогоните тест. Умолчательные значения ориентированы больше на веб-серверную специфику (простые маленькие запросы).
30. Кинстинтин (Кинстинтин) 16.04.13 19:30
Нет, в данный момент к серверу не подключен ни один пользователь - запускаю его с нуля. Сам удивился почему так сильно разнятся графики с другими людьми. Буду читать - разбираться. Спасибо большое!
31. Антонио (Fragster) 16.04.13 19:54
(30) Кинстинтин, А график уже с увеличенным shared_buffers?
32. Кинстинтин (Кинстинтин) 17.04.13 09:51
Я уже и не помню с увеличенным shared_buffers или нет. Вот результаты нового тестирования со следующими настройками, которые я корректировал: shared_buffers = 4096MB, temp_buffers = 32MB, work_mem = 10MB, maintenance_work_mem = 60MB
Прикрепленные файлы:
33. Антонио (Fragster) 17.04.13 12:35
(32) Кинстинтин, ну, видимо, первый график до увеличения - разница в 2 раза. Но все равно - не должен он так загибаться вниз, должен выходить в горизонталь при достижении предела производительности (как у почти всех остальных результатов, в том числе и у postgre. Правда, как я понял, остальные результаты postgre - на линуксе).

А диски какие? Также можно поэкспериментировать с fsync = off у постгре.
34. Кинстинтин (Кинстинтин) 17.04.13 13:26
Все тесты на Винде. 4 диска Hitachi HUS156030VLS600 15000RPM на контроллере LSI 9260-8i, как уже выше писал RAID 10. 1С: Предприятие 8.2.17.153.
С fsync = off потестирую сегодня попозже, как серверный ключ освободится. Кстати, насколько помню, на рабочей базе fsync крайне не рекомендуют же выключать, если бэкапса управляемого нету?
35. Антонио (Fragster) 17.04.13 13:58
(34) Кинстинтин, да, по поводу упса - верно. Но он же есть, да?
36. Кинстинтин (Кинстинтин) 17.04.13 14:16
В магазине есть :-) А если серьезно, то планируем покупать. А пока базы не рабочие - можно и поэкспериментировать. Может, еще какие настройки подкрутить в postgre? Неужели у остальных все "ровно" работает?
37. Кинстинтин (Кинстинтин) 17.04.13 17:59
fsync = off. Графики практически не изменились.
38. Кинстинтин (Кинстинтин) 18.04.13 18:44
Поставил на встроенный контроллер Интел древненький жесткий диск (Seagate 320GB 7200.12). Установил с нуля систему. В postgresql все настройки по умолчанию. Результат получился еще больше, чем в RAIDе.
Прикрепленные файлы:
39. Кинстинтин (Кинстинтин) 18.04.13 18:45
Но поведение графиков все же схожее. Куда рыть? Сейчас гоняю на других настройках.
40. Антонио (Fragster) 18.04.13 18:59
(39) Кинстинтин, Есть возможность попробовать на линуксе?
41. Антонио (Fragster) 18.04.13 19:06
Еще есть вариант посмотреть perfmon.msc на предмет того, во что упирается - в процессор, в диски или еще во что (очередь к чему становится сиииильно больше на 32 потоках чем на 16). Но судя по тому, что при замене дисков пик переместился в 8 потоков на 16 - дело таки в них. Ну, или в каких-то других настройках, которые были изменены между тестами.
42. Кинстинтин (Кинстинтин) 18.04.13 19:35
Линукса, к сожалению нету. Ни разу не пользовался perfmon.msc. Как юзать, подскажите, плиз. Ниже графики с настройками: 1000 - подключений, shared_buffers = 4096MB, temp_buffers = 32MB. Остальное по умолчанию
Прикрепленные файлы:
43. Кинстинтин (Кинстинтин) 19.04.13 17:33
Кстати, а "Вид СУБД" нужно выбирать? :-) А то я выбираю Postgre SQL, и еще ставлю крыжик "Сервер СУБД". Хотя, пробовал по-разному - результаты сильно не изменялись
44. Антонио (Fragster) 19.04.13 17:42
(43) Кинстинтин, все, что находится на форме теста, кроме того, что на вкладках в нижней части - предназначено для других людей, которые будут сравнивать свои результаты, с результатами, полученными через обработку обмен результатами. Табличная часть - она предназначена для того, чтобы можно было указать описание сервера СУБД, если он не на компьютере с сервером 1с. Ну, или поставить галочку на строке с сервером 1с, показав таким образом, что они находятся на одном компьютере.
45. Кинстинтин (Кинстинтин) 19.04.13 20:36
А вот графики из связки Windows Server 2012 + MS SQL Server 2012
Прикрепленные файлы:
46. Антонио (Fragster) 19.04.13 20:53
(45) Кинстинтин, Это те же железяки? Да уж, разница очевидна :)
Вот еще бы db2 протестировать...
47. Кинстинтин (Кинстинтин) 20.04.13 09:38
Интересно, сейчас проанализировал графики - до 4-х потоков PostgreSQL примерно с MS SQL наравне, а потом резко падает вниз. Тесты производились на том же железе - причем на старом винчестере (RAID-массив отключен). Следовательно, делаю выводы, что падение скорости все-таки из-за PostgreSQL, возможно, настройки. А железо в норме. Еще думал, может, Сервак 2012, но он бы и с MS SQL тормозил.
А что нам даст тестирование db2?
48. Антонио (Fragster) 20.04.13 12:22
(47) просто Postgre очень сильно полагается на кэширование IO операционной системы, а MSSQL использует свои механизмы. Именно по этому я про линукс и говорил. Возможно, что дело именно в том, что постгре под виндой.

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

Тестирование db2 - оно даст полное сравнение 3-х СУБД на одинаковом железе (такого исслдедования я еще не видел).
49. Кинстинтин (Кинстинтин) 22.04.13 08:34
В принципе, у меня со временем тоже негусто, но потестить интересно. Опять же, нужно ведь на полноценной версии пробовать, а не на ограниченной IBM DB2 Express-C. Я правильно понимаю? Полную, к сожалению, не нашел.
50. Андрей (ansh15) 22.04.13 13:02
(48) Тогда уж и Oracle тоже надо протестировать, чтобы совсем полная картина получилась. И не Express, конечно.
51. Кинстинтин (Кинстинтин) 29.04.13 06:39
В общем запускал групповую обработку - проведение документов одной и той же базы на серваке на PostgreSQL и MS SQL 2012 - результаты по времени практически один в один. Остался доволен. Прекратил поиски - запустил сервер в работу.
52. Антонио (Fragster) 29.04.13 11:22
(51) Ну так стандартное перепроведение - оно же однопоточное, а разница в однопоточном режиме не так уж и велика. Кстати, для такого режима лучше всего что-нибудь с большим количеством мегагерц (проца и шины) и маленьким - ядер :) Например, восстанавливать последовательность в отдельном узле РИБ и компом с АМД на 4,5-5 ГГц, причем на файловой (если база влезает в файловую, конечно)
53. Андрей (ansh15) 08.05.13 15:13
Почему-то не хочет показывать результаты других пользователей, сам обмен результатами выполняется без ошибок. Платформа 8.2.18.82, на более ранних все показывалось. И еще может подвиснуть сервер приложений, перестает отвечать на обращения как из клиента так и из консоли администрирования при количестве фоновых заданий от 64-х и выше. А, и еще не показывает результаты выполнения каждого теста online, только после окончания всего теста во вкладке результаты появляются строки.
54. Антонио (Fragster) 08.05.13 19:01
(53) ansh15, на .18 не тестировал, возможно дело в платформе. а различия по результатам есть?
55. Антонио (Fragster) 08.05.13 19:52
По поводу обмена: видимо, срабатывает ограничение по памяти на хостинге. Переделал, теперь выплевывает по 10 результатов за одно нажатие кнопки обмена, просто надо нажимать на "обмен", пока не перестанут приходить новые результаты, в следующих версиях сделаю автоматическую подгрузку оставшихся частей.
56. Андрей (ansh15) 08.05.13 21:35
(54) Fragster, Нет, различий нет, также осталось. По поводу подвисания сервера приложений, подумал, может увеличить число рабочих процессов до 4-8, сейчас 2 запущено. При одном рабочем процессе висло уже на 48-и фоновых заданиях. И еще наблюдение, при выполнении теста на синхронизацию потоков при 112 потоках, сеансы с PostgreSQL не завершаются, а остаются в состоянии idle in transaction и висят сколь угодно долго,вплоть до рестарта сервера приложений. Тут http://gray-hemp.blogspot.ru/2008/08/idle-in-transactions.html немного пишут про это, в принципе, не страшно, в повседневной работе такого не возникает, но все же...
57. Андрей (ansh15) 09.05.13 10:45
58. Алексей (nevro) 14.05.13 09:14
Несколько вопросов:
1. Этот файл конфигурации объединять с тестируемой конфигурацией?
2. Обязательно запускать тест на работающей конфигурации или можно развернуть бэкап и запускать на нем? Т.е. симулируется ли работа?
3. Поддерживаются варианты: файловый и клиент-серверный? По комментариям выходит, что оба - просто уточнить.
Спасибо.

p.s. хотим сравнить скорость работы в обоих вариантах, т.к. база весит пока что около 2 гигов.
59. Антонио (Fragster) 14.05.13 10:51
(58) nevro, в отличии от тестцентра этот тест предназначен для измерения производительности не алгоритмов + субд + железа, а только субд + железа. Это самостоятельная конфигурация, ни с чем объединять ее не требуется, просто загрузить .cf в пустую базу.

Пока поддерживается только клиент-серверный вариант из-за сложности организации многопоточности в файловом варианте.
60. Алексей (nevro) 14.05.13 11:46
>>в отличии от тестцентра этот тест предназначен для измерения производительности не алгоритмов + субд + железа, а только субд + железа
Понятно. По файловому варианту тесты существуют?
61. Антонио (Fragster) 14.05.13 11:57
(60) nevro, 1с:тест-центр будет работать в многопоточном режиме, но там настраивать надо. В однопоточном режиме - есть тест Гилева: http://www.gilev.ru/tpc1cgilv/ однако же из графиков в топике и комментариях видно, что однопоточный режим не полностью характеризует производительность системы, интегральная (суммарная по всем потокам) производительность при росте количества потоков может расти весьма значительно.
62. Алексей (nevro) 14.05.13 17:05
Многопоточность - это количество подключений к базе?
63. Антонио (Fragster) 14.05.13 18:33
(62) в смысле? Многопоточность - это выполнение чего-то в несколько "потоков", параллельно, т.е. "свойство действия". В данном тесте количество подключений к базе равно количеству "потоков" теста (просто потому что 1с так работает) + 1 подключение, из которого осуществляется запуск теста.
64. adylkhan Фамилия (khan) 15.05.13 10:25
Добрый день, Подскажите пожалуйста на что влияет реквизит "Количество пользователей" в справочнике "Тесты"
65. Антонио (Fragster) 15.05.13 12:09
(64) khan, все, кроме того, что находится на панели "настройки", является информационным и в большей степени нацелено на информирование остальных пользователей теста при обмене результатами.

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

Написать подробную справку/инструкцию пока руки не доходят :(
66. adylkhan Фамилия (khan) 18.05.13 10:03
Тестирую два сервера БД, т.е. сервер 1С - один, и два сервера БД. Получилось непонятно : одинаковый тест сервер БД1 показывает 976 на поток в среднем, сервер БД2 - 920, но при этом на сервере БД2 тест выполнился за 1 ч 52 мин, а на сервер БД1 - 2 ч 43 мин.
Т.е. по тесту БД1 производительней, а по времени выполнения результат обратный. Как это понять ?
67. Антонио (Fragster) 18.05.13 11:35
(66) khan, очень просто - после проведения собственно тестов идет удаление тех данных, которые были созданы в процессе, и чем больше этих данных - тем дольше они удаляются, а удалялись они в 1 поток в версиях до 2.0.006. В версии 2.0.006 удаление происходит по разным видам метаданных параллельно, что сократило время теста до ~35 минут на стандартной точности (по крайней мере на серверах где я тестил).
68. Антонио (Fragster) 18.05.13 11:38
кстати производительность сервера 1с намного сильнее влияет на результаты, чем производительность сервера СУБД, если они разнесены
69. Степан S (Ed111111) 22.05.13 00:55
У кого какие результаты? Похвастайтесь. И какая конфигурация сервера дает такую производительность обязательно укажите)
70. Алексей Потопальский (Buldog57) 14.06.13 16:16
Просьба прокомментировать windows2012 + sql2008r2(64), 1c 8.2.18.61(32 битная)
Железо: Сервер SRV|Legion SL2500/4UT8G2 / CPU-E5-2620x2 / 65G 1333мгц / SAS3,5-300G15Kx4 / LSI Megaraid 9271-4i
raid 10.
Прикрепленные файлы:
71. Антонио (Fragster) 14.06.13 16:32
(70) Buldog57, а в районе 1-2 потоков можно покрупнее? или без временных таблиц. Вообще - сервер - зверь :)
72. Алексей Потопальский (Buldog57) 14.06.13 16:37
73. Алексей Потопальский (Buldog57) 14.06.13 16:42
(71) Fragster, Что то не пойму а что ты там хочешь увидеть?
74. Антонио (Fragster) 14.06.13 16:50
(73) Buldog57, сколько "попугаев" в 1 поток. Вообще - для практического применения можно воспользоваться графиком "производительность на поток", количество потоков, когда график пересечет 500 - это "условно максимальное" количество _активных_ пользователей, при котором они еще как-то смогут работать. Имеется ввиду именно железо, если на реальной базе "тормоза" начинаются сильно раньше - то, конечно, можно наращивать железо, но намного больший эффект даст оптимизация конфигурации 1с и/или организации бизнес процессов (применительно к серверу из (70)). Ну а если не все пользователи являются активными - то количество пользователей можно пропорционально увеличить.
75. Антонио (Fragster) 14.06.13 16:52
Также показателен отчет "профиль выполнения" - он показывает сколько времени длилась одна операция, т.е. если 90% выполнялись 15мс, 9% - 30, а 1% - больше секунды - то отчет "профиль выполнения" это покажет.
76. Алексей Потопальский (Buldog57) 14.06.13 17:05
Теперь скину только через две недели когда заменят рейд плату глючная попалсь(((
77. Алексей Т. (CratosX) 14.08.13 21:21
(76) Buldog57, очень хочется посмотреть попугаев в одном потоке.
78. Алексей Т. (CratosX) 14.08.13 21:33
(0) Fragster
Версия 2.0.006
Также при очистке данных регистров накопления и сведений теперь выключаются итоги.


Включаются по окончании удаления или перед запуском теста?
79. Алексей Потопальский (Buldog57) 19.08.13 09:37
(77) Сегодня привезут сервак завтра поиграюсь повешу скрин)
80. Антонио (Fragster) 21.08.13 18:00
(78) CratosX, включаются по окончании удаления. Но удаление "на всякий случай" проводится еще и перед запуском теста - на случай, если предыдущий запуск отвалился и в регистре есть данные.
81. Алексей Потопальский (Buldog57) 22.08.13 13:47
Ура приехал сервачок)) выкладываю скрины, размер объектов обычные, повышенная точность очень долго плиз комменты)) потом еще с большими объектами тестану!!!
Прикрепленные файлы:
82. Алексей Потопальский (Buldog57) 03.09.13 17:17
83. Алексей Т. (CratosX) 03.09.13 17:21
(82) Buldog57, сдохли от зависти))
84. Алексей Потопальский (Buldog57) 03.09.13 17:52
(83) CratosX, Ой да ладно))) не ужели прям гипер система)) даже ссд винтов нет:((
85. Babys (babys) 12.09.13 16:38
Fragster, объясните плз, для тех кто в танке. Могу ли я на Вашем тесте проверить нагрузочную способность 1С+SQL фермы на 50000 пользователей?
86. Антонио (Fragster) 13.09.13 07:45
(85) babys, там сейчас стоит ограничение в 112 потоков выполнения, скорее всего это для вашей системы будет маловато. Но код открыт, можете добавить/поменять количество потоков теста, только прошу в таком случае не обмениваться результатами, чтобы не "портить" общую базу
87. Антонио (Fragster) 13.09.13 07:47
(84) Buldog57, ну, у вас в пике 30000 по регистрам всяким, а у меня - 4 (правда этого все равно на 100 сонных пользователей хватает, да) :)
88. Вадим Кушнер (Foma4382) 13.09.13 14:11
Интересная статья! Спасибо!
89. Сергей (Sergant) 17.09.13 08:41
Тестирование не работает, после сообщений -

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)}: Ошибка при вызове метода контекста (ОжидатьЗавершения)
ФоновыеЗадания.ОжидатьЗавершения(МассивЗаданий);
по причине:
Выполнение одного или нескольких заданий завершилось с ошибкой
90. Антонио (Fragster) 17.09.13 12:05
(89) Sergant, прошу сообщить релиз платформы, а также сообщение об ошибке из журнала регистрации.
91. Сергей (Sergant) 17.09.13 15:06
(90) Fragster, платформа 1С 18.109, в ЖР ошибок нет.
92. Сергей (Sergant) 17.09.13 15:11
(90) Fragster, вот последний кусок из ЖР.
...
17.09.2013 15:01:31 Данные. Удаление Зафиксирована Справочник. Справочник
T_SERV5 17.09.2013 15:01:31 (6193126)
Фоновое задание 430 Элемент
17.09.2013 15:01:31 Данные. Удаление Зафиксирована Справочник. Справочник
T_SERV5 17.09.2013 15:01:31 (6193470)
Фоновое задание 430 Элемент
17.09.2013 15:01:31 Фоновое задание. Успешное завершение
T_SERV5 Справочник.Справочник
Фоновое задание 430
17.09.2013 15:01:31 Сеанс. Завершение
T_SERV5
Фоновое задание 430
17.09.2013 15:01:32 Сеанс. Начало
T_SERV5
Фоновое задание 435
17.09.2013 15:01:32 Сеанс. Начало
T_SERV5
Фоновое задание 435
17.09.2013 15:01:32 Фоновое задание. Запуск
T_SERV5 Справочник.Справочник
Фоновое задание 435
17.09.2013 15:01:32 Фоновое задание. Успешное завершение
T_SERV5 Справочник.Справочник
Фоновое задание 435
17.09.2013 15:01:32 Сеанс. Завершение
T_SERV5
Фоновое задание 435
17.09.2013 15:01:32 Сеанс. Начало
T_SERV5
Фоновое задание 438
17.09.2013 15:01:32 Сеанс. Начало
T_SERV5
Фоновое задание 437
17.09.2013 15:01:32 Сеанс. Начало
T_SERV5
Фоновое задание 438
17.09.2013 15:01:32 Сеанс. Начало
T_SERV5
Фоновое задание 437
17.09.2013 15:01:32 Фоновое задание. Запуск
T_SERV5 Документ.РегистраторРС
Фоновое задание 437
17.09.2013 15:01:32 Фоновое задание. Запуск
T_SERV5 РегистрНакопления.РН
Фоновое задание 438
17.09.2013 15:01:32 Фоновое задание. Успешное завершение
T_SERV5 Документ.РегистраторРС
Фоновое задание 437
17.09.2013 15:01:32 Сеанс. Завершение
T_SERV5
Фоновое задание 437
17.09.2013 15:01:32 Фоновое задание. Успешное завершение
T_SERV5 РегистрНакопления.РН
Фоновое задание 438
17.09.2013 15:01:32 Сеанс. Завершение
T_SERV5
Фоновое задание 438
17.09.2013 15:01:32 Сеанс. Начало
T_SERV5
Фоновое задание 441
17.09.2013 15:01:32 Сеанс. Начало
T_SERV5
Фоновое задание 441
17.09.2013 15:01:32 Сеанс. Начало
T_SERV5
Фоновое задание 443
17.09.2013 15:01:32 Сеанс. Начало
T_SERV5
Фоновое задание 442
17.09.2013 15:01:32 Сеанс. Начало
T_SERV5
Фоновое задание 443
17.09.2013 15:01:32 Сеанс. Начало
T_SERV5
Фоновое задание 442
17.09.2013 15:01:32 Фоновое задание. Запуск
T_SERV5 РегистрБухгалтерии.РБ
Фоновое задание 441
17.09.2013 15:01:32 Фоновое задание. Запуск
T_SERV5 РегистрСведений.РС
Фоновое задание 443
17.09.2013 15:01:32 Фоновое задание. Запуск
T_SERV5 Документ.РегистраторРБ
Фоновое задание 442
17.09.2013 15:01:32 Фоновое задание. Успешное завершение
T_SERV5 Документ.РегистраторРБ
Фоновое задание 442
17.09.2013 15:01:32 Сеанс. Завершение
T_SERV5
Фоновое задание 442
17.09.2013 15:01:32 Фоновое задание. Успешное завершение
T_SERV5 РегистрСведений.РС
Фоновое задание 443
17.09.2013 15:01:32 Сеанс. Завершение
T_SERV5
Фоновое задание 443
17.09.2013 15:01:33 Фоновое задание. Успешное завершение
T_SERV5 РегистрБухгалтерии.РБ
Фоновое задание 441
17.09.2013 15:01:33 Сеанс. Завершение
T_SERV5
Фоновое задание 441
93. Антонио (Fragster) 17.09.13 16:40
(91)(92) Sergant, ну не может же такого быть, что в фоновом задании выбросилось исключение, а в ЖР не отобразилось. В настройках ЖР, судя по всему, уровень журналирования максимальный.

Тест падает стабильно на запуске в два потока (или на очистке после одного потока)? База, я надеюсь, клиент-серверная?
94. Сергей (Sergant) 17.09.13 17:26
(93) Fragster,
уточню симптомы проблема возникает
- при любом кол-ве потоков (возникала при одном двух четырех восьми шестнадцати), результаты предыдущих выполненнх этапах остаются видны, результаты очень низкие.
- работа с мсскл стабильна, проблемы только с посгрес
- иногда тест на посгрес завершается без ошибок.

подключение клиент серверное.
95. Антонио (Fragster) 18.09.13 13:57
(94) Sergant, а вариант с постгре - сервер 1с случайно не на линуксовом сервере без ключа?
96. Сергей (Sergant) 18.09.13 14:29
(95) Fragster, посгре на виндовус вместе с сервером 1с, ия на мистовском форуме видел вам жаловались с таким же сообщением об ошибке, кажется вы тогда не ответили. Кроем того результаты теста неудовлетворительны и вашим тестом 200-550, и тестами гилева 6 баллов, хотя оборудование хорошее, вот такое: серв терминалов: Intel® Xeon® CPU E5-2650 0 @ 2.00GHz, 2*32, RAM 64ГБ, а серв 1с + субд посгрес: Intel® Xeon® CPU E5-2620 0 @ 2.00GHz, 2*12, 48 ГБ
97. Антонио (Fragster) 18.09.13 19:23
(96) Sergant, эта строка - ожидание очистки данных после выполнения теста. Ничего криминального там нет, просто удаление наборов регистров и справочников/документов, параллельно. Все таблицы - разные, так что блокировки возникать не должны (опять же, на самих тестах, где все данные пишутся в одну таблицу - блокировок нет).

Опять же смущает отсутствие записей в ЖР. Можно попробовать еще проанализировать техножурнал, чтобы выяснить причину ошибок.

По поводу производительности - вы хотите сказать, что разница между MS SQL и Postgres по синтетическим тестам есть, а по реальной работе на том же железе - нет (или она противоположная)?
98. Гость 18.09.13 19:52
Я присоединюсь к вопросу.
По поводу PostgreSQL: по моему опыту 1С заметно быстрее работает с постгри, установленном на Linux. Не сочтите за спам, моя статья http://itisok.ru/postgresql-klaster-i-zametki-po-rabote-s-1s-serverom/ раскрывает вопрос установки PGSQL для 1С Сервера. В представленной реализации Постгри держал до 40 пользователей одновременно, в 100 разных базах 1С 8.2, включая до 25 пользаков в одной основной большой кастомизированной базе на основе конфигурации Бухгалтерия. В отчетные периоды бухгалтерия не особо радовалась производительности, но решение с постгри успешно применялось.
На практике и субъективно, 1С Сервер с MSSQL работает гораздо быстрее, начиная с загрузки информационной базы, заканчивая закрытиями периодов (второе может выполниться быстрее в 2-3 раза).
WellMaster; +1 Ответить
99. Сергей (Sergant) 19.09.13 07:52
(97) Fragster, сервер на посгре новый и на нем пока не работали массово пользователи. поэтому ничего не мгу сказать о субъективной производительности на реальной нагрузке. Смущает что сервер не нагружен ничем, сервер нормальный, а тесты показывают что он вообще не сервер. Например видно же по чужим тестам как на слабом оборудовании результаты тестирования у них отличные. Как они такого добились. Или нам просто брак достался?
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа