Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как оценить производительность, макс. нагрузку сата
 
 автор: добряк   (10.09.2012 в 11:09)   письмо автору
 
 

Можно ли оценить максимально допустимую нагрузку сайта по количеству возможных посетителей.
Зависит ли максимальное количество посетителей от времени выполнения скрипта.
Допустим, скрипт выполняется в среднем 0,5 сек.
Можно ли предположить и дать прогноз, каково максимальное количество посетителей за сутки может выдержать сайт или тут связи нет?

  Ответить  
 
 автор: cheops с планшета   (10.09.2012 в 11:24)
 
   для: добряк   (10.09.2012 в 11:09)
 

Время 0.5 сек будет меняться с ростом количества посетителей - задача модели его спрогнозировать.

  Ответить  
 
 автор: добряк   (10.09.2012 в 11:43)   письмо автору
 
   для: cheops с планшета   (10.09.2012 в 11:24)
 

Так я и спрашиваю, можно ли спрогнозировать и как, приблизительно?
Мне не понятно, что будет, если допустим во время выполнения скрипта, заходит следующий пользователь. В windows создается очередь и с ростом запросов система виснет.
А что происходит в unix подобных системах, когда одновременно заходит много пользователей?

  Ответить  
 
 автор: cheops   (11.09.2012 в 09:39)   письмо автору
 
   для: добряк   (10.09.2012 в 11:43)
 

Что в Windows, что в UNIX создается не одна очередь. Вообще обычно строят модель доступа, которая начинается с низкоуровневых параметров - частоты, количества процессоров, времени доступа к жесткому диску, время отклика сети. Калибруют её, и строят прогноз. Для этого бы хорошо иметь все параметры сервера а сами сервера (Apache, MySQL располагать на разных машинах, которые моделировать отдельно). Такому моделированию посвящены целые книги.

  Ответить  
 
 автор: добряк   (11.09.2012 в 12:33)   письмо автору
 
   для: cheops   (11.09.2012 в 09:39)
 

Порекомендуйте пожалуйста литературу.
У меня вопрос на приблизительную оценку предельных теоретических возможностей. Реальная модель сложнее, факторов больше и показатели всегда будут другие.
Предположение 1.
Вопрос, типа задачи с ограничением:
Если скрипт работает 0.5 сек, то сайт не сможет никогда принять посетителей больше 7200 в час, если запросы строго поступают не чаще чем через 0.5сек в порядке очередности и никаких других других затрат времени не имеется на трассе.
Но на практике эта цифра еще меньше
Предположение 2.
Если запросы поступают чаще чем 0.5 сек, то сервер или ... создадут новый процесс и сайт теоретически сможет обработать больше 7200 запросов в час

Опровержение. Предположение 2 является ложным, если физически процессор один.

  Ответить  
 
 автор: cheops   (12.09.2012 в 15:31)   письмо автору
 
   для: добряк   (11.09.2012 в 12:33)
 

Процессор тут не самое главное, скорее всего упретесь либо в подсистему ввода-вывода, либо в память. Клиент обрабатывается за определенное время, на это же время ему выделяется память и ресурсы. Представьте 10 клиентов, которые обрабатываются 1 секнуду, потом их становится 20, они уже обрабатываются 1.5 секунды, потом 100, каждый из клиентов уже обрабатывается по 5 секунд, потом 1000 - все висит, так как клиенты обрабатываются минутами и с каждой секундой их становится больше. Все это можно моделировать и анализировать, более того, в нормальных компаниях так и делают.
Была такая книжка Производительность Web-служб. Анализ, оценка и планирование, в которой очень подробно рассматривается процесс построения таких моделей. Книга к сожалению, уже не продается, но если сможете достать - берегите как зеницу ока.

  Ответить  
 
 автор: Sfinks   (18.09.2012 в 23:22)   письмо автору
 
   для: cheops   (12.09.2012 в 15:31)
 

Ее можно заказать на озоне, но только в оригинале, т.е. на инглише.
http://www.ozon.ru/context/detail/id/1830865/
Но цена у нее - я извиняюсь.... 3500+ деревянных....
Настолько хороша?

  Ответить  
 
 автор: cheops   (19.09.2012 в 09:13)   письмо автору
 
   для: Sfinks   (18.09.2012 в 23:22)
 

