Нагрузочное тестирование системы DIRECTUM на 5000 одновременно работающих пользователях. Часть 2. Подготовка базы данных.

6 9

Часть 1                                                                                     Часть 3

Проведенные в 2005 году тестирования показало, что размер базы данных на скорость работы с системой не влияет. Тем не менее, было решено проводить тестирование на базе данных, соответствующей 2 годам работы 5000 пользователей.

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

Рисунок 1 Входные параметры сценария для создания пользователей

После создания пользователей необходимо было задать пароли для всех пользователей. Для этого использовали следующий сценарий:

 

!Query=CreateQuery()

!Query.CommandText="select UserCode

from LTUsers

where Type='П'"

!Query.Open

!Query.First

while !Query.EOF=false

!UserName=!Query.FieldByIndex(0).Value

!Сhange=CreateQuery()

!Сhange.CommandText="exec sp_password @old = null , @new = '11111' , @loginame = '"&!UserName&"'"

!Сhange.Execute

!Query.Next

endwhile

!Query.Close

ShowMessage("Готово!")

 

Для того, чтобы использовать созданных пользователей в тестировании, нужно было, чтобы у каждого пользователи были стандартные папки (Исходящие, Входящие, Избранное). Паки эти создаются при первом входе в систему. Делать это вручную оказалось очень долго. Поэтому был написан сценарий, который для каждого пользователя создает объект Application и получает родительские паки следующим образом

RootFolders = Folders.RootFolders

При анализе результатов, полученных с помощью механизма профайлинга системы DIRECTUM  в нашей компании, были выделены следующие характеристики базы данных:

  • количество документов – 4.5 млн.;
  • средний размер документов  - 600кб;
  • типы документов - 90% офисных документов (Word, Excel, PowerPoint), 10% графических;
  • количество РКК – 2.25 млн.;
  • количество задач – 7.5 млн.;

К сожалению, из-за ограниченности количества дисков в системе хранения данных, была создана база, соответствующая только 10 месяцам работы 5000 пользователей. В наличии было только 2 ТБ свободного места, вместо 5 ТБ требуемого.

Таблица 1 Характеристики базы данных

Параметр

Значение

Число документов

1868316

Число задач

2967058

Число заданий

2917058

Число записей в справочнике РКК («Регистрационно-контрольные карточки»)

901204

Число записей в справочнике ОРГ («Организации»)

12340

Размер базы данных (ГБ)

1650

Предварительно предполагалось, заданий будет в 2 раза больше чем задач и их созданием должна была заниматься служба workflow. В базе данных было создано необходимое количество задач и поставлено в очередь обработки службой. Но как оказалось, скорость обработки очереди задач для быстрой закачки данных не удовлетворяет. За 1 час было обработано порядка 7000 задач. С учетом того, что задач должно было быть порядка 1.5 млн, то обработка заняла бы порядка 214 часов. Пришлось искать способы ускорения закачки заданий.

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

Собственно, как же происходила закачка такого большого количества данных. Была написана утилита, позволяющая создавать большое количество документов, РРК, задач. Суть утилиты в том, что все создание происходит с помощью прямых sql-запросов к базе данных. Выглядит она следующим образом.

Рисунок 2 Утилита для закачки данных

Прошу строго не судить за юзабельность утилиты Нахмуренный.

Вот некоторые интересные цифры, которые были получены при закачке данных:

        1. Время создания 1000000 задач - 40 мин.

        2. Время создания 500000 РКК - 15 мин.

        3. Время создания 100000 документов – 35 мин.

Далее расскажу о методике тестирования

6
Авторизуйтесь, чтобы оценить материал.
1
Александр Бровин

Это старая версия утилиты Сеичас многих контролов нет уже

Вячеслав Смирнов

На каком тестовом стенде это было (Гигагерцы, Гигабайты, Террафлопы, Гигабиты/сек)?

 

Пусть в компании работает 500 человек (предположим что это так, для округления):

количество документов – 4.5 млн.;

количество задач – 7.5 млн.;

тогда на среднего директумовца приходится 9000 документов и 15000 задач.

 

Расчётная компания:

За 10 месяцем работы 5000 пользователей, они создали бы 1868316 документов и 2967058 задач.

Значит:

1. На 1 пользователя приходится 373,6632 документов

2. Скорость создания документов 1-м пользователем: 37,36632 документов в месяц.

 

Так как средний пользователь Директума создал 9000 документов, то он постратил на это примерно 241 месяц или 20 лет.

Вывод - если в компании работает 500 человек, то каждый их них имеет стаж работы около 20 лет.

Игорь Набоков

Пытаюсь понять расчеты предыдущего комментатора:

 

Пусть в компании работает 500 человек (предположим что это так, для округления):количество документов – 4.5 млн.;количество задач – 7.5 млн.;

Откуда такое количество документов для 500 человек?

Вячеслав Смирнов
При анализе результатов, полученных с помощью механизма профайлинга системы DIRECTUM в нашей компании, были выделены следующие характеристики базы данных: количество документов – 4.5 млн.; средний размер документов - 600кб; типы документов - 90% офисных документов (Word, Excel, PowerPoint), 10% графических; количество РКК – 2.25 млн.; количество задач – 7.5 млн.;

Т.о. в нашей компании 4,5 млн. документов. Из этих соображений и расчёт. А сколько человек у нас в компании (было + есть), которые хоть как то приложили руку к созданию документов - да около 500.

Александр Ворончихин
Т.о. в нашей компании 4,5 млн. документов. Из этих соображений и расчёт. А сколько человек у нас в компании (было + есть), которые хоть как то приложили руку к созданию документов - да около 500.

4,5 млн. документов в нашей базе, это обман с твоей стороны Слава. Я нигде этого не писал. То что на основе анализа нашей базы были получены эти данные, то это да. Но эти данные можно легко вести полцчив данные на одного человека.

Александр Ворончихин

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

Игорь Набоков
При анализе результатов, полученных с помощью механизма профайлинга системы DIRECTUM  в нашей компании, были выделены следующие характеристики базы данных: количество документов – 4.5 млн.;

Мне показалось, что в данном случае 4,5 млн взято для 5000 пользователей на основании данных по нашей компании. При этом данные по нашей компании здесь не приведены

Вячеслав Смирнов
4,5 млн. документов в нашей базе, это обман с твоей стороны Слава. Я нигде этого не писал.

Верно, Саша, ты этого не писал.

Чувствовал, что вот эта формулировка таит загадку, (думал - как это профайлинг показал количество документов в базе, зачем вообще количество документов определять таким образом):

При анализе результатов, полученных с помощью механизма профайлинга системы DIRECTUM ...
Александр Ворончихин
Чувствовал, что вот эта формулировка таит загадку, (думал - как это профайлинг показал количество документов в базе, зачем вообще количество документов определять таким образом):

Механизм профайлинга показал сколько создается документов в день. Зная же сколько человек это количество создало, можно вывести документов в в день на одного пользователя. А потом с этим числом хоть что делай, хоть на 500 переводи, хоть на 10 лет.

Авторизуйтесь, чтобы написать комментарий