Что нужно знать про нагрузочное тестирование веб-серверов?
К нагрузочному тестированию веб-серверов нельзя относиться легкомысленно: оно показывает ваши системные ресурсы и дает возможность масштабировать их заранее, не ожидая сбоя сервера.
Подробно про то, что собой представляет нагрузочное тестирование и как оно происходит, можно узнать на сайте serverspace. Здесь же можно узнать про услуги данной компании.
Для чего требуется нагрузочное тестирование?
Такие тесты позволяют:
- оценить скорость работы;
- установить критерии стабильности;
- а также оценить масштабируемость приложения.
Компании зачастую не разбираются в технических нюансах: уровень загрузки ЦП, загруженность диска, «вейты», очереди в БД. Следовательно, они не знают, как это оказывает влияние на их производительность. Но они понимают простые вещи, такие как посещаемость сайта и скорость.
Собственники веб-ресурсов и администраторы непременно должны понимать, какие входные данные им нужны, чтобы начать планировать изменения оборудования и программного обеспечения и масштабировать свою инфраструктуру. Специальное нагрузочное тестирование предоставляет возможность заранее знать эти показатели и быть готовым к быстрым техническим обновлениям.
Эти тесты должны давать прогнозы, а не просто описывать реальный уровень. К примеру, теперь страница открывается за 0,5 секунды с 20 000 одновременных запросов. Что, если они добавят еще 20 000? 40? Как изменится время отклика и открытие страницы? Тестирования и прогнозы расскажут, по каким показателям нужно масштабировать систему.
Варианты нагрузочного тестирования
- Запланированные тесты. При этом мы указываем ожидаемую нагрузку при нормальной работе - система должна нормально работать в подобных условиях.
- Стресс-тест. Это тест в условиях экстремальной нагрузки. Для него привычная нагрузка возрастает в 10, 100 и даже 1000 раз. Устанавливает, что происходит с системой, если показатели с таким же паттерном поведения, как и у посетителей ресурса, резко возрастают.
- Испытание на выносливость. Тут мы нагружаем сервер на 50-100% выше обычного режима, но оставляем надолго. Часто эти тесты показывают то, что не видно в обычном запланированном тесте. К примеру, появляются бэкапы - в результате переполняются кеши, достигаются пределы на максимальное количество параллельных подключений к серверу.
- Объёмное тестирование. Смысл его кроется в том, чтобы генерировать максимально объёмные запросы, которые бывают от посетителей портала. Это самые внушительные выборки, самые длинные сессии. Тесты определяют, как ведёт себя система при условии нагрузок запросов наибольшего объёма.
- Проверка масштабируемости. Это тот же запланированный тест, но при этом он повышает производительность системы за счёт добавления новых компонентов. К примеру, дополнительный «слейв», балансировщик, php-нода и т.д. В такой момент также расходуются ресурсы системы, которая «тонет». Масштабируемость необходимо протестировать заблаговременно, чтобы вы знали, когда развёртывать новые мощности, не ожидая скачков нагрузки и сбоев сервера.