01.01.2010

Что нужно знать про нагрузочное тестирование веб-серверов?

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

Подробно про то, что собой представляет нагрузочное тестирование и как оно происходит, можно узнать на сайте serverspace. Здесь же можно узнать про услуги данной компании.

Для чего требуется нагрузочное тестирование?

Такие тесты позволяют:

  • оценить скорость работы;
  • установить критерии стабильности;
  • а также оценить масштабируемость приложения.

Компании зачастую не разбираются в технических нюансах: уровень загрузки ЦП, загруженность диска, «вейты», очереди в БД. Следовательно, они не знают, как это оказывает влияние на их производительность. Но они понимают простые вещи, такие как посещаемость сайта и скорость.

Собственники веб-ресурсов и администраторы непременно должны понимать, какие входные данные им нужны, чтобы начать планировать изменения оборудования и программного обеспечения и масштабировать свою инфраструктуру. Специальное нагрузочное тестирование предоставляет возможность заранее знать эти показатели и быть готовым к быстрым техническим обновлениям.

Эти тесты должны давать прогнозы, а не просто описывать реальный уровень. К примеру, теперь страница открывается за 0,5 секунды с 20 000 одновременных запросов. Что, если они добавят еще 20 000? 40? Как изменится время отклика и открытие страницы? Тестирования и прогнозы расскажут, по каким показателям нужно масштабировать систему.

Варианты нагрузочного тестирования

  1. Запланированные тесты. При этом мы указываем ожидаемую нагрузку при нормальной работе - система должна нормально работать в подобных условиях.
  2. Стресс-тест. Это тест в условиях экстремальной нагрузки. Для него привычная нагрузка возрастает в 10, 100 и даже 1000 раз. Устанавливает, что происходит с системой, если показатели с таким же паттерном поведения, как и у посетителей ресурса, резко возрастают.
  3. Испытание на выносливость. Тут мы нагружаем сервер на 50-100% выше обычного режима, но оставляем надолго. Часто эти тесты показывают то, что не видно в обычном запланированном тесте. К примеру, появляются бэкапы - в результате переполняются кеши, достигаются пределы на максимальное количество параллельных подключений к серверу.
  4. Объёмное тестирование. Смысл его кроется в том, чтобы генерировать максимально объёмные запросы, которые бывают от посетителей портала. Это самые внушительные выборки, самые длинные сессии. Тесты определяют, как ведёт себя система при условии нагрузок запросов наибольшего объёма.
  5. Проверка масштабируемости. Это тот же запланированный тест, но при этом он повышает производительность системы за счёт добавления новых компонентов. К примеру, дополнительный «слейв», балансировщик, php-нода и т.д. В такой момент также расходуются ресурсы системы, которая «тонет». Масштабируемость необходимо протестировать заблаговременно, чтобы вы знали, когда развёртывать новые мощности, не ожидая скачков нагрузки и сбоев сервера.