Тестування навантаження веб-сервера за допомогою apache jmeter

Розміщення серверів в надійних дата-центрах Європи. Відкрийте хмарний VPS / VDS сервер на швидких SSD за 1 хвилину!

Кращий хостинг:
- захистить дані від несанкціонованого доступу в охоронюваному європейському ЦОДі
- прийме оплату хоч в bitcoin.
- дозволить поставити свій дистрибутив

- захист від DDos-атак
- безкоштовний backup
- Uptime 99,9999%
- ЦОД - TIER III
- провайдер - TIER I

Підтримаємо російською мовою 24/7/365 Працюємо з юрособами і фізособами. Вам прямо зараз потрібно 24 ядра і 72 Gb RAM. Будь ласка!

Наші вигідні тарифи доведуть, що дешевий хостинг ви ще не знали!

Хвилинна справа: виберіть конфігурацію, оплатіть і CMS на VPS готова.
Money Back - 30 днів!

Банківськими картами, електронною валютою, через термінали Qiwi, Webmoney, PayPal, Новоплат і ін.

Задайте питання в службу підтримки 24/7/365

Знайдіть відповіді в нашій базі і познайомтеся з рекомендаціями

Пропозиція від 8host.com

Тестування навантаження веб-сервера за допомогою apache jmeter

Даний посібник демонструє використання Apache JMeter для виконання базового і стресового тестування навантаження середовища додатки. Керівництво допоможе створити план і запустити тестування веб-сервера за допомогою графічного інтерфейсу.

JMeter - це настільний додаток Java з відкритим вихідним кодом, призначене для проведення тестування навантаження і вимірювання продуктивності. Воно дозволяє імітувати навантаження і надає кілька способів отримання даних про продуктивність (в тому числі графіки, файли CSV і XML). Будучи повноцінним додатком Java, JMeter доступний на будь-який ОС, що підтримує Java 6 і вище.

вимоги

Для виконання керівництва знадобиться комп'ютер для запуску JMeter і тестування веб-сервера.

Увага! Не рекомендується запускати ці тести в середовищі виробництва: це може негативно вплинути на продуктивність сервера.

Даний посібник можна адаптувати для будь-якої програми; всі приклади демонструються на WordPress, встановленому на стек LEMP. Всі програми встановлені на віртуальний виділений сервер 1 CPU / 512 MB.

Будь ласка, зверніть увагу: результати тестування JMeter можуть бути спотворені різними факторами, в тому числі об'ємом системних ресурсів, доступних JMeter, і самим веб-сервером. Навантаження, яку JMeter може створити без спотворення результатів, можна збільшити, запустивши тестування в неграфічні режимі або розподіливши навантаження на кілька серверів JMeter.

установка JMeter

Apache JMeter використовується в якості настільного додатки, а на сьогоднішній день існує безліч настільних операційних систем; на жаль, керівництво не здатне охопити установку JMeter для кожної конкретної системи. На щастя, процес установки досить простий.

Найпростіше використовувати для цього менеджер пакетів (наприклад, apt-get); можна також завантажити і розпакувати бінарні файли JMeter з офіційного сайту і встановити Java 6 +.

Для роботи JMeter необхідні наступні програми:

Залежно від способу установки Java, вам може знадобитися вказати каталог bin для Java в змінній оточення PATH, щоб JMeter зміг знайти Java.

Також потрібно використовувати шлях установки JMeter (шлях до каталогу, в який був витягнутий архів), задавши його як $ JMETER_HOME. В Linux і Unix-подібних системах бінарні файли JMeter знаходяться в $ JMETER_HOME / bin / jmeter; в системі Windows можна запустити $ JMETER_HOME / bin / jmeter.bat.

У цьому посібнику використовуються такі версії програм:

Встановивши JMeter, приступимо до розробки плану тестування.

Створення навантажувального тесту

Запустіть JMeter. На екрані з'явиться графічний інтерфейс; відкрийте Test Plan. На даний момент не існує жодного плану.

План тестування являє собою послідовність компонентів, які визначають, яким чином буде емулюватися навантаження. Нижче ми розглянемо основні компоненти.

Додавання групи потоків

Для початку потрібно додати в план групу потоків (Thread Group):

  • Клацніть правою кнопкою по Test Plan
  • Виберіть Add>
  • Знайдіть і виберіть Threads (Users)>
  • Виберіть Thread Group

Групи потоків мають три особливо важливі параметри, які впливають на тестування навантаження:

  • Number of Threads (users): Кількість потоків (користувачів), яке буде емулювати JMeter; встановіть значення 50.
  • Ramp-Up Period (in seconds): Тривалість тестування в секундах. Встановіть значення 10
  • Loop Count: Кількість тестів. Встановіть 1.

