Величина нагрузки на сайт
#1
Отправлено 31 августа 2009 - 13:54
Но какой именно показатель показывает величину нагрузки на сайт ??
Задача - измерить масштабируемость одной страницы (т.е. какую нагрузку она выдержит).
Записал следующий простой скрипт: пользователь заходит на веб-страничку.
Создал следущий сценарий: в контроллере одна группа ползователей, новый Vuser заходит через минуту после начала работы предыдущего Vuser'а.
В run-time settings прописал:
1. нулевую задержку между итерациями;
2. случайную задержку между итерациями (1-10 сек).
В первом случае ошибки посыпались при 6 транзакциях/сек, 45 хит/сек (на 2-м Vuser'e), во втором случае - при 1,2 транзакциях/сек и 1,2 хит/сек(на 8-м Vuser'e).
Получается, что при разных сценариях сайт валится на разных нагрузках...
Основные счётчики производительности не показали каких-то запредельных значений.
Собственно, возникает вопрос:
Можно ли считать количество транзакций/сек и хитов/сек как величину нагруженности на сайт ?? Если да - то почему такая большая разница в результатах этих двух сценариев ?? Если нет - то какую величину тогда брать за меру нагрузки ??
#2
Отправлено 31 августа 2009 - 15:08
В целом показатели/метрики, которые определяют величину нагрузки приложения могут быть разные, лично я разделяю их на два типа : первый это стандартные метрики - обе метрики, которые вы упомянули относятся к стандарным и могут быть применены в тестировании производительности, наверное, любого приложения. Второй тип метрик это метрики, которые относятся непосредственно к приложению, например events per second, в случае если приложение обрабатывает какие-то евенты.
Определите для себя, какие метрики вам важны и сделайте упор на мониторинг нужных метрик.
#3
Отправлено 31 августа 2009 - 16:10
Да - на очень малых нагрузках ошибок на сайте вообще не возникает.а) работает ли скрипт так как нужно(без ошибок, сабмитятся ли нужные данные и.т.д.)
Одинаковые - Error -26612: HTTP Status-Code=500 (Internal Server Error)б) одинаковые ли ошибки появляютяся в двух прогонах?
Использую в обоих случаях.в) используете ли вы think time в скрипте?
Скрипт для каждого Vuser'a делает следущее:
- пользователь запрашивает страницу по определённому URL;
- ждёт полной загрузки страницы;
- ждёт какое-то произвольное время после этого (для случая б);
- осуществляет следующую итерацию по такому же алгоритму (каждая итерация эмулирует заход нового пользователя с очисткой кеша).
Т.е скрипт проще некуда :)
Меня смущает не наличие ошибок (которые говорят только о том, что сайт не справляется с нагрузкой) - а то, что они проявляются при разных уровнях нагрузки (т.е. разных значениях транзакций/сек и хит/сек)
Значения различаются в 5 раз !!
Таким образом я не могу определить максимальный уровень нагрузки, который может выдержать сайт...
#4
Отправлено 01 сентября 2009 - 07:17
Кол-во одновременно работающих пользователей - величина второстепенная. Основной величиной является кол-во кликов или хитов (или как уже говорили выше Events) в секунду - qps
И как вы уже убедились на Вашем же примере, одним и тем же скриптом с разными значениями qps можно повалить сервер... Поэтому при тестировании, чтобы проверить как будет работать сервер под требуемыми нагрузками (обычная рабочая, стрессовая и т,д.), и создаются разные модели нагрузки...
Про Тестинг
#5
Отправлено 01 сентября 2009 - 08:34
Почему сервер валится в одном случае, когда страничка загружается 6 раз в секунду (а транзакция по сути и является загрузкой страницы), а в другом - когда страничка загружается 1,2 раза в секунду ??
#6
Отправлено 01 сентября 2009 - 09:52
- время отклика приложения при определенном количестве пользователей
- количество хитов в секунду
- количество транзакций в секунду
- допустимое число серверных ошибок за единицу времени
- допустимую нагрузку на процессор, использование памяти, диска и проч.
- всё остальное, что укажет заказчик в качестве измеряемых величин.
в ваших случаях вы установкой задержек в RTS меняли нагрузку на сайт. Что такое задержка между итерациями? Это принудительная остановка vusera, во время которой от него нет обращений к серверу. Вот почему в одном случае у вас скрипт валится на 2 пользователе (при нулевой задержке), а в другом случае - на восьмом. Вы просто изменили интенсивность обращений к серверу. А серверные ошибки, которые вы получали, говорят о том, что ваше утверждение о том, что "Основные счётчики производительности не показали каких-то запредельных значений", неверно.
В таких условиях, пока не будут исправлены ошибки производительности, говорить о замере максимальной производительности сайта еще очень рано.
#7
Отправлено 01 сентября 2009 - 11:14
Основные счётчики по памяти, процессору, сети и дисковой подсистемы не выявили недостаток ресурсов... Счётчики IIS тоже не показали проблемму в этом месте... хотя, конечно, я допускаю, что мог что-то недоглядеть...А серверные ошибки, которые вы получали, говорят о том, что ваше утверждение о том, что "Основные счётчики производительности не показали каких-то запредельных значений", неверно.
Может здесь проблемма в коде ?? Это мне кажется самым вероятным вариантом...
#8
Отправлено 01 сентября 2009 - 13:00
Основные счётчики по памяти, процессору, сети и дисковой подсистемы не выявили недостаток ресурсов... Счётчики IIS тоже не показали проблемму в этом месте... хотя, конечно, я допускаю, что мог что-то недоглядеть...А серверные ошибки, которые вы получали, говорят о том, что ваше утверждение о том, что "Основные счётчики производительности не показали каких-то запредельных значений", неверно.
Может здесь проблемма в коде ?? Это мне кажется самым вероятным вариантом...
Какие из счетчиков, мониторящих платформу и БД, вы использовали при нагрузке? Что они показали?
Что показывают логи приложения (платформы, БД и веб сервера) за период нагрузки? Пятисотые ошибки - это серверные ошибки, и они должны оставить свой след в логах вашего приложения.
#9
Отправлено 01 сентября 2009 - 15:58
Процент использования процессора: < 50% (на всех серверах).Какие из счетчиков, мониторящих платформу и БД, вы использовали при нагрузке? Что они показали?
Свободная физическая память: >300 МБ (на всех серверах).
Процент загруженности сети: около 1% (на всех серверах).
Процент использования диска: < 1% (на всех серверах).
Счётчики ASP.NET на веб-сервере: очереди нет, перезапусков приложения нет.
И ещё некоторые другие счётчики...
Да - в логах веб-сервера фиксируются эти 500-е ошибки. Но что мне это даёт ?? Об их наличии мне и LR говорил. У платформы своё логирование ещё не реализовано. Насчёт логов БД - с этим сложнее... честно говоря, я их не мониторил - даже не знаю где их брать (разве что, пару раз репорты строил в SQL Server Management Studio)...Что показывают логи приложения (платформы, БД и веб сервера) за период нагрузки? Пятисотые ошибки - это серверные ошибки, и они должны оставить свой след в логах вашего приложения.
#10
Отправлено 01 сентября 2009 - 16:35
Скажите, а какая у вас роль на проекте?Процент использования процессора: < 50% (на всех серверах).Какие из счетчиков, мониторящих платформу и БД, вы использовали при нагрузке? Что они показали?
Свободная физическая память: >300 МБ (на всех серверах).
Процент загруженности сети: около 1% (на всех серверах).
Процент использования диска: < 1% (на всех серверах).
Счётчики ASP.NET на веб-сервере: очереди нет, перезапусков приложения нет.
И ещё некоторые другие счётчики...Да - в логах веб-сервера фиксируются эти 500-е ошибки. Но что мне это даёт ?? Об их наличии мне и LR говорил. У платформы своё логирование ещё не реализовано. Насчёт логов БД - с этим сложнее... честно говоря, я их не мониторил - даже не знаю где их брать (разве что, пару раз репорты строил в SQL Server Management Studio)...Что показывают логи приложения (платформы, БД и веб сервера) за период нагрузки? Пятисотые ошибки - это серверные ошибки, и они должны оставить свой след в логах вашего приложения.
Если вы тестер, то одного того, что система валится под минимальной нагрузкой хватит, чтобы написать БАГ, а дальше уже пусть разработчики голову ломают как им достать нужные для исправления баги данные...
Про Тестинг
#11
Отправлено 02 сентября 2009 - 08:17
Да - я тестер...Скажите, а какая у вас роль на проекте?
Если вы тестер, то одного того, что система валится под минимальной нагрузкой хватит, чтобы написать БАГ, а дальше уже пусть разработчики голову ломают как им достать нужные для исправления баги данные...
Но в данном случае я не искал баги - я искал точку "пресыщения" системы на прототипе (чтобы определить величины, характеризующие это "пресыщение").
Величины эти нужны для того, чтобы составить план будущего тестирования производительности уже основной системы (ну, или измерения производительности, т.к. требований нет)...
Вот и наткнулся на мной вышеописанную ситуацию - встал вопрос об этих величинах
Но, насколько я уже понял, тут я нашёл не точку пресыщения, а багу. Поэтому, в принципе, мне ответили на вопрос о величинах нагрузки - буду их использовать
#12
Отправлено 02 сентября 2009 - 09:59
Действительно, о каких исследованиях производительности можно говорить, если 1 юзер может положить систему, причем особо не напрягаясь...Да - я тестер...Скажите, а какая у вас роль на проекте?
Если вы тестер, то одного того, что система валится под минимальной нагрузкой хватит, чтобы написать БАГ, а дальше уже пусть разработчики голову ломают как им достать нужные для исправления баги данные...
Но в данном случае я не искал баги - я искал точку "пресыщения" системы на прототипе (чтобы определить величины, характеризующие это "пресыщение").
Величины эти нужны для того, чтобы составить план будущего тестирования производительности уже основной системы (ну, или измерения производительности, т.к. требований нет)...
Вот и наткнулся на мной вышеописанную ситуацию - встал вопрос об этих величинах
Но, насколько я уже понял, тут я нашёл не точку пресыщения, а багу. Поэтому, в принципе, мне ответили на вопрос о величинах нагрузки - буду их использовать
Удачи...
Про Тестинг
#13
Отправлено 02 сентября 2009 - 10:08
#14
Отправлено 02 сентября 2009 - 10:34
Да и вообще, если уменьшить нагрузку - количество транзакций будет расти к плюс бесконечности...
Количество пользователей, читающих эту тему: 0
0 пользователей, 0 гостей, 0 анонимных