1 / 29

Обзор инструментов нагрузочного тестирования

Обзор инструментов нагрузочного тестирования. Александр Демидов « 1С-Битрикс». Нагрузочное тестирование –.

kennan
Download Presentation

Обзор инструментов нагрузочного тестирования

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Обзор инструментов нагрузочного тестирования Александр Демидов «1С-Битрикс»

  2. Нагрузочное тестирование – определение или сбор показателей производительности и времени отклика программно-технической системы или устройства в ответ на внешний запрос с целью установления соответствия требованиям, предъявляемым к данной системе (устройству)./ Википедия

  3. Зачем? Проверка и оптимизация конфигурации оборудования, виртуальных машин, серверного программного обеспечения Оценка максимальной производительности, которую способен выдерживать проект с типовыми сценариями нагрузки на доступных ресурсах Влияние модулей проекта на производительность, сценарии обработки пиковой нагрузки Оценка стабильности при максимальных нагрузках при проведении 24-часовых тестов с учетом внешних факторов (импорты, резервное копирование и т.п.) Выявление ограничений конфигурации, определение методов дальнейшего масштабирования и оптимизации

  4. А как трактовать результаты?

  5. Только определив требования вместе с заказчиком Если сам заказчик не сумеет определиться с требованиями, помогите ему. Количество хитов в сутки Скорость загрузки главной страницы при указанном количестве хитов Скорость загрузки критичных разделов Среднее время загрузки всех страниц в сутки Процент страниц с временем загрузки более n сек. Допустимый процент ошибок Допустимое время простоя ...

  6. Начнем с простого… Apache HTTP server benchmarking tool ab[options] [http[s]://]hostname[:port]/path где основные необходимые options: -c concurrency количество одновременных запросов к серверу (по уолчанию 1) -n requests общее количество запросов (по умолчанию 1)

  7. ab Concurrency Level: 10 Time taken for tests: 0.984 seconds Complete requests: 100 Failed requests: 0 Write errors: 0 Total transferred: 3725507 bytes HTML transferred: 3664100 bytes Requests per second: 101.60 [#/sec] (mean) Time per request: 98.424 [ms] (mean) Time per request: 9.842 [ms] (mean, across all concurrent requests) Transfer rate: 3696.43 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 1 2 3.6 1 23 Processing: 63 94 21.5 90 173 Waiting: 57 89 21.6 84 166 Total: 64 96 21.5 92 174

  8. ab Плюсы: Есть везде, где есть Apache Не требует никакой дополнительной настройки Очень простой инструмент Минусы: Очень простой инструмент По сути – тестирует только производительность веб-сервера: опрашивает только один URL, не поддерживает сценарии нагрузки

  9. Чуть сложнее – Siege Joe Dog Software http://www.joedog.org/siege-home/ Многопоточный Можно задавать как количество запросов, так и продолжительность (время) тестирования Поддерживает простейшие сценарии

  10. Siege # cat urls.txt # URLS file for siege # -- http://www.bitrix24.ru/ http://www.bitrix24.ru/support/forum/forum1/topic3469/?PAGEN_1=2 http://www.bitrix24.ru/register/reg.php POST domain=test&login=login http://www.bitrix24.ru/search/ POST < /home/www/siege_post_data # siege -f urls.txt -c 10 -r 10-d 3

  11. Siege HTTP/1.1 200 0.44 secs: 12090 bytes ==> GET / HTTP/1.1 200 0.85 secs: 29316 bytes ==> GET /support/forum/forum1/ HTTP/1.1 200 0.85 secs: 29635 bytes ==> GET /support/forum/forum1/ HTTP/1.1 200 0.34 secs: 12087 bytes ==> GET / [...] done. Transactions: 100 hits Availability: 100.00 % Elapsed time: 12.66 secs Data transferred: 1.99 MB Response time: 0.64 secs Transaction rate: 7.90 trans/sec Throughput: 0.16 MB/sec Concurrency: 5.02 Successful transactions: 100 Failed transactions: 0 Longest transaction: 1.06 Shortest transaction: 0.31

  12. Боевые сценарии тестирования URL’ы для сценариев можно взять из логов веб-сервера

  13. Похожий инструмент - httperf http://www.hpl.hp.com/research/linux/httperf/ 30 Jan 2008: visit our sourceforgepage athttp://sourceforge.net/projects/httperf http://sourceforge.net/projects/httperf/ As of 2009-12-24, this project may now be found at http://code.google.com/p/httperf/. https://code.google.com/p/httperf/ 2013-05-28 - Ted Bullock Figured out my lost account to access the httperf repository. Although I am not currently doing active development for httperf, you can now submit bug reports and I will be able to receive them.

  14. Сложнее… и функциональнее Apache JMeterhttp://jmeter.apache.org/ Java HTTP, HTTPS, SOAP, Database via JDBC, LDAP, SMTP(S), POP3(S), IMAP(S) Консоль и GUI Распределенное тестирование План тестирования – XML Может обрабатывать лог веб-сервера как план тестирования Визуализация результатов в GUI

  15. JMeter

  16. JMeter

  17. Tsung http://tsung.erlang-projects.org/ Erlang HTTP, WebDAV, SOAP, PostgreSQL, MySQL, LDAP, Jabber/XMPP Консоль (GUI через сторонний плагин) Распределенное тестирование (миллионы пользователей) Фазы тестирования План тестирования – XML Запись плана с помощью Tsung recorder’а Мониторинг тестируемых серверов (Erlang, munin, SNMP) Инструменты для генерации статистики и графиков из логов работы

  18. tsung_stats.pl

  19. tsung_stats.pl + Gnuplot

  20. WAPT http://www.loadtestingtool.com/ Windows Платный (есть триал на 30 дней / 20 виртуальных пользователей) Запись плана тестирования из десктопных и мобильных браузеров Зависимости в планах тестирования (последующий URL в зависимости от ответа сервера) Имитации реальных пользователей (задержки между соединениями, ограничение скорости соединений)

  21. WAPT – профили тестирования

  22. WAPT – отчеты

  23. Не забываем о родных инструментах

  24. Инструменты тестирования в «Битриксе»

  25. Нюансы… Полноценные длительные нагрузочные тесты проводите в близких к «боевым» условиях (импорты, бэкапы и т.п.) Проводите тесты на полном наборе данных В идеале – распределенные тесты Совсем в идеале – территориально распределенные Каким бы идеальным не был сценарий – он будет лишь «искусственным» повторением боевой нагрузки

  26. Например, влияние «Веб-аналитики» • На 12-часовом тесте – значительно падение скорости генерации страниц: • потребление mysqld до 120% ядра CPU • load average – до 12-13

  27. «Веб-аналитика» Максимальное время выполнения у запроса к B_STAT_SESSION, который выполняется по индексу (IP_FIRST_NUMBER,DATE_STAT типа Date). Генерация нагрузки – с одного IP адреса. Соответственно индекс обладал нулевой избирательностью. Для исправления ситуации (приближения к реальной жизни), изменим случайным образом данные в таблице B_STAT_SESSION: mysql > updateb_stat_sessionset IP_FIRST_NUMBER = FLOOR(1520000000 + RAND() * (232669));

  28. Резюме Обязательно проводите полноценное нагрузочное тестирование перед стартом проекта В процессе эксплуатации быстро определить «запас» «узких» мест можно с помощью простых инструментов (ab, встроенный тест «Битрикса») Для полноценных тестов – инструменты, максимально близко имитирующие пользователей Перед выкладыванием апдейтов на «бой» проводите нагрузочные тесты Чем серьезнее меняется логика приложения – тем тщательнее должен быть тест (в идеале – полноценный суточный) Проводите тесты, имея настроенную систему мониторинга

  29. Спасибо за внимание! Вопросы? Александр Демидов demidov@1c-bitrix.ru +7-926-521-3700 @demidov http://www.1c-bitrix.ru

More Related