Додавання налаштувань HTTP

Елемент HTTP Request Defaults використовується для установки стандартних значень HTTP-запитів в даному плані тестування. Додайте HTTP Request Defaults для Thread Group:

  • Клацніть правою кнопкою на Thread Group.
  • Виберіть Add.
  • Потім виберіть Config Element>.
  • Натисніть HTTP Request Defaults.

Додавання HTTP Cookie Manager

Якщо сервер використовує cookie-файли, можна налаштувати їх підтримку. Для цього потрібно додати Thread Group елемент HTTP Cookie Manager:

  • Клацніть правою кнопкою на Thread Group.
  • Виберіть Add.
  • Потім виберіть Config Element>.
  • Натисніть HTTP Cookie Manager

Додавання семплера запитів HTTP

За настройки семплера запитів HTTP відповідає компонент HTTP Request, який представляє запити на сторінку для кожного потоку.

  • Клацніть правою кнопкою на Thread Group.
  • Виберіть Add.
  • Потім виберіть Sampler>.
  • Натисніть HTTP Request.

У вікні налаштувань знайдіть розділ HTTP Request, в Path вкажіть об'єкт, якому всі користувачі повинні відправити запит. Встановіть /, щоб всі користувачі відправили запити до домашньої сторінки. Зверніть увагу: сервер вказувати не потрібно, оскільки він вже вказано в HTTP Request Defaults.

Примітка. Щоб додати в тест більше HTTP Requests, повторіть інструкції даного розділу.

  • Клацніть правою кнопкою на Thread Group.
  • Виберіть Add.
  • Потім виберіть Listener>.
  • Натисніть View Results in Table.

Також можна задати Filename, щоб направити висновок в CSV-файл.

Запуск навантажувального тестування

Аналіз результатів

Якщо в стовпці Status з'явився зелений трикутник з галочкою в ньому, це означає, що всі запити виконані успішно.

Мабуть, найбільш важливими стовпцями висновку є Sample Time і Latency.

  • Latency: Інтервал часу в мілісекундах між відправленням запиту й одержанням відповіді на нього.
  • Sample Time: Інтервал часу в мілісекундах, необхідний сервера на повну обробку запиту (відповідь + час очікування).

збільшення навантаження

Спробуйте виконати такий же тест, збільшивши кількість потоків до 80 за 10 секунд. Відкрийте Thread Group в лівій панелі і змініть Number of Threads (users) до 80. Потім клікніть View Results in Table і Start.

Для цього використовуйте команду:

Якщо на даний момент сервер не відвідують інші користувачі, резултат буде приблизно таким:

top - 16:52:25 up 5 days, 23:18 1 user, load average: 0.06, 0.16, 0.13
Tasks: 74 total, 1 running, 73 sleeping, 0 stopped, 0 zombie
% Cpu (s): 0.0 us, 0.3 sy, 0.0 ni, 99.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem: 501 868 total, 409232 used, 92626 free, 28132 buffres

Як бачите, використання Cpu (s) us дуже низька, а id перевищує 99%.

Після цього знову запустіть тест JMeter і поверніться в SSH-сесію на сервері. Останні цього використання ресурсів зросте:

top - 16:45:57 up 5 days, 23:11, 1 user, load average: 0.80, 0.35, 0.16
Tasks: 74 total, 3 running, 71 sleeping, 0 stopped, 0 zombie
% Cpu (s): 94.7 us, 4.7 sy, 0.0 ni, 0.3 id, 0.0 wa, 0.3 hi, 0.0 si, 0.0 st
KiB Mem: 501868 total, 410120 used, 91748 free, 28072 buffres
KiB Swap: 0 total, 0 used, 0 free. 240612 cached Mem

В даному прикладі користувачі використовують 94% CPU, а система (sy) 4.7%.

В даному випадку пам'яті вистачає, а значить, причиною зниження продуктивності є нестача ресурсів процесора.

Щоб оптимізувати роботу сервера для підтримки 80 користувачів за 10 секунд, потрібно або збільшити CPU, або налаштувати сервер для використання меншої кількості CPU.

Спробуйте змінити кількість потоків і з'ясувати, яка саме кількість стає критичним; в даному випадку сервер може без збоїв підтримувати 72 користувача за 10 секунд.

висновок

JMeter дозволяє оптимізувати і вдосконалити сервер веб-додатки, усунути неполадки в настройках і збільшити його продуктивність.

JMeter надає велику кількість інструментів для проведення різних тестів. Наприклад, JMeter дозволяє емулювати підключення користувача до додатка, кешування на стороні клієнта, обробку сесій з перезаписом URL і багато іншого.

Схожі статті