Многопоточное тестирование производительности сервера 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
560
.cf 110,48Kb 560 Скачать

См. также

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

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

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

А вот с этого места пожалуйста подробнее? Что именно и где? а то нужно админам передать, я ж в самой настройке зелень, аки.... кузнечека )
12. Антонио Антонио (Fragster) 658 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) 658 06.03.13 18:29 Сейчас в теме
(13) ArtfulCrom, только заполните инфу о сервере СУБД, если он не на машине с сервером 1с и нажмите "Опубликовать" после завершения тестов, пожалуйста. Вот, кстати, задача на будущее, собирать информацию о кластере серверов 1с, если он размазан по разным машинам.
16. Антонио Антонио (Fragster) 658 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) 658 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) 658 26.03.13 20:43 Сейчас в теме
(19) mybracho, закончится через пол часика, анализировать - там есть 2 отчета: "Отчет по тесту" и "Профиль результата". Первый показывает сводную информацию и падение производительности в зависимости от количества активных пользователей, второй - насколько меняется распределение времени выполнения одной операции в зависимости от количества потоков, т.е. насколько влияют блокировки и обслуживание служебных таблиц типа итогов, нумераторов и т.п.

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

производительность менее 500 в тесте 1 потока - говорит, что либо что-то с железом, либо оно совсем старое.
21. Антонио Антонио (Fragster) 658 26.03.13 20:45 Сейчас в теме
Также интересная вещь, определяющая производительность встроенного механизма управляемых блокировок сервера 1с - обработка "проверка синхронизации" - она проверяет, через сколько времени сколько потоков получают информацию о снятии блокировки.
22. Андрей Sh. (ansh15) 27.03.13 10:40 Сейчас в теме
Может конфу для файлового варианта отдельно сделать? А В клиент-серверном оставить как было, с показом результатов по мере выполнения тестов. А то, первый раз когда запустил, подумал, что сервер подвесил. Хорошо, что уже никто не работал...
23. Антонио Антонио (Fragster) 658 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) 658 10.04.13 11:28 Сейчас в теме
(24) serg1974, спасибо за сообщение об ошибке. Оказывается, код возврата появился только в 8.2.15. Сейчас подготовлю обновление с исправлением.
26. Vladimir K (KroVladS) 11.04.13 11:44 Сейчас в теме
Хотелось бы увидеть сколько попугаев выдают типовые конфигурации серверов, чтобы было понятно с чем сравнивать.
27. Антонио Антонио (Fragster) 658 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) 658 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) 658 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) 658 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) 658 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) 658 18.04.13 18:59 Сейчас в теме
(39) Кинстинтин, Есть возможность попробовать на линуксе?
41. Антонио Антонио (Fragster) 658 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) 658 19.04.13 17:42 Сейчас в теме
(43) Кинстинтин, все, что находится на форме теста, кроме того, что на вкладках в нижней части - предназначено для других людей, которые будут сравнивать свои результаты, с результатами, полученными через обработку обмен результатами. Табличная часть - она предназначена для того, чтобы можно было указать описание сервера СУБД, если он не на компьютере с сервером 1с. Ну, или поставить галочку на строке с сервером 1с, показав таким образом, что они находятся на одном компьютере.
45. Кинстинтин (Кинстинтин) 19.04.13 20:36 Сейчас в теме
А вот графики из связки Windows Server 2012 + MS SQL Server 2012
Прикрепленные файлы:
46. Антонио Антонио (Fragster) 658 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) 658 20.04.13 12:22 Сейчас в теме
(47) просто Postgre очень сильно полагается на кэширование IO операционной системы, а MSSQL использует свои механизмы. Именно по этому я про линукс и говорил. Возможно, что дело именно в том, что постгре под виндой.

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

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

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

