Нагрузочное тестирование

Обсуждение вопросов и решений

Модератор: ykolesnikov

Ответить
merkushov
OTRS Бывалый
Сообщения: 310
Зарегистрирован: 25 окт 2012, 15:06
Откуда: Воронеж
Поблагодарили: 2 раза

Нагрузочное тестирование

Сообщение merkushov » 14 янв 2013, 11:20

Есть ли желающие провести нагрузочное тестирование OTRS?

Предлагаю проверить какую нагрузку способно выдержать приложение в стандартной конфигурации и стандартной конфигурации + ITSM. Нужны добровольцы которые на один комп поставят у себя приложение, а с другого запустят тестирование. Чтобы попроще, предлагаю эмулировать обычными GET запросами поведение Клиента и Агента при их навигации по интерфейсу, т.е. фактически тестировать только SELECT.

Я могу рассказать про консольные утилиты siege и ab; про то как ими пользоваться и интерпретировать результаты.
Меркушов Виктор, perl программист

alexus
OTRS Гуру
Сообщения: 5192
Зарегистрирован: 20 сен 2010, 18:17
Откуда: Москва
Благодарил (а): 92 раза
Поблагодарили: 82 раза

Re: Нагрузочное тестирование

Сообщение alexus » 14 янв 2013, 14:38

Можно еще JMeter использовать. А какой замысел? С какими параметрами машин будем тестировать- CPU, RAM, HDD, канал? Дать пару виртуалок под задачу - нет проблем.
С уважением,
Алексей Юсов

Prod: OTRS CE ITSM 6.0.28 on CentOS 7 Apache 2.4 MariaDB 10.4.13 + Radiant Customer Portal

Radiant System OTRS Intergrator RU
Группа OTRS Community в Teleram
Хотите внедрить OTRS? Спросите меня как!

merkushov
OTRS Бывалый
Сообщения: 310
Зарегистрирован: 25 окт 2012, 15:06
Откуда: Воронеж
Поблагодарили: 2 раза

Re: Нагрузочное тестирование

Сообщение merkushov » 14 янв 2013, 15:48

Замысел... посмотреть сколько пользователей и на каком железе может выдержать OTRS: 1) сколько выдержит до отказа в обслуживании; 2) сколько пользователей могут работать одновременно с комфортной скоростью отображения страницы;

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

Для единообразия предлагаю: взять для тестов последнюю стабильную версию OTRS 3.1.12 и если кому-то интересно OTRS+ITSM 3.1.7; использовать настройки OTRS по умолчанию.

Нужно договорится о списке страниц которые будем тестировать, потому что есть лёгкие станицы вроде "Новой заявки", а есть тяжёлый "Поисковый результат". И методике проведения тестирования. Если найдутся желающие, я могу описать процесс нагрузочного тестирования для siege и ab под linux
Меркушов Виктор, perl программист

alexus
OTRS Гуру
Сообщения: 5192
Зарегистрирован: 20 сен 2010, 18:17
Откуда: Москва
Благодарил (а): 92 раза
Поблагодарили: 82 раза

Re: Нагрузочное тестирование

Сообщение alexus » 14 янв 2013, 18:12

Две железные машины, на которых ничего нет, кроме ОТРСа, вряд ли можно найти (т.е. можно, но это уже недешево получится).
С уважением,
Алексей Юсов

Prod: OTRS CE ITSM 6.0.28 on CentOS 7 Apache 2.4 MariaDB 10.4.13 + Radiant Customer Portal

Radiant System OTRS Intergrator RU
Группа OTRS Community в Teleram
Хотите внедрить OTRS? Спросите меня как!

merkushov
OTRS Бывалый
Сообщения: 310
Зарегистрирован: 25 окт 2012, 15:06
Откуда: Воронеж
Поблагодарили: 2 раза

Re: Нагрузочное тестирование

Сообщение merkushov » 21 фев 2013, 14:33

Нагрузочное тестирование OTRS 3.2.2 с помощью консольной утилиты siege

Методика тестирования
1. На машину ставится система OTRS, БД и Web-сервер

2. С помощью утилиты ./bin/otrs.FillDB.pl система наполняется тестовыми тикетами.

Код: Выделить всё

perl ./bin/otrs.FillDB.pl -t 1000
3. Вручную формируется файл с url'ами различных страниц. Отдельно для Агентского и Клиентского интерфейсов.
Пример для Агентского интерфейса

Код: Выделить всё

