Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Операционные системы > Администрирование dedicated серверов, VPS/VDS, shared хостингов, IaaS, PaaS.
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.02.2015, 01:10   #11
Streletz
Старожил
 
Регистрация: 03.01.2014
Сообщений: 2,870
По умолчанию

Пожалуйста.
Только, повторюсь, Ваши расчёты не учитывают множество факторов.
На основании чего определена пиковая нагрузка 500 человек в секунду? На основании чего определён примерный размер файла скрипта и количество файлов скриптов? И т.д....
Из практики. Ни один более менее серьёзный проект не обходится 2мя скриптами. Хотя бы из соображений сопровождения проекта и той же производительности.
Цитата:
Сообщение от 1474568
500 человек в секунду. Выше другой человек мне говорит обратное(что нагрузка будет весьма велика, его доводы убедительны).
Один из моих намёков был понят практически правильно. Осталось только посчитать нагрузку в день.
В пределе, 500 человек в секунду это примерно 43 200 000 человек в день.
Для сравнения:
  • Дневная аудитория "ВКонтакте" порядка 24 900 000 человек в день (данные отсюда).
  • Дневная аудитория Яндекса в январе 2015 года порядка 30 000 000 человек в день (можно посмотреть на официальной странице на вкладке "Средняя дневная аудитория").
Цитата:
Сообщение от Illusiony Посмотреть сообщение
Я просто вообще не представляю есть ли такие ресурсы по трафику, вот по этому с начало начал с этого.
Для обеспечения трафика и производительности интернет ресурсы на подобие вышеназванных строят датацентры - целые многоэтажные здания наполненные серверами + дополнительное оборудование + квалифицированный обслуживающий персонал и т.д.
Это одна из причин почему я советую Вам вначале провести более комплексную оценку возможной нагрузки и, при необходимости, разработать прототип и протестировать его.
Дело в том, что, когда исходные данные берутся исходя из субъективных предположений, результаты обычно получаются либо заниженными (чаще всего бывает именно так) либо неоправданно завышенными (как, скорее всего, и есть в данном случае). Даже если речь идёт о новом "ВКонтакте" стоит учесть, что проект был запущен в 2006 году. То есть к тому, что есть сейчас он шёл годы. Москва не сразу строилась.
В общем, делайте выводы сами...
Streletz вне форума Ответить с цитированием
Старый 27.02.2015, 08:44   #12
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Цитата:
В пределе, 500 человек в секунду это примерно 43 200 000 человек в день.
Да у него вроде предполагается, что не весь день такая, а только в определенные моменты все идут голосовать.
http://www.programmersforum.ru/showp...5&postcount=19

Но 500 в секунду что-то все равно много.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 27.02.2015, 09:21   #13
Streletz
Старожил
 
Регистрация: 03.01.2014
Сообщений: 2,870
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
Да у него вроде предполагается, что не весь день такая, а только в определенные моменты все идут голосовать.
http://www.programmersforum.ru/showp...5&postcount=19
Но 500 в секунду что-то все равно много.
Я, к сожалению, не в курсе, что за проект у ТС. Поэтому и расчёт производил "по максимуму".
Однако, 500 человек в секунду, даже в "разовом варианте", это очень большая нагрузка.
Не уверен, что та конфигурация сервера, что хочет ТС, с ней справится.
Streletz вне форума Ответить с цитированием
Старый 27.02.2015, 09:50   #14
lomastr_
Форумчанин
 
Регистрация: 16.01.2015
Сообщений: 672
По умолчанию

достигнет он ее на пенсии
lomastr_ вне форума Ответить с цитированием
Старый 27.02.2015, 19:22   #15
Illusiony
Форумчанин
 
Регистрация: 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.
Illusiony вне форума Ответить с цитированием
Старый 27.02.2015, 19:22   #16
Illusiony
Форумчанин
 
Регистрация: 17.02.2014
Сообщений: 881
По умолчанию

Также новый вопрос как потребляется оперативка при исполнении php скрипта?
Допустим скрипт сам по себе весит 20 кб, подгружается сам скрипт + память для обслуживания скрипта зависящий сугубо от выполняемого кода.
Интересует что происходит когда пользователи запукают множество скриптов, они обрабатываются параллельно и пропорционально увеличивается количество затрачиваемой оперативы или последовательно с высвобождением памяти и потреблением следующим скриптом? Наверно первый вариант. А оценить потребляемую память только на конкретных тестах и никак иначе?
К сожалению объективного теста сделать не получится.
Вместо ip нужно генерировать например цифру рандомно, лучше просто сделать счетчик для ip(имитацию нажатия голосующими на карту)чтобы mr_rand не загружал процессор.
Illusiony вне форума Ответить с цитированием
Старый 27.02.2015, 21:00   #17
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,150
По умолчанию

