Тестирование производительности №1 Стресс-тест

  • 02.10.2014 16:47 | 
  • Статьи
  •  | 996 Прочтений

Что мы хотели проверить

ВИКИПЕДИЯ: «Стресс-тестирование обычно используется для понимания пределов пропускной способности приложения. Этот тип тестирования проводится для определения надёжности системы во время экстремальных или диспропорциональных нагрузок и отвечает на вопросы о достаточной производительности системы в случае, если текущая нагрузка сильно превысит ожидаемый максимум.»

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

Нагрузочный тест системы Oremax 6 будет представлен нами несколько позднее.


Как мы это делали

Методика

Для оценки производительности и устойчивости системы в условиях стресс-теста был специально разработан сценарий включающий в себя большинство основных бизнес операций системы Оremax, а именно:

  • Создание заказа на продажу
  • Перевод заказа на продажу в состояние Действующий
  • Резервирование товара
  • Создание заявок на покупку
  • Создание заказа на покупку
  • Перевод заказа на покупку в состояние Действующий
  • Создание приходной накладной
  • Перевод приходной накладной в состояние Действующий
  • Создание заявки на отгрузку
  • Перевод заявки на отгрузку в состояние Действующий
  • Создание расходной накладной
  • Перевод расходной накладной в состояние Действующий
  • Создание счета на оплату
  • Перевод счета на оплату в состояние Действующий
  • Создание платёжного документа
  • Перевод платёжного документа в состояние Действующий
  • Отчет "История отношений с контрагентом"

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

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

Программное обеспечение

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

Мы разработали специальное приложение PerformanceTest, управляющее созданием необходимого количества одновременных подключений (пользователей, потоков) к СУБД и последовательно запускающее выполнение каждой операции из описанного выше сценария одновременно для всех подключений. Причем новая операция не начинается пока не завершится выполнение предыдущей для всех подключений, что дает пиковую нагрузку на входе в каждую операцию. Таким образом мы можем оценить не только стрессоустойчивость системы в целом, но и каждой бизнес операции по отдельности.

Аппаратное обеспечение

Два обычных, абсолютно одинаковых, компьютеров разработчиков:
Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz (8 CPUs), ~3.4GHz, 8192MB RAM, HDD SATA3 1TB,
Windows 7 Профессиональная 64-bit (6.1, Build 7601) Service Pack 1

На одном развернули СУБД, а на другом запускали программу PerformanceTest, которая соединялась с базой данных по локальной сети (100 Мбит в секунду).

СУБД

SAP SQL Anywhere 16.0 (64-bit Windows) редакция Developer

Результаты

Ниже приведены данные в виде графиков и таблиц, которые отражают в том числе сравнительный анализ производительности системы «Oremax 5» и системы нового поколения «Oremax 6».

График 1

Ниже показана зависимость времени выполнения всего сценария от количества пользователей, одновременно работающих с операциями. Как видно «Oremax 5» достигает пика в 200 секунд уже на 100 пользователях, в то время как «Oremax 6» показывает такое же время при работе уже 300 пользователей.

Главные картинки: stress1_diag1.png

 

График 2

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

Главные картинки: stress1_diag2.png

 

График 3

Как видно для «Oremax 6» время выполнения бизнес-операции начинает возрастать экспоненциально приблизительно после 200 пользователей. В то время как среднее время выполнения одной бизнес-операции в 3 секунды для 200 пользователей является очень впечатляющим результатом, т.к. сложно представить какое реальное количество одновременно работающих в системе пользователей должно быть, чтобы двести из них в один момент, например, нажали кнопку сохранения заказа.

Главные картинки: stress1_diag3.png

График 4

На графике показано общее время, потребовавшееся на выполнение определенного количества бизнес-операций (транзакций).

Главные картинки: stress1_diag4.png

 

Таблица 1

Детализированный отчет в разрезе отдельных бизнес операций

 

Количество пользователей

Общее время выполнения, сек

Бизнес операций за секунду

Среднее время на операцию, сек

Строк

Строк в секунду

Среднее время строки, сек

1

Создание заказа на продажу 

 

100

3,39

29,50

1,15

1 000,00

294,96

0,115

 

200

6,74

29,68

2,04

1 980,00

293,81

0,205

 

300

10,12

29,63

3,02

3 000,00

296,32

0,302

2

Перевод заказа на продажу в состояние действующий

 

100

1,54

64,74

0,01

1 000,00

647,39

0,001

 

200

3,07

65,19

0,01

1 980,00

645,37

0,001

 

300

4,66

64,32

0,01

3 000,00

