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

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

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.03.2016, 14:26   #1
Illusiony
Форумчанин
 
Регистрация: 17.02.2014
Сообщений: 881
По умолчанию Объясните преимущества websocket на моем конкретном примере.

В данный момент у меня работает такое:
-на сервер присылаются рисунки периодически(с заменой предыдущих) с частотой ~15-20 секунд.
-на страничке html по таймеру раз в 15-18 секунд происходит загрузка этих рисунков
-на сервере также имеется информация о том наступила следующая итерация или нет( обновились ли рисунки)Т.е. по ajax сравнивается номер итерации рисунков на сервере с переменной в js, если не равно то загружаем новые рисунки если равно то ждем еще 2 секунды и повторяем такой же запрос пока не будет новая итерация( новые рисунки)
- допустим одновременно запущено 250 таких html страничек( пользователей)
-получается каждые 15-18 секунд просиходит 250 запросов к серверу и в случае если новая итерация произошла и появились новые рисунки то они загружаются каждой страничкой, т.е. получается что происходит 250*кол рисунков раз чтения диска сервера


1)Если это реализовывать через Websocket, то рисунки будут загружены 1 раз с сервера на 1 итерацию вместо 250 раз как в нынешней реализации?Т.е. это уменьшит нагрузку на дисковую подсистему или оперативку( если у меня рисунки на RAM диске? Уменьшит нагрузку на мой Nginx и соответственно уменьшит процессорную нагрузку?

2) сетевой трафик будет примерно одинаков?
Illusiony вне форума Ответить с цитированием
Старый 12.03.2016, 14:41   #2
Pavia
Лис
Старожил
 
Аватар для Pavia
 
Регистрация: 18.09.2015
Сообщений: 2,409
По умолчанию

Цитата:
2) сетевой трафик будет примерно одинаков?
Да

1) Если в RAM диске то нет. Если на HDD то уменьшит. Открытие файла на HDD считай 30 мс. На RAM порядка 1-30 мкс, т.е в 1000 раз меньше.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал .

Последний раз редактировалось Pavia; 12.03.2016 в 15:01.
Pavia вне форума Ответить с цитированием
Старый 12.03.2016, 15:48   #3
Illusiony
Форумчанин
 
Регистрация: 17.02.2014
Сообщений: 881
По умолчанию

Цитата:
Сообщение от Pavia Посмотреть сообщение
Да

1) Если в RAM диске то нет. Если на HDD то уменьшит. Открытие файла на HDD считай 30 мс. На RAM порядка 1-30 мкс, т.е в 1000 раз меньше.
Это ответ RAM и HDD, а использование websocket даст мне уменьшение нагрузки на hdd(RAM)?
Illusiony вне форума Ответить с цитированием
Старый 13.03.2016, 17:52   #4
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,158
По умолчанию

Логику поменять тогда будут. Отсеются ненужные запросы изменилось ли что-то там..... Грузится будут толко реальные изменения

А экономия будет по запросам. Тем что у вас каждые 2 сек.... статус проверять. 250 * 9 каждые 18 сек.. Не считая данных с изменением и загрузкой... Карооче нужно логику продумать без привязки к вебу и применить инструмент технологию нужную

Последний раз редактировалось ADSoft; 13.03.2016 в 17:57.
ADSoft вне форума Ответить с цитированием
Старый 13.03.2016, 18:56   #5
Illusiony
Форумчанин
 
Регистрация: 17.02.2014
Сообщений: 881
По умолчанию

Цитата:
Сообщение от ADSoft Посмотреть сообщение
Логику поменять тогда будут. Отсеются ненужные запросы изменилось ли что-то там..... Грузится будут толко реальные изменения

А экономия будет по запросам. Тем что у вас каждые 2 сек.... статус проверять. 250 * 9 каждые 18 сек.. Не считая данных с изменением и загрузкой... Карооче нужно логику продумать без привязки к вебу и применить инструмент технологию нужную

Ну так я все не могу ответа понять, вместо 250 запросов на одну итерацию от каждой странички через websocket можно сделать массовую рассылку и в итоге картинки будут загружены 1 раз только ( с HDD, SSD, RAM) и разосланы всем 250 страничкам? Т.е. будет как бы один запрос от сервера к всем страничкам сразу, а не 250 от страничек к серверу как в данный момент?

Ну и ненужно будет дополнительные запросы через 2 секунды если новых картинок не появилось так как инициатор будет сервер и будет отсылать, соответственно когда картинки изменились( настала новая итерация)

И еще вопрос: какой websocket сервер посоветуете при следующих пожеланиях:
-максимально простота работы
-без ручной слежки за памятью
-чтобы работал на слабых серверах ( 1 ядро проца, 512(1024) оперативы) под Ubuntu 14.04

Пока что думаю о phpDaemon, там вроде за памятью следит сама, но документации мало и не так просто реализуется
Есть ratchet, вроде все по проще, но за памятью походу самому нужно следить.

Собственно от WebSocket мне нужна только массовая рассылка рисунков и данных инициированных сервером.

Последний раз редактировалось Illusiony; 13.03.2016 в 19:31.
Illusiony вне форума Ответить с цитированием
Старый 13.03.2016, 19:33   #6
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,158
По умолчанию

Ratchet неплохая штука. Остальное смотрите сами
ADSoft вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Можно ли в один запрос объединить вставку в MySql в моем примере Illusiony PHP 12 23.01.2015 20:24
Объясните как? на примере my lands Renndy15 Gamedev - cоздание игр: Unity, OpenGL, DirectX 7 20.03.2013 11:28
Запрос на добавление без повторов на конкретном примере Inflame to me!! Microsoft Office Access 1 10.05.2012 12:46
Как сделать так, чтобы в моем браузере новое окно страницы открывалось в моем-же браузере??? Somilya Помощь студентам 6 22.12.2009 21:56
Указатели. Объясните пожалуйста на примере scanline. TwiX Общие вопросы Delphi 3 19.10.2009 12:24