http://192.168.0.10/otrs/index.pl?Action=AgentDashboard
http://192.168.0.10/otrs/index.pl?Action=AgentDashboard
http://192.168.0.10/otrs/index.pl?Action=AgentTicketQueue;QueueID=2;View=
http://192.168.0.10/otrs/index.pl?Action=AgentTicketQueue;Filter=Unlocked;View=Small;QueueID=1;
http://192.168.0.10/otrs/index.pl?Action=AgentTicketQueue;Filter=Unlocked;View=Medium;QueueID=3;
http://192.168.0.10/otrs/index.pl?Action=AgentTicketStatusView
http://192.168.0.10/otrs/index.pl?Action=AgentTicketStatusView;SortBy=Age;OrderBy=Down;View=;Filter=Closed
http://192.168.0.10/otrs/index.pl?Action=AgentTicketEscalationView
http://192.168.0.10/otrs/index.pl?Action=AgentTicketPhone
http://192.168.0.10/otrs/index.pl?Action=AgentTicketEmail
http://192.168.0.10/otrs/index.pl?Action=AgentStats;Subaction=Overview
http://192.168.0.10/otrs/index.pl?Action=AgentStats;Subaction=EditSpecification;StatID=new
http://192.168.0.10/otrs/index.pl?Action=AgentTicketSearch;Subaction=Search;TakeLastSearch=1;SaveProfile=1;Profile=good
http://192.168.0.10/otrs/index.pl?Action=AgentTicketSearch;Subaction=Search;TakeLastSearch=1;SaveProfile=1;Profile=raw
http://192.168.0.10/otrs/index.pl?Action=AgentTicketZoom;TicketID=596
http://192.168.0.10/otrs/index.pl?Action=AgentTicketZoom;TicketID=59
http://192.168.0.10/otrs/index.pl?Action=AgentTicketZoom;TicketID=51
http://192.168.0.10/otrs/index.pl?Action=AgentTicketZoom;TicketID=70
http://192.168.0.10/otrs/index.pl?Action=AgentTicketZoom;TicketID=94
http://192.168.0.10/otrs/index.pl?Action=AgentTicketZoom;TicketID=95
http://192.168.0.10/otrs/index.pl?Action=AgentTicketZoom;TicketID=96
http://192.168.0.10/otrs/index.pl?Action=AgentTicketZoom;TicketID=121
http://192.168.0.10/otrs/index.pl?Action=AgentTicketZoom;TicketID=202
http://192.168.0.10/otrs/index.pl?Action=AgentTicketZoom;TicketID=256
http://192.168.0.10/otrs/index.pl?Action=AgentTicketZoom;TicketID=265
http://192.168.0.10/otrs/index.pl?Action=AgentTicketZoom;TicketID=266
http://192.168.0.10/otrs/index.pl?Action=AgentTicketZoom;TicketID=267
http://192.168.0.10/otrs/index.pl?Action=AgentTicketZoom;TicketID=290
http://192.168.0.10/otrs/index.pl?Action=AgentTicketZoom;TicketID=341
http://192.168.0.10/otrs/index.pl?Action=AgentTicketOwner;TicketID=600
http://192.168.0.10/otrs/index.pl?Action=AgentTicketMerge;TicketID=600
http://192.168.0.10/otrs/index.pl?Action=AgentTicketPriority;TicketID=600
http://192.168.0.10/otrs/index.pl?Action=AgentTicketHistory;TicketID=600
http://192.168.0.10/otrs/index.pl?Action=AgentTicketPending;TicketID=600
http://192.168.0.10/otrs/index.pl?Action=AgentTicketPhoneInbound;TicketID=600
http://192.168.0.10/otrs/index.pl?Action=AgentTicketOwner;TicketID=548
http://192.168.0.10/otrs/index.pl?Action=AgentTicketMerge;TicketID=219
http://192.168.0.10/otrs/index.pl?Action=AgentTicketPriority;TicketID=592
http://192.168.0.10/otrs/index.pl?Action=AgentTicketHistory;TicketID=582
http://192.168.0.10/otrs/index.pl?Action=AgentTicketPending;TicketID=254
http://192.168.0.10/otrs/index.pl?Action=AgentTicketPhoneInbound;TicketID=412
4. Меряется синтетическая нагрузка с помощью GET запросов утилитки siege
Первым запросом получаем нужную куку

Код: Выделить всё

sudo siege -g "http://localhost/otrs/index.pl?Action=Login&RequestedURL=Action%3DAgentDashboard%3B&Lang=ru&TimeOffset=-240&User=agent_1&Password=12345"
Вторым запускаем тест

Код: Выделить всё