Готовые модели, полностью расписано как моделировать сервера. Книга довольно ценная.

  Ответить  
 
 автор: Sfinks   (19.09.2012 в 16:02)   письмо автору
 
   для: cheops   (19.09.2012 в 09:13)
 

Интересно, почему у нее при этом тираж 2500 =(

  Ответить  
 
 автор: cheops   (21.09.2012 в 08:21)   письмо автору
 
   для: Sfinks   (19.09.2012 в 16:02)
 

Я эту книгу очень поздно заметил, когда тираж закончился - рвал и метал, что не купил больше, в результате она одна, и её рвут из рук в руки.

  Ответить  
 
 автор: добряк   (11.09.2012 в 14:31)   письмо автору
 
   для: cheops   (11.09.2012 в 09:39)
 

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

Модель должна быть идеализирована, без учета всех остальных физических характеристик. Точно так же как теоретическая физика, например Ньютона, не учитывает множества реальных физических характеристик.

Модель жестко-детерминированная, механистическая(в рамках категории необходимости ), Ньютоновская, без учета случайностей и других закономерностей

В силу выше сказанного 0.5сек (время выполнения скрипта)- считать точным, неизменяемым значением равным процессорному времени одноядерного процессора.

  Ответить  
 
 автор: cheops   (12.09.2012 в 15:41)   письмо автору
 
   для: добряк   (11.09.2012 в 14:31)
 

Хм... а что вы будете делать с этой идеализированной моделью, которая вам насчитает 2000 одновременных посетителей, когда в районе 200 у вас будет запредельная нагрузка на жесткий диск, т.е. когда обращение к нему будет занимать секунд 20 (все это время клиент будет висеть на связи, и потреблять память, которая не будет выделена другому клиенту или будет выделена ценой свопа)? От процессора обычно вообще не отталкиваются, смотрят память, подсистему ввода-вывода и сеть - два последних компонента, как правило, дают самый большой вклад во время отклика, а время отклика уже позволяет вам прогнозировать количество одновременно обрабатываемых клиентов. Т.е. фактически вы строите время затрачиваемое на одного посетителя, при росте их количества. Когда у вас будет время отклика секунд 5-7 - это уже не приемлемо, да и полный коллапс сервера не за горами, смотрите по графику какая для этого нужна посещаемость, потом анализируете логи и смотрите динамику прироста посетителей. Делаете орг.выводы.

  Ответить  
 
 автор: добряк   (17.09.2012 в 21:09)   письмо автору
 
   для: cheops   (12.09.2012 в 15:41)
 

Мне понять надо алгоритм работы. Ведь реальность объять никто не может, а наука возникает там, где есть идеализация. Например, кинематика, динамика, статика, физическая математика...
Везде идеализируются исходные данные и дальше проводится расчет по НАУКЕ, по алгоритму исключающему момент, что исходные данные ошибочны.
Иного просто не существует, так как мозг не способен охватить всю совокупность данных в природе.
В кинематике не принимают во внимание силы и другие проблемы, а интересуются только геометрией и траекторией движения.
Меня тоже интересует только "траектория" процесса, я не знаю алгоритма работы.
Я не строю время, я не придумываю, я считаю время ИДЕАЛЬНО точным, заданным жестко и сомнению не подвергается.
Если же читать вас, то получается, что поезд из пункта А в пункт Б никогда не доедет(что то сломается, взорвется) и вся математика превращается в ложь, а не в науку.
Вы уводите и соединяете, чем обедняете научное понимание и возвышаете понимание дилетанта на деревенской лавочке.
А я каждый узел подвергаю проверке разным теориям: динамике, кинематике, ...психологии...Сейчас меня интересует причина замирания сайта, которая днем наблюдается, а ночью он скачет как красавица лань
Меня интересует что будет, если ПОСЛЕДОВАТЕЛЬНОСТЬ запросов от пользователей поступит чаще, чем их можно обработать? Считать точными период запросов и время отклика.

В Винде, я наблюдаю каждый день, все подвисает, останавливается в очереди и часть запросов не обрабатывается, "ВЫЛЕТАЮТ".
А тут? У меня наблюдается, что мой сайт днем(когда поток большой) как бы замирает, на 1-3 сек, если щелкнуть
Мне понять причину надо, природу процесса, как дилемму. Либо скрипты либо что то другое дает торможение.
Время обработки большое у скриптов для данного потока запросов или другие проблемы ?????

  Ответить  
 
 автор: cheops   (18.09.2012 в 07:51)   письмо автору
 
   для: добряк   (17.09.2012 в 21:09)
 

>Я не строю время, я не придумываю, я считаю время ИДЕАЛЬНО точным, заданным жестко и
>сомнению не подвергается.
Не будет такого, сервер дышет и время выполнения скрипта зависит от нагрузки - это и есть проблема прогнозирования нагрузки. Это все равно, что сказать, что скорость ИДЕАЛЬНО равна нулю и жестко задана, сомнению не подвергается, а теперь давайте вычислим дальность полета пули.

PS По существу чуть позже отпишусь.

  Ответить  
 
 автор: добряк   (18.09.2012 в 11:49)   письмо автору
 
   для: cheops   (18.09.2012 в 07:51)
 

ВЫ смеетесь :):) Извините меня, тянуть такой форум конечно тяжело, я понимаю вас. Я же решаю другую задачу, ваше упорство уводит. А с "пулей" мы сейчас по лесу будем бродить.Нам тут понять друг друга хотя бы
( про деревенскую лавочку - это конечно не к вам, а к обыденному пониманию, к рабочей обстановке, когда в стремлении к цели, программист огрубляет все исходные параметры, а цель идеализируется. Дилетант это я, но решить вопрос я хочу не огульно, не дилетантски)