имхо .. .весь пост пустая трата времени
да не будет у вас мега посещаемости...... если б проект предусматривал такую нагрузку - тут бы никто таких вопросов не задавал... а делали б его грамотные в данном направлении люди
ADSoft вне форума Ответить с цитированием
Старый 27.02.2015, 21:54   #18
lomastr_
Форумчанин
 
Регистрация: 16.01.2015
Сообщений: 672
По умолчанию

так и упертый, простые слова слушать не хочет

500 это как до луны, а 5-10% это как до МКС (международная космическая станция), вам еще только до Эвереста мечтать можно
lomastr_ вне форума Ответить с цитированием
Старый 27.02.2015, 22:10   #19
Illusiony
Форумчанин
 
Регистрация: 17.02.2014
Сообщений: 881
По умолчанию

Цитата:
Сообщение от lomastr_ Посмотреть сообщение
так и упертый, простые слова слушать не хочет

500 это как до луны, а 5-10% это как до МКС (международная космическая станция), вам еще только до Эвереста мечтать можно
Ок, а кроме этих слов есть что сказать на другие затронутые вопросы?

Ваша позиция ясна и я согласен, можете больше не повторять.


Теперь поиски путей оптимизации без привязки к какой то нагрузке.
1) Применить механизм сессии php с записью в куки номера хода и ника стримера. При каждом новом ходу когда проголосовал записывается номер текущего хода, если нажал еще раз голосовать в том же ходу то проверяется на= текущему ходу и не дает засчитать голос.
Это позволяет отказаться от таблицы2 вообще, что уменьшит количество запросов к mysql с 5 до 3х для одного голосующего.

2) Где разместить рисунки, чтобы сделать на них прямые ссылки в которых входит имена рисунков и высокими показателями скорости доступа и трафика?
-google диск
-mail диск
-yandex диск

Последний раз редактировалось Illusiony; 28.02.2015 в 02:03.
Illusiony вне форума Ответить с цитированием
Старый 28.02.2015, 03:29   #20
Streletz
Старожил
 
Регистрация: 03.01.2014
Сообщений: 2,870
По умолчанию

Цитата:
Сообщение от Illusiony Посмотреть сообщение
500 человек в секунду это предпологаемая пиковая ( длительностью до нескольких минут) нагрузка. Суммарная же нагрузка за сутки будет значительно меньше возможно средняя будет составлять около 5-10 % от максимальной
Всё равно очень много. Перечитайте мой пост#11 и поделите приведённые мной цифры на 10 (посещаемость при нагрузке 10%) и на 20 (посещаемость при нагрузке 5%). Простите, но просто создаётся впечатление, что Вы совершенно не представляете о чём говорите.
Цитата:
Сообщение от Illusiony Посмотреть сообщение
У нескольких популярных русскоязычных стримеров онлайн на стриме 1-3к человек.
Онлайн понятие относительное. Но, в любом случае, ключевое слово - "популярных". Для того чтобы выйти на такой уровень посещаемости проект необходимо как следует раскрутить.
Кроме того, повторюсь, за серьёзными проектами стоят серьёзные расчёты и ресурсы. Если просто так взять какую-либо статистику без попыток даже поверхностного анализа, то это тоже самое, что взять данные "из воздуха".
Цитата:
Сообщение от Illusiony Посмотреть сообщение
А оценить потребляемую память только на конкретных тестах и никак иначе?
Естественно. Только нужно правильно ставить тесты. Подобный "тест"
Цитата:
Сообщение от Illusiony Посмотреть сообщение
лучше просто сделать счетчик для ip(имитацию нажатия голосующими на карту)чтобы mr_rand не загружал процессор.
может показать "неограниченную" производительность даже на компьютере уровня Pentium I с Windows 95.
Цитата:
Сообщение от Illusiony Посмотреть сообщение
Теперь поиски путей оптимизации без привязки к какой то нагрузке.
Такой подход не позволяет оценить эффект от "оптимизации" и его наличие как такового вообще. При том что изначальная постановка задачи обеспечить работу ресурса при конкретной нагрузке до 500 человек в секунду, оценить степень её решения "без привязки к нагрузке" невозможно.
В таком случае изыскания и разговоры связанные с производительностью просто не имеют смысла.
Streletz вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
расчет факториала. Дайте пож листинг программы ринат Д Общие вопросы 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