Як виконати показник продуктивності веб-сервера?

Чи знаєте ви середній час відгуку вашого веб-сайту? Чи знаєте ви, скільки спільних користувачів може працювати з вашим сайтом?


Тестування навантаження є важливим для того, щоб веб-додатки могли знати веб-сайт ємність. Якщо ви хочете вибрати веб-сервер, то однією з перших речей, яку ви хочете зробити, – це виконати тестування навантаження та побачити, який з них працює добре.

Бенчмаркінг може допомогти вам прийняти рішення;

  • Який веб-сервер працює найкраще
  • Кількість серверів, необхідних для обслуговування x кількість запитів
  • Яка конфігурація дає найкращі результати

Існує кілька онлайн-інструментів для проведення стрес-тесту; однак, якщо ви шукаєте внутрішнє рішення або хочете порівняти лише ефективність веб-сервера, тоді ви можете скористатися ApacheBench а також деякі із наведених нижче інструментів.

Я використовував Apache & Веб-сервер Nginx, на якому розміщено DigitalOcean перевірити його.

ApacheBench

ApacheBench (ab) – програма командного рядка з відкритим кодом, яка працює з будь-яким веб-сервером. У цій публікації я поясню, як встановити цю невелику програму та виконати тест навантаження для порівняння результатів.

Апач

Давайте встановимо ApacheBench, використовуючи команду yum.

yum встановити httpd-інструменти

Якщо у вас вже є httpd-інструменти, ви можете це проігнорувати.

Тепер давайте подивимося, як вона працює для 5000 запитів із сукупністю 500.

