Как можно оценить нагрузкоустойчивость проекта?

Бочонок

http://frontender.info
Как можно оценить нагрузкоустойчивость проекта?

Приятного времени суток.

Как можно оценить максимальную нагрзку, с которой справится проект, который находится на виртуальном хостинге (тоесть нет доступа к серверу, кроме как через htaccess и нельзя устанавливать какое либо п.о.)?
Есть ли какие то инструменты для такого тестирования? (Желательно бесплатные.)
Как вы тестируете свои проекты на устойчивость к нагрузкам перед тем как открывать к ним доступ?

С уважением. Бочонок.
 

HraKK

Мудак
Команда форума
Вот тупо открыли доступ и повалило туча посетителей. Я думаю, нагрузоустойчивость для вас херня какая-то, спалите лучше тему как получить эту нагрузку, а?
 

Бочонок

http://frontender.info
HraKK когда речь идет о не очень хорошем виртуальном хостинге, то получить нагрузку, достаточную для того что бы сайт помер, не особенно сложно.

Кроме того мне интересен существующий подход к проблеме.
Кто то вообще как то нагрузкоустойчивость как то оценивает? С помощью чего то?
Или просто предвочитают смотреть на проблму как: "о. сайт помирает. надо чего то менять." И садяться рефакторить код, переносить на более мощное железо и т.п.

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

craz

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

Кроме того мне интересен существующий подход к проблеме.
Кто то вообще как то нагрузкоустойчивость как то оценивает? С помощью чего то?
Или просто предвочитают смотреть на проблму как: "о. сайт помирает. надо чего то менять." И садяться рефакторить код, переносить на более мощное железо и т.п.

Я переодически слышу о работе с высоконагруженными системами. Об этом кричат на каждой конференции. Но мне хотелось бы знать как можно оценивать и прогнозировать нагрузку и как это сделать не в огромном проекте с десятком выделеных серверов а на обычном сайте на неочень хорошем виртуальном хостинге. Согласитесь ... они в жизни большинства разработчиков встречаются несравнимо чаще.
Кричат потому что в каждом конкретном случае это не тривиальная задача(это тоже самое как, то что по телеку показывают всяких звезд и побольшому счету только звезд - это интересно и это хавает народ), так и тут есть n - конечное число сайтов, которые могут быть высоконагружены причем n прямо-пропорционально кол-ву пользователей интернета.
Так что вопрос
палите лучше тему как получить эту нагрузку, а?
вполне правомерен для миллионов разработчиков, ибо зачастую сайты разрабатываются для конкретных бизнесов-проектов: недвижка, продажа бассейнов и т.д. и т.п. и даже самый гениальный СЕО не заставит туда идти народу столько, чтобы этот ресурс стал высоконагруженным.
 

DYPA

Настоящая dypa (c)
Re: Как можно оценить нагрузкоустойчивость проекта?

Автор оригинала: кто-то с phpclub
приблизительный расчет производится сл. образом:

Пусть ср. посещаемость 1000 чел.
Пусть они все вместе просматривают 50 000 страниц.
Обычно бывает неравномерная нагрузка, т.е. 75 % посещений с 10-18, пик приходится на 12-16 час (до 50 % от всех посещений).
Это где-то 25 тыс просмотров на 4 часа = 6250 в час = 104 мин = 1.7 в сек
т.е. должен выполнятся запрос не более чем 580 мс
если скрипт выполеняется 0.015-0.3 мс, то никакой очереди не будет.

проверь с помощью ab результаты выполнения скрипта.

http://top.hotlog.ru/cgi-bin/hotlog/top
Yтро.ru. Ежедневная электронная газета. - 244139

берем за 12-16 те 4 часа 244139/2 = 122069,5
122069,5/4/3600 = 8,4770486111111111111111111111111 в сек
те запрос должен выполняться менее чем за 117,96558517893495099103379632095 нсек
 

whirlwind

TDD infected, paranoid
Мы так делали. Берется список usecase, составляется план активности по этим usecase, записываются сценариии, загружается в тулзу и грузится следующим образом: берется число от балды и используется как колво конкурирующих юзеров, если серв с этим числом загибается, число уменьшается.