sudo siege -v -t5M -H "Cookie: OTRSAgentInterface=103e801af8846a08b2d84a059b1a13dd0f" -i -c 50 -f urls.txt
Последний раз редактировалось merkushov 22 фев 2013, 10:14, всего редактировалось 1 раз.
Меркушов Виктор, perl программист

merkushov
OTRS Бывалый
Сообщения: 310
Зарегистрирован: 25 окт 2012, 15:06
Откуда: Воронеж
Поблагодарили: 2 раза

Re: Нагрузочное тестирование

Сообщение merkushov » 21 фев 2013, 14:55

Результаты для Windows 7 x64

Тестируемый компьютер
Процессор: Intel(R) Core(TM) i7-2600K CPU @ 3.40GHz Intel64 Family 6 Model 42 Stepping 7 GenuineIntel ~2686 (8 ядер)
ОЗУ: 16 Гб
Диск: SATA 1Тб (WDC WD10 02FAEX-00Z3A0)
Операционная система: Microsoft Windows 7 Professional 6.1.7601 Service Pack 1 сборк  7601

Использовались сборка OTRS для Windows http://ftp.otrs.org/pub/otrs/otrs-3.2.2 ... -2.4.5.exe и дефолтные настройки OTRS, Apache и MySQL.

Результаты для Агентского интерфейса

Код: Выделить всё

sudo siege -v -t5M -H "Cookie: OTRSAgentInterface=10b4316fb656728c5e09272b8a2189da51" -i -c 30 -f urls.txt

Lifting the server siege...      done.
Transactions:		        3967 hits
Availability:		       99.25 %
Elapsed time:		      299.36 secs
Data transferred:	      167.85 MB
Response time:		        1.40 secs
Transaction rate:	       13.25 trans/sec
Throughput:		        0.56 MB/sec
Concurrency:		       18.56
Successful transactions:        3967
Failed transactions:	          30
Longest transaction:	       12.30
Shortest transaction:	        0.16

sudo siege -v -t5M -H "Cookie: OTRSAgentInterface=10b4316fb656728c5e09272b8a2189da51" -i -c 50 -f urls.txt

Lifting the server siege...      done.
Transactions:		        3991 hits
Availability:		       98.86 %
Elapsed time:		      300.04 secs
Data transferred:	      170.16 MB
Response time:		        2.44 secs
Transaction rate:	       13.30 trans/sec
Throughput:		        0.57 MB/sec
Concurrency:		       32.46
Successful transactions:        3991
Failed transactions:	          46
Longest transaction:	       20.49
Shortest transaction:	        0.19

sudo siege -v -t5M -H "Cookie: OTRSAgentInterface=10b4316fb656728c5e09272b8a2189da51" -i -c 100 -f urls.txt

Lifting the server siege...      done.
Transactions:		        3858 hits
Availability:		       97.06 %
Elapsed time:		      299.16 secs
Data transferred:	      163.93 MB
Response time:		        6.15 secs
Transaction rate:	       12.90 trans/sec
Throughput:		        0.55 MB/sec
Concurrency:		       79.32
Successful transactions:        3858
Failed transactions:	         117
Longest transaction:	       20.12
Shortest transaction:	        0.28
При этом общая нагрузка системы на процессор не превышала 60%, а по памяти 4,5 Гб
Меркушов Виктор, perl программист

merkushov
OTRS Бывалый
Сообщения: 310
Зарегистрирован: 25 окт 2012, 15:06
Откуда: Воронеж
Поблагодарили: 2 раза

Re: Нагрузочное тестирование

Сообщение merkushov » 22 фев 2013, 10:13

Результаты для Ubuntu Server 12.04 x64

Тестируемый компьютер тот же
Процессор: Intel(R) Core(TM) i7-2600K CPU @ 3.40GHz Intel64 Family 6 Model 42 Stepping 7 GenuineIntel ~2686 (8 ядер)
ОЗУ: 16 Гб
Диск: SATA 1Тб (WDC WD10 02FAEX-00Z3A0)
Операционная система: Ubuntu Server 12.04 LTS ядро Linux version 3.2

OTRS установлена из исходников http://ftp.otrs.org/pub/otrs/otrs-3.2.2.tar.gz Настройки Apache2 и MySQL 5.5 дефолтные. Perl v5.14.2

Результаты для Агентского интерфейса

Код: Выделить всё

sudo siege -v -t5M -H "Cookie: OTRSAgentInterface=10f4549cc5bbcae45a4d0eec18488f3367" -i -c 50 -f urls.txt