[[захищено електронною поштою] ~] # ab -n 5000 -c 500 http: // localhost: 80 /
Це ApacheBench, версія 2.3 <$ Перегляд: 655654 $>
Авторські права 1996 р. Адам Твісс, ТОВ «Зевс Технології», http://www.zeustech.net/
Ліцензовано програмним фондом Apache, http://www.apache.org/
Бенчмаркінг localhost (будьте терплячі)
Виконано 500 запитів
Виконано 1000 запитів
Виконано 1500 запитів
Виконано 2000 запитів
Виконано 2500 запитів
Виконано 3000 запитів
Виконано 3500 запитів
Виконано 4000 запитів
Виконано 4500 запитів
Виконано 5000 запитів
Виконано 5000 запитів
Серверне програмне забезпечення: Apache / 2.2.15
Ім’я хоста сервера: localhost
Порт сервера: 80
Шлях до документа: /
Довжина документа: 4961 байт
Рівень одночасності: 500
Час, витрачений на тести: 13.389 секунд
Повні запити: 5000
Невдалі запити: 0
Помилки запису: 0
Не 2xx відповідей: 5058
Всього передано: 26094222 байт
HTML передано: 25092738 байт
Запити в секунду: 373,45 [# / sec] (середній)
Час на запит: 1338.866 [мс] (середній)
Час на запит: 2.678 [мс] (середнє значення для всіх одночасних запитів)
Швидкість передачі: 1903.30 [Кбайт / сек] отримано
Час підключення (мс)
мінімальна середня [+/- sd] медіана макс
Підключення: 0 42 20,8 41 1000
Обробка: 0 428 2116,5 65 13310
Очікування: 0 416 2117,7 55 13303
Всього: 51 470 2121,0 102 13378
Відсоток запитів, поданих протягом певного часу (мс)
50% 102
66% 117
75% 130
80% 132
90% 149
95% 255
98% 13377
99% 13378
100% 13378 (найдовший запит)
[[захищено електронною поштою] ~] #

Отже, як бачите, Apache впорався 373 запити в секунду, а для задоволення загальних запитів знадобилося загалом 13.389 секунд.

Тепер ви знаєте, що конфігурація за замовчуванням може обслуговувати ці багато запитів, тому коли ви вносите будь-які зміни конфігурації, ви можете зробити тест ще раз, щоб порівняти результати та вибрати найкращий один.

Nginx

Давайте зробимо тест, що ми зробили для Apache, щоб ви могли порівняти, хто з них краще.

[[захищено електронною поштою] ~] # ab -n 5000 -c 500 http: // localhost: 80 /
Це ApacheBench, версія 2.3 <$ Перегляд: 655654 $>
Авторські права 1996 р. Адам Твісс, ТОВ «Зевс Технології», http://www.zeustech.net/
Ліцензовано програмним фондом Apache, http://www.apache.org/
Бенчмаркінг localhost (будьте терплячі)
Виконано 500 запитів
Виконано 1000 запитів
Виконано 1500 запитів
Виконано 2000 запитів
Виконано 2500 запитів
Виконано 3000 запитів
Виконано 3500 запитів
Виконано 4000 запитів
Виконано 4500 запитів
Виконано 5000 запитів
Виконано 5000 запитів
Програмне забезпечення сервера: nginx / 1.10.1
Ім’я хоста сервера: localhost
Порт сервера: 80
Шлях до документа: /
Довжина документа: 3698 байт
Рівень одночасності: 500
Час, витрачений на тести: 0,758 секунди
Повні запити: 5000
Невдалі запити: 0
Помилки запису: 0
Всього передано: 19660000 байт
Переведений HTML: 18490000 байт
Запити в секунду: 6593,48 [# / sec] (середній)
Час на запит: 75.832 [мс] (середній)
Час на запит: 0,152 [мс] (середнє значення для всіх одночасних запитів)
Швидкість передачі: 25317,93 [Кбайт / сек] отримано
Час підключення (мс)
мінімальна середня [+/- sd] медіана макс
Підключення: 0 6 11,0 2 53
Обробка: 5 19 8,2 17 53
Очікування: 0 18 8,2 16 47
Разом: 10 25 17,4 18 79
Відсоток запитів, поданих протягом певного часу (мс)
50% 18
66% 21
75% 21
80% 22
90% 69
95% 73
98% 75
99% 76
00% 79 (найдовший запит)
[[захищено електронною поштою] ~] #

ОЦЕ ТАК! Ти це бачив? Обробляється Nginx 6593 запити в секунду! Переможець.

Таким чином, ви бачите, що просто порівнюючи два веб-сервери, ви отримаєте уявлення, який вибрати для свого веб-додатку.

Вищевказаний тест на CentOS 6.8, 64 біт. Ви можете спробувати кілька комбінацій ОС & Версія веб-сервера для отримання оптимальних результатів.

SIEGE

SIEGE є утиліта тестування навантаження HTTP, що підтримується в UNIX. Ви можете помістити кілька URL-адрес у текстовий файл, щоб завантажити тест на. Ви можете встановити облогу за допомогою yum.

# yum встановити облогу

Проведемо тест із 500 одночасними запитами протягом 5 секунд.

[[захищено електронною поштою] ~] # облога -q -t 5S -c 500 http: // localhost /
Зняття облоги сервера … зроблено.
Операції: 4323 переглядів
Наявність: 100.00%
Час, що минув: 4,60 сек
Передані дані: 15,25 Мб
Час відповіді: 0,04 сек
Швидкість транзакцій: 939,78 транс / сек
Пропускна здатність: 3,31 Мб / сек
Паралельність: 37,97
Успішні операції: 4323
Невдалі транзакції: 0
Найдовша транзакція: 1,04
Найкоротша транзакція: 0,00
[[захищено електронною поштою] ~] #

Для розбиття параметрів.

-q – запускати його тихо (не показуючи деталі запиту)

-t – бігайте 5 секунд

-c – 500 одночасних запитів

Отже, як бачите, доступність становить 100%, а час відповіді – 0,04 секунди. Ви можете налаштувати параметр тесту навантаження залежно від своєї мети.

Гобенч

Гобенч написано мовою Go та простою утилітою для тестування завантаження для порівняння продуктивності веб-сервера. Він підтримує більше 20 000 одночасних користувачів, яких ApacheBench не має.

Apache JMeter

JMeter є одним з найпопулярніших інструментів з відкритим кодом для вимірювання продуктивності веб-додатків. JMeter – додаток на базі Java, і не тільки веб-сервер, але ви можете використовувати його проти PHP, Java. ASP.net, SOAP, REST тощо.

JMeter отримав гідний дружній графічний інтерфейс, а для останньої версії 3.0 для запуску програми потрібна Java 7 або новіша версія. Ви повинні спробувати JMeter, якщо ваша мета – оптимізувати продуктивність веб-додатків.

писати

писати – це ще один сучасний інструмент вимірювання продуктивності для завантаження вашого веб-сервера та надання затримки, запиту за секунду, передачі за секунду тощо. подробиці.

За допомогою wrk ви можете вказати для запуску тесту навантаження з низкою потоків.

Візьмемо приклад виконання тесту протягом 5 хвилин з 500 одночасними користувачами з 8 потоками.

wrk –t8 –c500 -d300s http: // localhost

HTTPLoad

Httpload може прочитати кілька URL-адрес з файлу, або ви можете вказати його в аргументі команди. Остання версія підтримує SSL / TLS, що означає, що ви можете запитувати URL-адресу веб-сторінки з підтримкою HTTPS (SSL).

Під час тестування URL-адреси з підтримкою SSL у вас є можливість вказати шифр, і проста тестова команда виглядатиме так.

httpload -cipher AES256-SHA -паралельний 200-секунд 120 URL_LIST.txt

Щоб зрозуміти це краще, вище запустіть тест на 200 одночасних користувачів протягом 2 хвилин.

Curl-loader

кучерявий навантажувач написано на C, щоб імітувати завантаження програми, і він підтримує SSL / TLS. Поряд із тестуванням веб-сторінок, ви також можете використовувати цей інструмент із відкритим кодом для виконання завантаження на FTP-сервери.

Ви можете створити тестовий план із сумішшю HTTP, HTTPS, FTP та FTPS в одній пакетній конфігурації.

httperf

The httperf це високоефективний інструмент, орієнтований на орієнтир на мікро- та макрорівні. Він підтримує протоколи HTTP / 1.1 та SSL.

Якщо ви очікували кількість одночасних користувачів і хочете перевірити, чи може номер запиту обслуговуватися вашим веб-сервером, ви можете скористатися наступною командою.

httperf –server localhost –port 80 – num-conns 1000 –rate 100

Наведена вище команда буде перевіряти зі 100 запитами в секунду на 1000 HTTP-запитів.

Tsung

Tsung – це багатопротокольний розподілений інструмент стрес-тестування для напруги HTTP, SOAP, PostgreSQL, LDAP, XAMP, MySQL-сервер. Він підтримує HTTP / 1.0, HTTP / 1.1, а файли cookie обробляються автоматично.

Створення звіту можливо з Tsung.

Висновок

Я сподіваюся вище інструменти бенчмаркінгу дасть вам уявлення про ефективність вашого веб-сервера та допоможе визначити, що найкраще підходить для вашого проекту.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map