Пока поддерживается только клиент-серверный вариант из-за сложности организации многопоточности в файловом варианте.
60. Алексей (nevro) 14.05.13 11:46 Сейчас в теме
>>в отличии от тестцентра этот тест предназначен для измерения производительности не алгоритмов + субд + железа, а только субд + железа
Понятно. По файловому варианту тесты существуют?
61. Антонио Антонио (Fragster) 658 14.05.13 11:57 Сейчас в теме
(60) nevro, 1с:тест-центр будет работать в многопоточном режиме, но там настраивать надо. В однопоточном режиме - есть тест Гилева: http://www.gilev.ru/tpc1cgilv/ однако же из графиков в топике и комментариях видно, что однопоточный режим не полностью характеризует производительность системы, интегральная (суммарная по всем потокам) производительность при росте количества потоков может расти весьма значительно.
62. Алексей (nevro) 14.05.13 17:05 Сейчас в теме
Многопоточность - это количество подключений к базе?
63. Антонио Антонио (Fragster) 658 14.05.13 18:33 Сейчас в теме
(62) в смысле? Многопоточность - это выполнение чего-то в несколько "потоков", параллельно, т.е. "свойство действия". В данном тесте количество подключений к базе равно количеству "потоков" теста (просто потому что 1с так работает) + 1 подключение, из которого осуществляется запуск теста.
64. adylkhan Фамилия (khan) 15.05.13 10:25 Сейчас в теме
Добрый день, Подскажите пожалуйста на что влияет реквизит "Количество пользователей" в справочнике "Тесты"
65. Антонио Антонио (Fragster) 658 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) 658 18.05.13 11:35 Сейчас в теме
(66) khan, очень просто - после проведения собственно тестов идет удаление тех данных, которые были созданы в процессе, и чем больше этих данных - тем дольше они удаляются, а удалялись они в 1 поток в версиях до 2.0.006. В версии 2.0.006 удаление происходит по разным видам метаданных параллельно, что сократило время теста до ~35 минут на стандартной точности (по крайней мере на серверах где я тестил).
68. Антонио Антонио (Fragster) 658 18.05.13 11:38 Сейчас в теме
кстати производительность сервера 1с намного сильнее влияет на результаты, чем производительность сервера СУБД, если они разнесены
69. Степан S (Ed111111) 11 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) 658 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) 658 14.06.13 16:50 Сейчас в теме
(73) Buldog57, сколько "попугаев" в 1 поток. Вообще - для практического применения можно воспользоваться графиком "производительность на поток", количество потоков, когда график пересечет 500 - это "условно максимальное" количество _активных_ пользователей, при котором они еще как-то смогут работать. Имеется ввиду именно железо, если на реальной базе "тормоза" начинаются сильно раньше - то, конечно, можно наращивать железо, но намного больший эффект даст оптимизация конфигурации 1с и/или организации бизнес процессов (применительно к серверу из (70)). Ну а если не все пользователи являются активными - то количество пользователей можно пропорционально увеличить.
75. Антонио Антонио (Fragster) 658 14.06.13 16:52 Сейчас в теме
Также показателен отчет "профиль выполнения" - он показывает сколько времени длилась одна операция, т.е. если 90% выполнялись 15мс, 9% - 30, а 1% - больше секунды - то отчет "профиль выполнения" это покажет.
76. Алексей Потопальский (Buldog57) 14.06.13 17:05 Сейчас в теме
Теперь скину только через две недели когда заменят рейд плату глючная попалсь(((
77. Алексей Т. (CratosX) 97 14.08.13 21:21 Сейчас в теме
(76) Buldog57, очень хочется посмотреть попугаев в одном потоке.
78. Алексей Т. (CratosX) 97 14.08.13 21:33 Сейчас в теме
(0) Fragster
Версия 2.0.006
Также при очистке данных регистров накопления и сведений теперь выключаются итоги.


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

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

подключение клиент серверное.
95. Антонио Антонио (Fragster) 658 18.09.13 13:57 Сейчас в теме
(94) Sergant, а вариант с постгре - сервер 1с случайно не на линуксовом сервере без ключа?
96. Сергей (Sergant) 19 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) 658 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 19.09.13 07:52 Сейчас в теме
(97) Fragster, сервер на посгре новый и на нем пока не работали массово пользователи. поэтому ничего не мгу сказать о субъективной производительности на реальной нагрузке. Смущает что сервер не нагружен ничем, сервер нормальный, а тесты показывают что он вообще не сервер. Например видно же по чужим тестам как на слабом оборудовании результаты тестирования у них отличные. Как они такого добились. Или нам просто брак достался?