Перейти к содержимому

Фотография

Величина нагрузки на сайт


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 13

#1 Ivis

Ivis

    Новый участник

  • Members
  • Pip
  • 53 сообщений
  • Город:Одесса


Отправлено 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).

Получается, что при разных сценариях сайт валится на разных нагрузках...
Основные счётчики производительности не показали каких-то запредельных значений.

Собственно, возникает вопрос:
Можно ли считать количество транзакций/сек и хитов/сек как величину нагруженности на сайт ?? Если да - то почему такая большая разница в результатах этих двух сценариев ?? Если нет - то какую величину тогда брать за меру нагрузки ??
  • 0

#2 Troubleshooter

Troubleshooter

    Опытный участник

  • Members
  • PipPipPipPip
  • 398 сообщений
  • Город:Киев

Отправлено 31 августа 2009 - 15:08

Да можно, обе метрики определяют уровень нагрузки вашего приложения. Из того, что вы написали не совсем понятно а) работает ли скрипт так как нужно(без ошибок, сабмитятся ли нужные данные и.т.д.) б) одинаковые ли ошибки появляютяся в двух прогонах? в) используете ли вы think time в скрипте? Опишите детально, что делает ваш скрипт - пошагово, и какого рода ошибки появляются ?

В целом показатели/метрики, которые определяют величину нагрузки приложения могут быть разные, лично я разделяю их на два типа : первый это стандартные метрики - обе метрики, которые вы упомянули относятся к стандарным и могут быть применены в тестировании производительности, наверное, любого приложения. Второй тип метрик это метрики, которые относятся непосредственно к приложению, например events per second, в случае если приложение обрабатывает какие-то евенты.
Определите для себя, какие метрики вам важны и сделайте упор на мониторинг нужных метрик.
  • 0

#3 Ivis

Ivis

    Новый участник

  • Members
  • Pip
  • 53 сообщений
  • Город:Одесса


Отправлено 31 августа 2009 - 16:10

а) работает ли скрипт так как нужно(без ошибок, сабмитятся ли нужные данные и.т.д.)

Да - на очень малых нагрузках ошибок на сайте вообще не возникает.

б) одинаковые ли ошибки появляютяся в двух прогонах?

Одинаковые - Error -26612: HTTP Status-Code=500 (Internal Server Error)

в) используете ли вы think time в скрипте?

Использую в обоих случаях.

Скрипт для каждого Vuser'a делает следущее:
- пользователь запрашивает страницу по определённому URL;
- ждёт полной загрузки страницы;
- ждёт какое-то произвольное время после этого (для случая б);
- осуществляет следующую итерацию по такому же алгоритму (каждая итерация эмулирует заход нового пользователя с очисткой кеша).

Т.е скрипт проще некуда :)

Меня смущает не наличие ошибок (которые говорят только о том, что сайт не справляется с нагрузкой) - а то, что они проявляются при разных уровнях нагрузки (т.е. разных значениях транзакций/сек и хит/сек) :sad: :sad:
Значения различаются в 5 раз !!
Таким образом я не могу определить максимальный уровень нагрузки, который может выдержать сайт...
  • 0

#4 Boltick

Boltick

    Специалист

  • Members
  • PipPipPipPipPip
  • 596 сообщений
  • ФИО:Алексей
  • Город:планета Земля

Отправлено 01 сентября 2009 - 07:17

Скажу так...
Кол-во одновременно работающих пользователей - величина второстепенная. Основной величиной является кол-во кликов или хитов (или как уже говорили выше Events) в секунду - qps

И как вы уже убедились на Вашем же примере, одним и тем же скриптом с разными значениями qps можно повалить сервер... Поэтому при тестировании, чтобы проверить как будет работать сервер под требуемыми нагрузками (обычная рабочая, стрессовая и т,д.), и создаются разные модели нагрузки...
  • 0
Алексей Булат
Про Тестинг

#5 Ivis

Ivis

    Новый участник

  • Members
  • Pip
  • 53 сообщений
  • Город:Одесса


Отправлено 01 сентября 2009 - 08:34