У меня анализ работы сайта.
(идеальность времени работы скриптов берется из работы на локальной системе, так сказать в "лабораторных условиях" все ситуации отрабатываются быстро, разброс незначителен и им можно пренебречь.)

У меня дилемма. При щелчке мышкой днем сайт как бы замирает (когда поток запросов большой) , на 1-3 сек([сервер общий). Локально сайт нормально работает

Мне надо отличить ЛИБО СЕРВЕР виноват, ЛИБО СКРИПТЫ НАДО ПЕРЕПИСЫВАТЬ.
ЛИБО надо переходить на выделенный сервер, ЛИБО надо скрипты менять и оптимизировать.

Надо определить, ответить на главный вопрос. Почему он днем притормаживает? Можно ли утверждать, что если локально такого нет, значит на хостинге проблемы у сервера, а не у скриптов?
Если сервер виноват, то опять вопрос. MySQL, Apache, PHP, SMTP или другая часть

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


Решение типа: "все умные люди ставят выделенный сервер", - мне известен и не подходит, так как задача другая

  Ответить  
 
 автор: cheops   (18.09.2012 в 13:26)   письмо автору
 
   для: добряк   (18.09.2012 в 11:49)
 

Имеет смысл и замеры поставить и вывести часовой и пятиминутный графики посещаемости, чтобы отследить когда замирает, при посещении скольки человек. Помимо замеров поглядите список MySQL-запросов в час пик (можно в phpMyAdmin или командой SHOW PROCESSLIST, если доступна консоль).

  Ответить  
 
 автор: добряк   (23.09.2012 в 22:47)   письмо автору
 
   для: cheops   (18.09.2012 в 13:26)
 

А как произвести искусственно нагрузку, для теста. У меня с одной точки не получается. Много запросов за единицу времени, а по показаниям liveinternet.ru количество посетителей в минуту достигает до 15/мин. Я не могу представить, что там с ними происходит:
зависают они и уходят,
повисят и войдут,
или все нормально.
Как эту ситуацию искусственно создать?

  Ответить  
 
 автор: cheops   (24.09.2012 в 17:59)   письмо автору
 
   для: добряк   (23.09.2012 в 22:47)
 

Можно воспользоваться ApacheBenchmark, правда он не очень удобен, так как нагружает один скрипт, а не все равномерно (это утилита ab.exe в папке bin Apache).

  Ответить  
 
 автор: добряк   (25.09.2012 в 00:48)   письмо автору
 
   для: cheops   (24.09.2012 в 17:59)
 

Я не хозяин хостинга. Но для меня самый главный единственный вопрос будет всегда один
По показаниям liveinternet.ru количество посетителей в минуту достигает до 15/мин.
Что происходит сейчас и будет потом, при увеличении посетителей
1.зависают они и уходят,
2. повисят и войдут,
3. все нормально.
Как эту ситуацию искусственно создать?
Как произвести нужные замеры в эти моменты?
Как создать тест на подобную нагрузку и почувствовать самому наглядную картину?

Вот пример нашел. http://www.1c-bitrix.ru/products/cms/performance/. буду смотреть.
. Даже простой эксперимент, всегда точней угадайства великого теоретика-зубрилы и счетовода.
Вот и вопрос. Как нагрузить сайт и увидеть результат нагрузки

  Ответить  
 
 автор: cheops   (25.09.2012 в 08:22)   письмо автору
 
   для: добряк   (25.09.2012 в 00:48)
 

Зависит от хостинга, как правило, хостинги ограничивают количество обращений с одного IP-адреса, поэтому нагрузить сайт с одной машины довольно проблематично. Однако, если такого ограничения нет (а это плохой хостинг), то можно нагрузить сайт тем же ApacheBenchmark. В противном случае вам потребуется нечто вроде DDOS-сервиса, который позволяет обратиться к сайту сразу с множества хостов.

  Ответить  
 
 автор: добряк   (25.09.2012 в 12:04)   письмо автору
 
   для: cheops   (25.09.2012 в 08:22)
 

Наверное правильно сказать, что я пытаюсь найти прозрачную методику или методологию.
Например понятно, что если человек не понимает, как измеряется вес, мощность, скорость, цена...,то для него понятия голые и бессмысленные, он на них смотрит как баран на новые ворота.
Или человек не способен абстрагировать понятия напряжения, тока, момента силы, ускорения, следовательно он не сможет познать, что означают цифры 220 вольт, кроме того, что оно, электричество, может его убить. На этом знании уровня дикаря, процесс очеловечивания у него закончился.
Вот и я, не понимаю, как ApacheBenchmark измеряет и результат измерения для меня просто цифры. Честно, я вообще не знаю, что это такое и где почитать не инструкцию замера а методику лежащую в основе измерения.

Вот тут http://www.alexfill-site.ru/testirovanie_sajta.htm как бы концепция есть, а метод и способы не раскрыты
Внизу и справа пояснение:
Статистика
Пользу тестирования веб-сайтов доказывают примеры зарубежных компаний, которые с помощью тестирования увеличивали доходы на сотни тысяч долларов.
Так, специалисты одного крупного кадрового агентства после проведения тестирования своего корпоративного сайта и его оптимизации за месяц увеличили его конверсию на 80%.

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

В первоначале, необходимо выловить среднее время и максимальное время работы Apache и служебных процессов. Среднее и максимальное время работы скриптов мне известны практически, а Apache и служебные процессы мне не известны, но они для меня и представляют главную цель
Ценность представляет тут только кинематика процесса, т.е. чистая математическая идеализация реальности. Считать надежность и все такое стабильными и неизменными.
На входе простая модель, потом её можно усложнять и дополнять создавая свою реальность
Если учитывать только Apache, то к времени работы скриптов надставляется время работы Apache и служебных процессов. Для начала MySQL и почту не учитываем, только Apache и служебные процессы. Допустим скрипт выполняется 0.1 сек Apache 0.1 сек и все оставшиеся процессы 0.1 сек. Гипотетически можно использовать для моделирования теорию массового обслуживания. Для начало возьмем простой поток обслуживания системы, когда поступают запросы с равным промежутком времени.
Если запросы поступят через 0.3 сек, то система будет работать нормально и очередь запросов не будет образовываться. Так это или не так?
Эта простая модель показывает, что у нас может за минуту поступить 60/0.3 запроса, без образования очереди.
Если рассуждения верны, то как организовать такой тест(контролируемы и наблюдаемый эксперимент), что бы выловить среднее время, максимальное время запросов для работы Apache и служебных процессов.

  Ответить  
 
 автор: cheops   (26.09.2012 в 18:09)   письмо автору
 
   для: добряк   (25.09.2012 в 12:04)
 

>Вот и я, не понимаю, как ApacheBenchmark измеряет и результат измерения для меня просто
>цифры. Честно, я вообще не знаю, что это такое и где почитать не инструкцию замера а методику
>лежащую в основе измерения.
У вас локально сайт развернут (понятно, что у вас интересует настоящий сервер, но можно начать с локальной машины)? Найдите Apache, и папку bin, в командной строке выполните
ab.exe -c 1000 -n 10 http://localhost/
Команда выполнит 1000 запросов, отправляя по 10 запросов одновременно. Выдаст сколько запросов было в секунду, сколько времени было потрачено в среднем на запрос, сколько данных было передано, а главное, как увеличивается среднее время время запроса в милисекундах по мере обработки запросов
  50%    250
  66%    281
  75%    297
  80%    313
  90%    391
  95%    594
  98%    875
  99%   1172
 100%   1547 (longest request)

Т.е. сервер при такой нагрузке начинает тратить все больше и больше времени на обработку запросов.

>Если запросы поступят через 0.3 сек, то система будет работать нормально и очередь
>запросов не будет образовываться. Так это или не так?
Да, так, но очередь есть всегда, так как запросы в принципе ставятся в очередь, при достижении критического размера очереди - запросы отбрасываются - задача администратора подобрать подходящие значения (чтобы сервер не положить и максимально-много запросов обработать).

PS Я постараюсь ответить более подробно на ваш вопрос, возможно статьей.

  Ответить  
 
 автор: добряк   (27.09.2012 в 10:46)   письмо автору
 
   для: cheops   (26.09.2012 в 18:09)
 

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

  Ответить  
 
 автор: добряк   (30.09.2012 в 14:20)   письмо автору
 
   для: cheops   (26.09.2012 в 18:09)
 

>Да, так, но очередь есть всегда, так как запросы в принципе ставятся в очередь, при достижении критического размера очереди - запросы отбрасываются - задача администратора подобрать подходящие значения (чтобы сервер не положить и максимально-много запросов обработать).

А можно ли как то пользователю хостинга узнать этот критический размер очереди?
Каков он может быть и в каких единицах оценивается?

  Ответить  
 
 автор: cheops   (30.09.2012 в 20:46)   письмо автору
 
   для: добряк   (30.09.2012 в 14:20)
 

>А можно ли как то пользователю хостинга узнать этот критический размер очереди?
Можно, но на это нужна добрая воля администраторов.
>Каков он может быть и в каких единицах оценивается?
Их много разных, как правило измеряется в количествах запросов и в мегабайтах/килобайтах.

  Ответить  
 
 автор: добряк   (01.10.2012 в 03:09)   письмо автору
5.4 Кб
 
   для: cheops   (30.09.2012 в 20:46)
 

Получается что ничего не получается
И ни кто не в силах обойти это.

Единственно что можно, так это сравнивать характеристики с какими то эталонами.
Я картинку загрузил, посмотреть можно. У меня 7000 просмотров и 3000 посетителей в сутки.
Вообщем, если сравнивать нас(сайты), то очень похожи.

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

  Ответить  
 
 автор: добряк   (30.09.2012 в 14:21)   письмо автору
 
   для: cheops   (26.09.2012 в 18:09)
 

>У вас локально сайт развернут (понятно, что вас интересует настоящий сервер, но можно начать с локальной машины)?
ab.exe -c 1000 -n 10 http://localhost/
Cannot use concurrency level greater than total number of requests


А как с настоящим быть?

  Ответить  
 
 автор: Sfinks   (30.09.2012 в 15:00)   письмо автору
 
   для: добряк   (30.09.2012 в 14:21)
 

ab.exe -c 10 -n 1000 http://localhost/

  Ответить  
 
 автор: cheops   (30.09.2012 в 20:45)   письмо автору
 
   для: Sfinks   (30.09.2012 в 15:00)
 

Да, я параметры попутал.

  Ответить  
 
 автор: Jaroslav   (12.09.2012 в 03:48)   письмо автору
 
   для: добряк   (10.09.2012 в 11:09)
 

Товарищи, не забивайте голову раньше времени вопросами производительности.
По мере увеличения нагрузок всегда надо будет заниматься вопросами оптимизации.
Спрогнозировать невозможно. Если не хотите заниматься оптимизацией - надо будет покупать более мощное железо.... А потом всё равно заниматься оптимизацией :)

  Ответить  
 
 автор: cheops   (12.09.2012 в 15:25)   письмо автору
 
   для: Jaroslav   (12.09.2012 в 03:48)
 

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

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования