|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
27.02.2015, 01:10 | #11 | ||
Старожил
Регистрация: 03.01.2014
Сообщений: 2,870
|
Пожалуйста.
Только, повторюсь, Ваши расчёты не учитывают множество факторов. На основании чего определена пиковая нагрузка 500 человек в секунду? На основании чего определён примерный размер файла скрипта и количество файлов скриптов? И т.д.... Из практики. Ни один более менее серьёзный проект не обходится 2мя скриптами. Хотя бы из соображений сопровождения проекта и той же производительности. Цитата:
В пределе, 500 человек в секунду это примерно 43 200 000 человек в день. Для сравнения:
Цитата:
Это одна из причин почему я советую Вам вначале провести более комплексную оценку возможной нагрузки и, при необходимости, разработать прототип и протестировать его. Дело в том, что, когда исходные данные берутся исходя из субъективных предположений, результаты обычно получаются либо заниженными (чаще всего бывает именно так) либо неоправданно завышенными (как, скорее всего, и есть в данном случае). Даже если речь идёт о новом "ВКонтакте" стоит учесть, что проект был запущен в 2006 году. То есть к тому, что есть сейчас он шёл годы. Москва не сразу строилась. В общем, делайте выводы сами... |
||
27.02.2015, 08:44 | #12 | |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
Цитата:
http://www.programmersforum.ru/showp...5&postcount=19 Но 500 в секунду что-то все равно много.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
|
27.02.2015, 09:21 | #13 | |
Старожил
Регистрация: 03.01.2014
Сообщений: 2,870
|
Цитата:
Однако, 500 человек в секунду, даже в "разовом варианте", это очень большая нагрузка. Не уверен, что та конфигурация сервера, что хочет ТС, с ней справится. |
|
27.02.2015, 09:50 | #14 |
Форумчанин
Регистрация: 16.01.2015
Сообщений: 672
|
достигнет он ее на пенсии
|
27.02.2015, 19:22 | #15 |
Форумчанин
Регистрация: 17.02.2014
Сообщений: 881
|
500 человек в секунду это предпологаемая пиковая ( длительностью до нескольких минут) нагрузка. Суммарная же нагрузка за сутки будет значительно меньше возможно средняя будет составлять около 5-10 % от максимальной, а то и значительно меньше.
Постараюсь описать подробнее что я хочу сделать. Для популярной онлайновой карточной игры-Hearthstone сделать автопик. Автопик для этой игры- в режиме арены выбор карт стримеру производят зрители путем голосования из 3х карт( на отдельном сайте) выбирается одна. Так повторяется 30 раз на одну арену( на 1 игру). Для реализации этого сделал на delphi 7 програмку, стример запускает ее предварительно зарегистрировавшись на сайте. Програмка определяет какие карты в данный момент имеются для выбора( реализовано простейшее распознавание образов). Через определенные промежутки времени, допустим 15-20 секунд отправляет запрос на сервер о id выбираемых карт( 3 шт) на следующем цикле опрашивает сервер за кого больше проголосовали и нажимает выбор карты. Так как когда нажали карту до появления следующих в игре присутствует анимация мешающая распознаванию образов я ввел задержку3-5 секунд на распознование. На тестах в 150 изображений из 500+ имеющихся 100% определение. Голосующие приходят по простой ссылке без авторизации видят варианты выбора( 3 картинки скрипт1.php) жмет , по ссылке переходит на скрипт2.php который проверяет активен ли автопик данного стримера ( таблица1) есть ли ip голосующего в данный момент в таблице2, если нету засчитывает голос и записывает ip в таблицу2.Если голосующих попытается второй раз за 1 ход проголосовать то увидим в таблице2 такой ip и голос не будет засчитан. скрипт1.php и скрипт2.php получают еще данные о том сколько секунд осталось до конца хода из таблицы1 и по ссылке оба переходят на скрипт1.php. Так же показывается номер хода. Я понимаю что с одного ip могут быть несколько человек, но я это допускаю как побочный эффект. скрипт1.php производит 1 запрос в таблицу 1 select скрипт2.php производит 4 запроса: 1) 1 запрос в таблицу 1 select 2) 1 запрос в таблицу 2 select 3) 1 запрос в таблицу 1 apdate 4)1 запрос в таблицу 2 insert ( в случае если ip нету в таблице 2) Проектик не предполагает коммерческой выгоды ( кроме, может в будущем рекламку повесить или просто может быть ИЦ сайта повышать будет, хотя врятли потому что php и под поисковики не оптимизировано). Откуда я взял цифры по нагрузке? У нескольких популярных русскоязычных стримеров онлайн на стриме 1-3к человек. Вот если 2-3 стримера одновременно запустят автопик то это будет до 5к человек. Голосование производится с учетом задержки 14 секунд ( 30 раз на 1 игру). Для увеличения неравномерности во времени нажатия голосующих, чтобы все в 1 секунду не проголосовали ввел дополнителную рандомную задержку в 0-3 секунд ( просто обновление нового хода для голосующих запаздывает на это время). Я понимаю что это лишь частично уменьшит пиковую нагрузку, потому что все равно думаю пики будут значительные. и вот если 5000/10 сек получаем до 500 в секунду. И они будут за 10-20 секунд запускать скрит1.php ( он сам по таймеру перезагружается для отображения номера нового хода и новых рисунков карт) и скрипт2.php(обрабатывает само нажатие=голосование) Я не реализовывал механизм сессии на куках, может быть и стоило ввиду того что врятли комуто захочется мухлевать с голосованием( выгоды никакой нету это делать только если посмеяться. Могут запустить несколько браузеров и получить несколько голосов с 1го ПК) Тогда мне не нужна таблица2 и это, возможно разгрузит сервер . Возможно стоит реализовать ajax, частично разгрузит ресурс хранения картинок , а чего то большего врятли ввиду и так небольшого размера скриптов=20*2 кбайт. Так, как уже видно что нагрузка может быть весьма велика придется ограничивать нагрузку. Например ограничением одновременных автопиков ( самый простой и не оптимальный вариант) Другой вариант подсчитывать максимальное количество записей в таблице 2= количеству голосующих и не даем запустить новые автопики если превысило "критическую уставку". Извините, описание получилось сумбурным и беспорядочным. Но я еще подробностей не описывал. Меня все еще интересует предыдущий вопрос по поводу: "Для уменьшения нагрузки и трафика на сервер планирую вынести картинки на отдельный ресурс( какой не знаю хочу у вас спросить) картинок всего 500-600 при минимальном качестве суммарный размер составит 10 мбайт. Эти картинки при пиковой нагрузке создадут трафик 500*(60кбайт)=30мбайт/c= 240мбит/c ( может длиться до десятков секунд- минуты). А месячный трафик может достичь 3 ТБ. Где можно разместить такие ресурсы? - объем маленький но скорость доступа и трафик высокий. Google диск с такой задачей не справится? (не нашел ограничений на скорость и трафик, только на объем ). Степень надежности хранения данных не имеет значения." Последний раз редактировалось Illusiony; 27.02.2015 в 19:34. |
27.02.2015, 19:22 | #16 |
Форумчанин
Регистрация: 17.02.2014
Сообщений: 881
|
Также новый вопрос как потребляется оперативка при исполнении php скрипта?
Допустим скрипт сам по себе весит 20 кб, подгружается сам скрипт + память для обслуживания скрипта зависящий сугубо от выполняемого кода. Интересует что происходит когда пользователи запукают множество скриптов, они обрабатываются параллельно и пропорционально увеличивается количество затрачиваемой оперативы или последовательно с высвобождением памяти и потреблением следующим скриптом? Наверно первый вариант. А оценить потребляемую память только на конкретных тестах и никак иначе? К сожалению объективного теста сделать не получится. Вместо ip нужно генерировать например цифру рандомно, лучше просто сделать счетчик для ip(имитацию нажатия голосующими на карту)чтобы mr_rand не загружал процессор. |
27.02.2015, 21:00 | #17 |
Старожил
Регистрация: 25.02.2007
Сообщений: 4,179
|
имхо .. .весь пост пустая трата времени
да не будет у вас мега посещаемости...... если б проект предусматривал такую нагрузку - тут бы никто таких вопросов не задавал... а делали б его грамотные в данном направлении люди |
27.02.2015, 21:54 | #18 |
Форумчанин
Регистрация: 16.01.2015
Сообщений: 672
|
так и упертый, простые слова слушать не хочет
500 это как до луны, а 5-10% это как до МКС (международная космическая станция), вам еще только до Эвереста мечтать можно |
27.02.2015, 22:10 | #19 | |
Форумчанин
Регистрация: 17.02.2014
Сообщений: 881
|
Цитата:
Ваша позиция ясна и я согласен, можете больше не повторять. Теперь поиски путей оптимизации без привязки к какой то нагрузке. 1) Применить механизм сессии php с записью в куки номера хода и ника стримера. При каждом новом ходу когда проголосовал записывается номер текущего хода, если нажал еще раз голосовать в том же ходу то проверяется на= текущему ходу и не дает засчитать голос. Это позволяет отказаться от таблицы2 вообще, что уменьшит количество запросов к mysql с 5 до 3х для одного голосующего. 2) Где разместить рисунки, чтобы сделать на них прямые ссылки в которых входит имена рисунков и высокими показателями скорости доступа и трафика? -google диск -mail диск -yandex диск Последний раз редактировалось Illusiony; 28.02.2015 в 02:03. |
|
28.02.2015, 03:29 | #20 | ||||
Старожил
Регистрация: 03.01.2014
Сообщений: 2,870
|
Цитата:
Цитата:
Кроме того, повторюсь, за серьёзными проектами стоят серьёзные расчёты и ресурсы. Если просто так взять какую-либо статистику без попыток даже поверхностного анализа, то это тоже самое, что взять данные "из воздуха". Цитата:
Цитата:
Такой подход не позволяет оценить эффект от "оптимизации" и его наличие как такового вообще. При том что изначальная постановка задачи обеспечить работу ресурса при конкретной нагрузке до 500 человек в секунду, оценить степень её решения "без привязки к нагрузке" невозможно. В таком случае изыскания и разговоры связанные с производительностью просто не имеют смысла. |
||||
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
расчет факториала. Дайте пож листинг программы | ринат Д | Общие вопросы C/C++ | 1 | 14.12.2013 13:41 |
Что ни так с моим браузером? | qwizz | Общие вопросы Delphi | 7 | 25.03.2013 10:28 |
что с моим компом? | Leonidi | Помощь студентам | 12 | 16.05.2012 08:08 |
Поясните задачу... Дайте советы по её реализации | SWAT92Shtorm | Помощь студентам | 10 | 19.06.2009 19:27 |
Дайте советы начинающему! | RomT24 | Общие вопросы C/C++ | 7 | 24.05.2009 13:43 |