Всё равно не могу понять - как могут быть разные значения транзакций/сек для одного и того же скрипта ??
Почему сервер валится в одном случае, когда страничка загружается 6 раз в секунду (а транзакция по сути и является загрузкой страницы), а в другом - когда страничка загружается 1,2 раза в секунду ?? :sad: :sad:
  • 0

#6 Jackie

Jackie

    Постоянный участник

  • Members
  • PipPipPip
  • 206 сообщений
  • Город:Москва

Отправлено 01 сентября 2009 - 09:52

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

в ваших случаях вы установкой задержек в RTS меняли нагрузку на сайт. Что такое задержка между итерациями? Это принудительная остановка vusera, во время которой от него нет обращений к серверу. Вот почему в одном случае у вас скрипт валится на 2 пользователе (при нулевой задержке), а в другом случае - на восьмом. Вы просто изменили интенсивность обращений к серверу. А серверные ошибки, которые вы получали, говорят о том, что ваше утверждение о том, что "Основные счётчики производительности не показали каких-то запредельных значений", неверно.
В таких условиях, пока не будут исправлены ошибки производительности, говорить о замере максимальной производительности сайта еще очень рано.
  • 0

#7 Ivis

Ivis

    Новый участник

  • Members
  • Pip
  • 53 сообщений
  • Город:Одесса


Отправлено 01 сентября 2009 - 11:14

А серверные ошибки, которые вы получали, говорят о том, что ваше утверждение о том, что "Основные счётчики производительности не показали каких-то запредельных значений", неверно.

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

Может здесь проблемма в коде ?? Это мне кажется самым вероятным вариантом...
  • 0

#8 Jackie

Jackie

    Постоянный участник

  • Members
  • PipPipPip
  • 206 сообщений
  • Город:Москва

Отправлено 01 сентября 2009 - 13:00

А серверные ошибки, которые вы получали, говорят о том, что ваше утверждение о том, что "Основные счётчики производительности не показали каких-то запредельных значений", неверно.

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

Может здесь проблемма в коде ?? Это мне кажется самым вероятным вариантом...


Какие из счетчиков, мониторящих платформу и БД, вы использовали при нагрузке? Что они показали?
Что показывают логи приложения (платформы, БД и веб сервера) за период нагрузки? Пятисотые ошибки - это серверные ошибки, и они должны оставить свой след в логах вашего приложения.
  • 0

#9 Ivis

Ivis

    Новый участник

  • Members
  • Pip
  • 53 сообщений
  • Город:Одесса


Отправлено 01 сентября 2009 - 15:58

Какие из счетчиков, мониторящих платформу и БД, вы использовали при нагрузке? Что они показали?

Процент использования процессора: < 50% (на всех серверах).
Свободная физическая память: >300 МБ (на всех серверах).
Процент загруженности сети: около 1% (на всех серверах).
Процент использования диска: < 1% (на всех серверах).
Счётчики ASP.NET на веб-сервере: очереди нет, перезапусков приложения нет.
И ещё некоторые другие счётчики...

Что показывают логи приложения (платформы, БД и веб сервера) за период нагрузки? Пятисотые ошибки - это серверные ошибки, и они должны оставить свой след в логах вашего приложения.

Да - в логах веб-сервера фиксируются эти 500-е ошибки. Но что мне это даёт ?? Об их наличии мне и LR говорил. У платформы своё логирование ещё не реализовано. Насчёт логов БД - с этим сложнее... честно говоря, я их не мониторил - даже не знаю где их брать (разве что, пару раз репорты строил в SQL Server Management Studio)...
  • 0

#10 Boltick

Boltick

    Специалист

  • Members
  • PipPipPipPipPip
  • 596 сообщений
  • ФИО:Алексей
  • Город:планета Земля

Отправлено 01 сентября 2009 - 16:35

Какие из счетчиков, мониторящих платформу и БД, вы использовали при нагрузке? Что они показали?

Процент использования процессора: < 50% (на всех серверах).
Свободная физическая память: >300 МБ (на всех серверах).
Процент загруженности сети: около 1% (на всех серверах).
Процент использования диска: < 1% (на всех серверах).
Счётчики ASP.NET на веб-сервере: очереди нет, перезапусков приложения нет.
И ещё некоторые другие счётчики...

