нагрузочное тестирование и нагрузочное тестирование с помощью jmeter - насколько хорошо это хорошо?руководство по тестированию? - PullRequest
5 голосов
/ 23 ноября 2011

Я собираюсь настроить тестирование нагрузки с помощью jmeter.Тем не менее, я не могу найти в сети, что является хорошим эталоном.Насколько хорошо это хорошо?

Число посещений моего сайта в среднем составляет около 80 000 в день.

После анализа некоторых данных из журнала доступа в течение 1 месяца мне удается выяснить:

Средний низкий трафик составляет около 1 запросов / сек. Средний средний трафик 30 запросов / сек. Средний высокий трафик 60 запросов / сек.

Я разработал следующие планы для тестирования 8 типов страниц, и это идеальносреднее время отклика при загрузке одной страницы:

  • Страница 1 - 409мс
  • Страница 2 - 730мс
  • Страница 3 - 1412мс
  • Страница 4- 1811 мс
  • стр. 5 - 853
  • стр. 6 - 657 мс
  • стр. 7 - 10 мс
  • стр. 8 - 180 мс

Сценарий имитации среднего трафика - 10 запросов / секунду теста

  • Имитация пользователей: 10 потоков
  • Период разгона: 1 сек
  • Продолжительность:30 минут

Сценарий имитации среднего трафика - 30 запросов / второй тест

  • Имитацияd Пользователи: 30 потоков
  • Период разгона: 1 сек
  • Продолжительность: 30 мин

Сценарий симуляции сверхвысокого трафика - 100 запросов / секунду теста

  • Имитированные пользователи: 100 потоков
  • Период разгона: 1 сек
  • Продолжительность: 30 мин

Симуляциясценарий атаки - 350 запросов / сек (на основе максимального соединения MYSQL 500)

  • Имитация пользователей: 100 потоков
  • Период разгона: 1 сек
  • Продолжительность: 10 минут

Во время выполнения этих тестов я планирую отслеживать следующее:

  • Средняя загрузка процессора: (веб-сервер)
  • Загрузка процессорасредняя: (сервер БД)
  • средняя загрузка ОЗУ:
  • средняя загрузка ОЗУ: (сервер БД)
  • среднее время ответа:

Кпосмотрите, сколько у него ресурсов памяти и процессора, и если нужно увеличить объем оперативной памяти, процессора и т. д. Кроме того, я ограничил соединение MySQL Max на 500 .

Во всех тестах,Я ожидаю, что время отклика в идеале должно быть ниже верхнего предела в 10secs .

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

Веб-сервер работает: 8 ГБ ОЗУ, 4 ядра (1 сервер, еще один сервер холодного резервного копирования без балансировки нагрузки) Сервер MySQL работает: 4 ГБОперативная память, 2 ядра.

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

Был бы действительно признателенсовет здесь ..

1 Ответ

5 голосов
/ 23 ноября 2011

Читать о SLA

Рекомендую вам определить ваши требования к производительности сайта. Но по умолчанию вы можете использовать «стандартный» лимит времени ответа около 10 секунд. Затем найдите профиль активности пользователя в течение дня, недели, месяца. Затем вы можете выбрать базовые значения нагрузки для каждого профиля. Найти наиболее частые и наиболее «тяжелые» действия пользователя. Создайте тестовый сценарий с этими действиями (помните о процентном соотношении действий, не используйте все действия с одной частотой). Ограничить нагрузку таймером пропускной способности (установить необходимое значение количества попаданий в минуту). Количество потоков в группе потоков выбираем экспериментально (для загрузки http не нужно многих из них). Добавьте плагины для jmeter из гугл-кода. Используйте графики «количество потоков в секунду», «время отклика» и стандартный приемник «сводный отчет». Не используйте стандартные графики с высокой нагрузкой, это слишком медленно. Вы также можете сохранить данные в файл от каждого слушателя (я настоятельно рекомендую это, и выберите формат CSV). Графики показывают средние точки, поэтому, если вам нужны точные изображения, то строите графики вручную в Excel или Calc. Получение показателей производительности с сервера (процессор, память, ввод-вывод, БД, сетевой интерфейс). Установите период нарастания около 20-60 минут и проверьте около 1-2 часов. Если все в порядке, то протестируйте с 200% -ным профилем нагрузки или более, чтобы найти наилучшую производительность. Также установите тест около 1-2 дней. Таким образом, вы увидите стабильность сервера.

...