643,22

0,001

3

Резервирование товара 

 

100

1,61

62,23

0,05

117,67

73,22

0,039

 

200

3,27

61,14

0,18

859,67

262,81

0,041

 

300

6,39

46,94

1,65

2 191,67

342,95

0,225

4

Создание заявок на покупку 

 

100

7,95

12,58

6,14

942,67

118,56

0,652

 

200

13,92

14,37

9,67

1 581,67

113,66

1,210

 

300

19,05

15,75

13,00

2 108,00

110,64

1,850

5

Создание заказа на покупку 

 

100

4,44

22,52

3,25

942,67

212,28

0,345

 

200

7,63

26,20

5,19

1 581,67

207,20

0,650

 

300

11,81

25,39

7,69

2 108,00

178,43

1,094

6

Перевод заказа на покупку в состояние действующий

 

100

1,58

63,25

0,02

942,67

596,25

0,002

 

200

3,07

65,09

0,01

1 581,67

514,75

0,002

 

300

4,68

64,17

0,01

2 108,00

450,91

0,001

7

Создание приходной накладной 

 

100

2,47

40,49

1,10

942,67

381,65

0,116

 

200

3,72

53,72

0,81

1 581,67

424,84

0,101

 

300

5,31

56,45

0,51

2 108,00

396,66

0,073

8

Перевод приходной накладной в состояние действующий

 

100

13,89

7,20

11,99

942,67

67,87

1,272

 

200

15,28

13,09

11,12

1 578,33

103,27

1,395

 

300

20,87

14,38

14,48

2 108,00

101,02

2,061

9

Создание заявки на отгрузку

 

100

1,64

60,85

0,08

998,67

607,71

0,008

 

200

4,18

47,84

0,88

1 977,33

472,97

0,088

 

300

4,82

62,30

0,13

3 000,00

623,01

0,013

10

Перевод заявки на отгрузку в состояние действующий

 

100

1,59

63,03

0,06

998,67

629,41

0,007

 

200

3,17

63,05

0,11

1 977,33

623,37

0,011

 

300

5,17

58,04

0,71

3 000,00

580,42

0,071

11

Создание расходной накладной 

 

100

6,07

16,48

2,38

975,33

160,73

0,244

 

200

13,48

14,84

5,68

1 957,33

145,22

0,575

 

300

25,19

11,91

11,82

2 973,33

118,02

1,193

12

Перевод расходной накладной в состояние действующий

 

100

6,31

15,84

4,37

975,33

154,50

0,448

 

200

15,24

13,12

11,36

1 957,33

128,42

1,149

 

300

75,43

3,98

63,01

2 973,33

39,42

6,357

13

Создание счета на оплату 

 

100

1,59

63,06

0,07

975,33

615,09

0,007

 

200

3,11

64,32

0,04

1 957,33

629,44

0,004

 

300

5,13

58,46

0,30

2 973,33

579,37

0,030

14

Перевод счета на оплату в состояние действующий

 

100

1,55

64,52

0,01

975,33

629,25

0,001

 

200

3,07

65,08

0,03

1 957,33

636,95

0,003

 

300

4,67

64,24

0,03

2 973,33

636,73

0,003

15

Создание документа оплаты

 

100

1,58

63,49

0,03

97,67

62,01

0,032

 

200

3,09

64,64

0,03

196,00

63,35

0,032

 

300

4,70

63,89

0,03

297,33

63,32

0,026

16

Перевод в действующий документа оплаты 

 

100

1,56

64,10

0,03

97,67

62,61

0,029

 

200

3,09

64,63

0,03

196,00

63,34

0,030

 

300

4,68

64,10

0,03

297,33

63,53

0,031

17

Отчет "История отношений с контрагентом" 

 

100

2,42

41,26

0,01

 

 

 

 

200

5,03

39,74

0,03

 

 

 

 

300

7,77

38,62

0,05

 

 

 

 

Выводы

Как видно по результатам теста разработчики системы Oremax смогли фактически в ТРИ раза увеличить производительность «Oremax 6» по сравнению с предыдущей версией «Oremax 5».

Более того, несмотря на весьма скромное аппаратное обеспечение, используемое в тесте, система показывает результаты сопоставимые с ведущими (и значительно более дорогими) ERP системами. Это позволяет нашим клиентам не вкладывать огромные деньги в закупку дорогостоящего оборудования или смене ERP системы для обеспечения стабильной работы при расширении их бизнеса.

© 2008-2017 Oremax LLC.
+7 (812) 449-87-07, cont@oremax.ru
Создание сайта: Ji-Touch