Нагрузочное тестирование
Модератор: ykolesnikov
-
- OTRS Бывалый
- Сообщения: 310
- Зарегистрирован: 25 окт 2012, 15:06
- Откуда: Воронеж
- Поблагодарили: 2 раза
Нагрузочное тестирование
Есть ли желающие провести нагрузочное тестирование OTRS?
Предлагаю проверить какую нагрузку способно выдержать приложение в стандартной конфигурации и стандартной конфигурации + ITSM. Нужны добровольцы которые на один комп поставят у себя приложение, а с другого запустят тестирование. Чтобы попроще, предлагаю эмулировать обычными GET запросами поведение Клиента и Агента при их навигации по интерфейсу, т.е. фактически тестировать только SELECT.
Я могу рассказать про консольные утилиты siege и ab; про то как ими пользоваться и интерпретировать результаты.
Предлагаю проверить какую нагрузку способно выдержать приложение в стандартной конфигурации и стандартной конфигурации + ITSM. Нужны добровольцы которые на один комп поставят у себя приложение, а с другого запустят тестирование. Чтобы попроще, предлагаю эмулировать обычными GET запросами поведение Клиента и Агента при их навигации по интерфейсу, т.е. фактически тестировать только SELECT.
Я могу рассказать про консольные утилиты siege и ab; про то как ими пользоваться и интерпретировать результаты.
Меркушов Виктор, perl программист
-
- OTRS Гуру
- Сообщения: 5187
- Зарегистрирован: 20 сен 2010, 18:17
- Откуда: Москва
- Благодарил (а): 91 раз
- Поблагодарили: 81 раз
Re: Нагрузочное тестирование
Можно еще 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? Спросите меня как!
Алексей Юсов
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? Спросите меня как!
-
- OTRS Бывалый
- Сообщения: 310
- Зарегистрирован: 25 окт 2012, 15:06
- Откуда: Воронеж
- Поблагодарили: 2 раза
Re: Нагрузочное тестирование
Замысел... посмотреть сколько пользователей и на каком железе может выдержать OTRS: 1) сколько выдержит до отказа в обслуживании; 2) сколько пользователей могут работать одновременно с комфортной скоростью отображения страницы;
Я полагаю, что каждый доброволец будет мерить OTRS у себя поэтому параметры машин будут совершенно разными, но из 3-5 независимых наблюдений можно составить общую картину производительности. Можно конечно договорится об одинаковых параметрах для виртуалок, но виртуализация бывает разная, да и от базовой машины многое зависит. Думаю что для более точных данных лучше использовать железную машину.
Для единообразия предлагаю: взять для тестов последнюю стабильную версию OTRS 3.1.12 и если кому-то интересно OTRS+ITSM 3.1.7; использовать настройки OTRS по умолчанию.
Нужно договорится о списке страниц которые будем тестировать, потому что есть лёгкие станицы вроде "Новой заявки", а есть тяжёлый "Поисковый результат". И методике проведения тестирования. Если найдутся желающие, я могу описать процесс нагрузочного тестирования для siege и ab под linux
Я полагаю, что каждый доброволец будет мерить OTRS у себя поэтому параметры машин будут совершенно разными, но из 3-5 независимых наблюдений можно составить общую картину производительности. Можно конечно договорится об одинаковых параметрах для виртуалок, но виртуализация бывает разная, да и от базовой машины многое зависит. Думаю что для более точных данных лучше использовать железную машину.
Для единообразия предлагаю: взять для тестов последнюю стабильную версию OTRS 3.1.12 и если кому-то интересно OTRS+ITSM 3.1.7; использовать настройки OTRS по умолчанию.
Нужно договорится о списке страниц которые будем тестировать, потому что есть лёгкие станицы вроде "Новой заявки", а есть тяжёлый "Поисковый результат". И методике проведения тестирования. Если найдутся желающие, я могу описать процесс нагрузочного тестирования для siege и ab под linux
Меркушов Виктор, perl программист
-
- OTRS Гуру
- Сообщения: 5187
- Зарегистрирован: 20 сен 2010, 18:17
- Откуда: Москва
- Благодарил (а): 91 раз
- Поблагодарили: 81 раз
Re: Нагрузочное тестирование
Две железные машины, на которых ничего нет, кроме ОТРСа, вряд ли можно найти (т.е. можно, но это уже недешево получится).
С уважением,
Алексей Юсов
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? Спросите меня как!
Алексей Юсов
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? Спросите меня как!
-
- OTRS Бывалый
- Сообщения: 310
- Зарегистрирован: 25 окт 2012, 15:06
- Откуда: Воронеж
- Поблагодарили: 2 раза
Re: Нагрузочное тестирование
Нагрузочное тестирование OTRS 3.2.2 с помощью консольной утилиты siege
Методика тестирования
1. На машину ставится система OTRS, БД и Web-сервер
2. С помощью утилиты ./bin/otrs.FillDB.pl система наполняется тестовыми тикетами.
3. Вручную формируется файл с url'ами различных страниц. Отдельно для Агентского и Клиентского интерфейсов.
Пример для Агентского интерфейса
4. Меряется синтетическая нагрузка с помощью GET запросов утилитки siege
Первым запросом получаем нужную куку
Вторым запускаем тест
Методика тестирования
1. На машину ставится система OTRS, БД и Web-сервер
2. С помощью утилиты ./bin/otrs.FillDB.pl система наполняется тестовыми тикетами.
Код: Выделить всё
perl ./bin/otrs.FillDB.pl -t 1000
Пример для Агентского интерфейса
Код: Выделить всё
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
Первым запросом получаем нужную куку
Код: Выделить всё
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 программист
-
- OTRS Бывалый
- Сообщения: 310
- Зарегистрирован: 25 окт 2012, 15:06
- Откуда: Воронеж
- Поблагодарили: 2 раза
Re: Нагрузочное тестирование
Результаты для 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.
Результаты для Агентского интерфейса
При этом общая нагрузка системы на процессор не превышала 60%, а по памяти 4,5 Гб
Тестируемый компьютер
Процессор: 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
Меркушов Виктор, perl программист
-
- OTRS Бывалый
- Сообщения: 310
- Зарегистрирован: 25 окт 2012, 15:06
- Откуда: Воронеж
- Поблагодарили: 2 раза
Re: Нагрузочное тестирование
Результаты для 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
Результаты для Агентского интерфейса
Общая нагрузка на процессор доходила до 98%. По памяти до 5,5 Гб
Тестируемый компьютер тот же
Процессор: 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
Меркушов Виктор, perl программист
-
- OTRS Бывалый
- Сообщения: 310
- Зарегистрирован: 25 окт 2012, 15:06
- Откуда: Воронеж
- Поблагодарили: 2 раза
Re: Нагрузочное тестирование
Предварительные субъективные результаты
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 - время сомой быстрой транзакции
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 программист
-
- OTRS Бывалый
- Сообщения: 310
- Зарегистрирован: 25 окт 2012, 15:06
- Откуда: Воронеж
- Поблагодарили: 2 раза
Re: Нагрузочное тестирование
Результаты
При использовании "правильной" операционной системы на машине с Core i7 (8 ядер) и 16 Гб оперативки легко можно добиться 50 транзакций в секунду. Это соответствует 50 супер активным пользователям или 500 обычным.
На "неправильной" операционке получается обслужить только около 130 обычных пользователей.
Для бОльших нагрузок рекомендуется тюнить web-сервер и БД, наращивать количество ядер, распараллеливать запросы по разным бэкэндам, разносить web-сервер и базу данных. Оперативка понадобится для БД при больших объёмах тикетов.
При использовании "правильной" операционной системы на машине с Core i7 (8 ядер) и 16 Гб оперативки легко можно добиться 50 транзакций в секунду. Это соответствует 50 супер активным пользователям или 500 обычным.
На "неправильной" операционке получается обслужить только около 130 обычных пользователей.
Для бОльших нагрузок рекомендуется тюнить web-сервер и БД, наращивать количество ядер, распараллеливать запросы по разным бэкэндам, разносить web-сервер и базу данных. Оперативка понадобится для БД при больших объёмах тикетов.
Меркушов Виктор, perl программист