Страница 1 из 1
Нагрузочное тестирование
Добавлено: 14 янв 2013, 11:20
merkushov
Есть ли желающие провести нагрузочное тестирование OTRS?
Предлагаю проверить какую нагрузку способно выдержать приложение в стандартной конфигурации и стандартной конфигурации + ITSM. Нужны добровольцы которые на один комп поставят у себя приложение, а с другого запустят тестирование. Чтобы попроще, предлагаю эмулировать обычными GET запросами поведение Клиента и Агента при их навигации по интерфейсу, т.е. фактически тестировать только SELECT.
Я могу рассказать про консольные утилиты siege и ab; про то как ими пользоваться и интерпретировать результаты.
Re: Нагрузочное тестирование
Добавлено: 14 янв 2013, 14:38
alexus
Можно еще JMeter использовать. А какой замысел? С какими параметрами машин будем тестировать- CPU, RAM, HDD, канал? Дать пару виртуалок под задачу - нет проблем.
Re: Нагрузочное тестирование
Добавлено: 14 янв 2013, 15:48
merkushov
Замысел... посмотреть сколько пользователей и на каком железе может выдержать OTRS: 1) сколько выдержит до отказа в обслуживании; 2) сколько пользователей могут работать одновременно с комфортной скоростью отображения страницы;
Я полагаю, что каждый доброволец будет мерить OTRS у себя поэтому параметры машин будут совершенно разными, но из 3-5 независимых наблюдений можно составить общую картину производительности. Можно конечно договорится об одинаковых параметрах для виртуалок, но виртуализация бывает разная, да и от базовой машины многое зависит. Думаю что для более точных данных лучше использовать железную машину.
Для единообразия предлагаю: взять для тестов последнюю стабильную версию OTRS 3.1.12 и если кому-то интересно OTRS+ITSM 3.1.7; использовать настройки OTRS по умолчанию.
Нужно договорится о списке страниц которые будем тестировать, потому что есть лёгкие станицы вроде "Новой заявки", а есть тяжёлый "Поисковый результат". И методике проведения тестирования. Если найдутся желающие, я могу описать процесс нагрузочного тестирования для siege и ab под linux
Re: Нагрузочное тестирование
Добавлено: 14 янв 2013, 18:12
alexus
Две железные машины, на которых ничего нет, кроме ОТРСа, вряд ли можно найти (т.е. можно, но это уже недешево получится).
Re: Нагрузочное тестирование
Добавлено: 21 фев 2013, 14:33
merkushov
Нагрузочное тестирование OTRS 3.2.2 с помощью консольной утилиты siege
Методика тестирования
1. На машину ставится система OTRS, БД и Web-сервер
2. С помощью утилиты ./bin/otrs.FillDB.pl система наполняется тестовыми тикетами.
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
Re: Нагрузочное тестирование
Добавлено: 21 фев 2013, 14:55
merkushov
Результаты для 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 Гб
Re: Нагрузочное тестирование
Добавлено: 22 фев 2013, 10:13
merkushov
Результаты для 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 Гб
Re: Нагрузочное тестирование
Добавлено: 22 фев 2013, 11:09
merkushov
Предварительные субъективные результаты
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 - время сомой быстрой транзакции
Re: Нагрузочное тестирование
Добавлено: 25 фев 2013, 09:35
merkushov
Результаты
При использовании "правильной" операционной системы на машине с Core i7 (8 ядер) и 16 Гб оперативки легко можно добиться 50 транзакций в секунду. Это соответствует 50 супер активным пользователям или 500 обычным.
На "неправильной" операционке получается обслужить только около 130 обычных пользователей.
Для бОльших нагрузок рекомендуется тюнить web-сервер и БД, наращивать количество ядер, распараллеливать запросы по разным бэкэндам, разносить web-сервер и базу данных. Оперативка понадобится для БД при больших объёмах тикетов.