Lifting the server siege...      done.
Transactions:		       13671 hits
Availability:		      100.00 %
Elapsed time:		      299.67 secs
Data transferred:	       92.65 MB
Response time:		        0.59 secs
Transaction rate:	       45.62 trans/sec
Throughput:		        0.31 MB/sec
Concurrency:		       27.08
Successful transactions:       13671
Failed transactions:	           0
Longest transaction:	        3.12
Shortest transaction:	        0.09

sudo siege -v -t5M -H "Cookie: OTRSAgentInterface=10f4549cc5bbcae45a4d0eec18488f3367" -i -c 100 -f urls.txt

Lifting the server siege...      done.
Transactions:		       15517 hits
Availability:		       99.92 %
Elapsed time:		      299.14 secs
Data transferred:	      104.84 MB
Response time:		        1.40 secs
Transaction rate:	       51.87 trans/sec
Throughput:		        0.35 MB/sec
Concurrency:		       72.57
Successful transactions:       15517
Failed transactions:	          13
Longest transaction:	        5.78
Shortest transaction:	        0.11

sudo siege -v -t5M -H "Cookie: OTRSAgentInterface=10f4549cc5bbcae45a4d0eec18488f3367" -i -c 200 -f urls.txt

Lifting the server siege...      done.
Transactions:		       15277 hits
Availability:		      100.00 %
Elapsed time:		      299.16 secs
Data transferred:	      103.83 MB
Response time:		        3.38 secs
Transaction rate:	       51.07 trans/sec
Throughput:		        0.35 MB/sec
Concurrency:		      172.70
Successful transactions:       15277
Failed transactions:	           0
Longest transaction:	       11.26
Shortest transaction:	        0.16

sudo siege -v -t5M -H "Cookie: OTRSAgentInterface=10f4549cc5bbcae45a4d0eec18488f3367" -i -c 300 -f urls.txt

Lifting the server siege...      done.
Transactions:		       15487 hits
Availability:		       99.76 %
Elapsed time:		      299.52 secs
Data transferred:	      105.19 MB
Response time:		        5.16 secs
Transaction rate:	       51.71 trans/sec
Throughput:		        0.35 MB/sec
Concurrency:		      266.90
Successful transactions:       15487
Failed transactions:	          37
Longest transaction:	       21.84
Shortest transaction:	        0.16
Общая нагрузка на процессор доходила до 98%. По памяти до 5,5 Гб
Меркушов Виктор, perl программист

merkushov
OTRS Бывалый
Сообщения: 310
Зарегистрирован: 25 окт 2012, 15:06
Откуда: Воронеж
Поблагодарили: 2 раза

Re: Нагрузочное тестирование

Сообщение merkushov » 22 фев 2013, 11:09

Предварительные субъективные результаты

Web-сервер под управлением Linux лучше web-сервера под управлением Windows в 4 раза, с оговорками что в тестах использовались дефолтные настройки и Windows 7 не серверная операционная система.

Расшифровка результатов:
Transactions - количество запросов к веб-серверу.
Availability - процент успешных конектов к серверу (неуспешные, это к примеру, - "socket: connection timed out") от общего количества запросов.
Elapsed time - продолжительность тестирования
Data transferred - общий объём переданных веб-сервером данных
Response time - среднее время ответа на запрос
Transaction rate - среднее кол-во запросов в секунду
Throughput - среднее кол-во данных передаваемое в секунду от веб-сервера клиентам
Concurrency - среднее число одновременных соединений. Растёт в то время как производительность сервера снижается.
Successful transactions - число успешных транзакций (код возврата < 400).
Failed transactions - число неуспешных транзакция (код возврата >= 400 плюс все socket timed out)
Longest transaction - время самой долгой транзакции
Shortest transaction - время сомой быстрой транзакции
Меркушов Виктор, perl программист

merkushov
OTRS Бывалый
Сообщения: 310
Зарегистрирован: 25 окт 2012, 15:06
Откуда: Воронеж
Поблагодарили: 2 раза

Re: Нагрузочное тестирование

Сообщение merkushov » 25 фев 2013, 09:35

Результаты

При использовании "правильной" операционной системы на машине с Core i7 (8 ядер) и 16 Гб оперативки легко можно добиться 50 транзакций в секунду. Это соответствует 50 супер активным пользователям или 500 обычным.
На "неправильной" операционке получается обслужить только около 130 обычных пользователей.

Для бОльших нагрузок рекомендуется тюнить web-сервер и БД, наращивать количество ядер, распараллеливать запросы по разным бэкэндам, разносить web-сервер и базу данных. Оперативка понадобится для БД при больших объёмах тикетов.
Меркушов Виктор, perl программист

Ответить