Что показывают логи приложения (платформы, БД и веб сервера) за период нагрузки? Пятисотые ошибки - это серверные ошибки, и они должны оставить свой след в логах вашего приложения.

Да - в логах веб-сервера фиксируются эти 500-е ошибки. Но что мне это даёт ?? Об их наличии мне и LR говорил. У платформы своё логирование ещё не реализовано. Насчёт логов БД - с этим сложнее... честно говоря, я их не мониторил - даже не знаю где их брать (разве что, пару раз репорты строил в SQL Server Management Studio)...

Скажите, а какая у вас роль на проекте?
Если вы тестер, то одного того, что система валится под минимальной нагрузкой хватит, чтобы написать БАГ, а дальше уже пусть разработчики голову ломают как им достать нужные для исправления баги данные...
  • 0
Алексей Булат
Про Тестинг

#11 Ivis

Ivis

    Новый участник

  • Members
  • Pip
  • 53 сообщений
  • Город:Одесса


Отправлено 02 сентября 2009 - 08:17

Скажите, а какая у вас роль на проекте?
Если вы тестер, то одного того, что система валится под минимальной нагрузкой хватит, чтобы написать БАГ, а дальше уже пусть разработчики голову ломают как им достать нужные для исправления баги данные...

Да - я тестер...
Но в данном случае я не искал баги - я искал точку "пресыщения" системы на прототипе (чтобы определить величины, характеризующие это "пресыщение").
Величины эти нужны для того, чтобы составить план будущего тестирования производительности уже основной системы (ну, или измерения производительности, т.к. требований нет)...
Вот и наткнулся на мной вышеописанную ситуацию - встал вопрос об этих величинах :sad: :sad:
Но, насколько я уже понял, тут я нашёл не точку пресыщения, а багу. Поэтому, в принципе, мне ответили на вопрос о величинах нагрузки - буду их использовать :smile: :smile:
  • 0

#12 Boltick

Boltick

    Специалист

  • Members
  • PipPipPipPipPip
  • 596 сообщений
  • ФИО:Алексей
  • Город:планета Земля

Отправлено 02 сентября 2009 - 09:59

Скажите, а какая у вас роль на проекте?
Если вы тестер, то одного того, что система валится под минимальной нагрузкой хватит, чтобы написать БАГ, а дальше уже пусть разработчики голову ломают как им достать нужные для исправления баги данные...

Да - я тестер...
Но в данном случае я не искал баги - я искал точку "пресыщения" системы на прототипе (чтобы определить величины, характеризующие это "пресыщение").
Величины эти нужны для того, чтобы составить план будущего тестирования производительности уже основной системы (ну, или измерения производительности, т.к. требований нет)...
Вот и наткнулся на мной вышеописанную ситуацию - встал вопрос об этих величинах :sad: :sad:
Но, насколько я уже понял, тут я нашёл не точку пресыщения, а багу. Поэтому, в принципе, мне ответили на вопрос о величинах нагрузки - буду их использовать :smile: :smile:

Действительно, о каких исследованиях производительности можно говорить, если 1 юзер может положить систему, причем особо не напрягаясь...
Удачи...
  • 0
Алексей Булат
Про Тестинг

#13 Alex

Alex

    Постоянный участник

  • Members
  • PipPipPip
  • 237 сообщений
  • ФИО:Алексей

Отправлено 02 сентября 2009 - 10:08

В вашем случае стоит еще посмотреть на общее количество выполненных транзакций в первом и втором случае. Если оно примерно равно, то дело не в нагрузке как таковой, а попросту ваш сервер не может обработать большее количество транзакций в указанный промежуток времени/или вообще не может (здесь уже не совсем корректно говорить о хитах в секунду на мой взгляд). Причинами этому могут быть как настройки IIS/приложения так и утечки памяти.
  • 0

#14 Ivis

Ivis

    Новый участник

  • Members
  • Pip
  • 53 сообщений
  • Город:Одесса


Отправлено 02 сентября 2009 - 10:34

Да - я отследил этот момент. Количество транзакций разное.
Да и вообще, если уменьшить нагрузку - количество транзакций будет расти к плюс бесконечности...
  • 0


Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных