Нажатие ИЛИ Опрос - PullRequest
       1

Нажатие ИЛИ Опрос

4 голосов
/ 23 марта 2011

У меня есть клиент SL и служба WCF. Клиент опрашивает WCF каждые 4 секунды, и у меня есть почти 100 клиентов одновременно.

Веб-сервер является сервером начального уровня с 512 МБ ОЗУ.

Я хочу знать, если опрос зависит от конфигурации сервера, если я увеличу конфигурацию сервера, будет ли опрос для клиентов работать лучше?

И, во-вторых, будет ли пуш (дуплекс) лучше, чем опрос? Я получил смешанный ответ от блогов, которые я читал.

Кроме того, каковы оптимальные методы оптимизации опроса для более быстрого ответа на клиента? Моему приложению нужны данные в реальном времени

Спасибо

Ответы [ 2 ]

3 голосов
/ 24 марта 2011

Полагаю, у вас есть какое-то состояние гонки , которое появляется только с большим количеством клиентов.Какие режимы параллелизма и создания экземпляров вы используете для службы WCF?(См. MSDN: сеансы WCF, экземпляры и параллелизм в http://msdn.microsoft.com/en-us/library/ms731193.aspx)

. Если вы «теряете» ответы, первое, что я бы сделал, - это регистрация или отслеживание того, что происходит наНапример, когда клиент «не видит» ответ, получает ли сервер запрос? (Если так, что с ним происходит, и т. д. и т. п.)

Я бы тоже следил использование памяти - вы не говорите, какую операционную систему вы используете, но 512 МБ в наши дни ужасно скудные. Если вы когда-нибудь попадете в ситуацию подкачки на диск, она явно не будетбудьте добры.

Наконец, если предположить, что ваша служба привязана к процессору (то есть не требует больших вызовов базы данных и файловой системы), лучший способ повысить пропускную способность - это, вероятно, уменьшить сообщениеполезная нагрузка (размер провода), используйте наиболее производительные привязки (т. е. если клиент является .NET и вы им управляете, привязка NetTcp намного быстрее, чем HTTP), и, конечно, многопоточность вашего сервиса. ИМХО, с информацией, которую вы предоставили- и все остальноеal-polling, вероятно, хорошо, а нажатие может только усложнить ситуацию.Если это важно, вы действительно хотите привнести настоящий инженерный подход к проблеме и выявить / измерить свои узкие места.

Надеюсь, это поможет!

1 голос
/ 24 марта 2011

«Push-уведомления» обычно имеют более низкую нагрузку на сеть, так как трафик не отправляется, когда нечего сообщать.Но «вытягивающие» уведомления часто имеют меньшие накладные расходы приложения, так как вам не нужно поддерживать состояние, когда клиент просто ожидает ожидания уведомления.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...