Тестирование повторяется пока не будет достигнута нужная точность. По ходу дела собираются расширенные логи вебсервера, в которых время обработки запроса. Потом эти логи можно использовать для поиска ботлнеков. Делается это все естессно в тестлабе, а не через интернет. И уж точно не виртуальном хостинге. Но если честно, это такой гемор, что стоит им заниматься только если действительно заказчик это хочет и оплачивает.

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

-~{}~ 22.03.10 11:22:

ЗЫ. Кстати 100мб канал забивается очень быстро. И трафик получается такой что вас либо отключат либо скорости канала не хватит для прокачки. Тока по гигабитным сетевухам имеет смысл гонять.
 

Духовность™

Продвинутый новичок
и даже самый гениальный СЕО не заставит туда идти народу столько, чтобы этот ресурс стал высоконагруженным.
ребята, о чем вы говорите? Баннерную рекламу, например, ещё никто не отменял. У меня так было - сделал проект для клиента, когда в студии работал, а они на одноклассники и mail.ru повесили рекламу. Проект сразу гигнулся))

Зачем философствуете на эту тему - есть у них посетители или нет? Задал вопрос человек - отвечайте.
 

HraKK

Мудак
Команда форума
HraKK когда речь идет о не очень хорошем виртуальном хостинге
Не очень хороший виртуальный хост, выдержит как минимум ну ~5-10к хостов. У Вас сходу будет больше? Если да, то зачем "не очень хороший виртуальный хост"?
 

iceman

говнокодер
Или просто предвочитают смотреть на проблму как: "о. сайт помирает. надо чего то менять." И садяться рефакторить код, переносить на более мощное железо и т.п.
а ты чо думал, ты запустишь проект и он сразу "нагрузится"?)

зачем менять что-то сейчас, когда можно/нужно потом, тем более если тебе сегодня за это не заплатят?) лучше все силы бросить на багфиксинг +)
 

craz

Нестандартное звание
да вот и именно ну протестил ты сайт, про спамил и все такое есть у тебя графики узких мест, потратил месяца полтора два на рефакторинг переписал половину узких мест на ассемблере)))) -и что? а на твой проект заходят максимум 20 человек в день, кто будет оплачивать потерянное время.

Ну, а если вопрос у меня начал падать сайт от 10к уников в день, что делать то и решать его надо по-другому.
 

Dreammaker

***=Ф=***
По своему опыту скажу, что зачастую падает не там где ожидаешь. А иногда там где ожидаешь, но в другом виде :)
 

HraKK

Мудак
Команда форума
Выдержка с моей статьи.
Тезис №1
Преждевременная оптимизация корень всех бед.

Если Вы никогда не делали аналогичный highload проект, Вы НИКОГДА не скажите где у Вас будет узкое место, а посему я ( и такое классики как Фаулер, например ) советую Вам не оптимизировать заранее.
 

Бочонок

http://frontender.info
HraKK я не оптимизирую. Я пытаюсь узнать, как можно оценить способность выдерживать нагрузку.
Не более.
Из того, что нашел по теме:
http://www.softwareqatest.com/qatweb1.html#LOAD
http://loadimpact.com/index.php

Может кому то будет полезно.
 

Dreammaker

***=Ф=***
Бочонок
если какой-то тулзой будет, например, дёргаться страница для оценки нагрузки, то как это поможет в случае, если с той же страницы или с этой и кучи других в реальном проекте решат 1000 человек посмотреть видео и канал забъётся?

а таких непредусматриваемых вариантов может быть очень много.
 

dimagolov

Новичок
Я пытаюсь узнать, как можно оценить способность выдерживать нагрузку.
нельзя оценить то, чего не существует. реальную нагрузку смоделировать невозможно, можно сделать некую "синтетику" более или менее ей соответствующую.
 

Бочонок

http://frontender.info
Угу. Правду говорите. Но если нет точных методов моделирования нагрузки, приходится довольствоваться теми что есть.
 
Сверху