500 Socket-клиентов пытаются отправить данные на мой сокет-сервер.Нужна помощь в обращении - PullRequest
0 голосов
/ 24 декабря 2011

Мне необходимо создать высокопроизводительное приложение, в котором я буду получать 500 сообщений сокетов от моих клиентов сокетов одновременно.Основываясь на моих журналах, я увидел, что моя двухъядерная система обрабатывает 80 сообщений одновременно.

Я использую Async сокеты (.BeginRecieve), и я установил NoDelay в true

Из журналов моих клиентов и моего сервера я мог видеть, что сообщение, которое я написал от моего клиента, читаетсямоим сервером через 3-4 сек.

Мое время обслуживания моей заявки должно быть намного меньше.

Ответы [ 3 ]

0 голосов
/ 24 декабря 2011

Во-первых, вы должны опубликовать свой текущий код, чтобы можно было выявить любые возможные ошибки.

Во-вторых, если вы работаете в .NET 3.5, вы можете взглянуть на улучшения SocketAsyncEventArgs .

0 голосов
/ 24 декабря 2011

Когда вы делаете socket.listen , каков ваш бэклог? Я не могу говорить с .net 4.0, но с 2.0 я столкнулся с проблемой, когда после заполнения вашего журнала невыполненных заданий (слишком много попыток подключения слишком быстро), некоторые из сокетов получат TCP-подтверждение и затем TCP-сброс. Клиент тогда может или не может попытаться повторно соединиться позже позже. Это вызывает узкое место соединения, а не пропускную способность данных или узкое место обработки.

0 голосов
/ 24 декабря 2011

Начните смотреть на использование ресурсов:

  • Загрузка ЦП - как для всей системы, так и для вашего конкретного процесса.
  • Использование памяти - то же, что и выше.
  • Сетевая статистика.

Как только вы определите, где находится узкое место, и сообществу, и вам легче будет подумать о том, на чем следует сосредоточиться в дальнейшем при повышении производительности.

Также может потребоваться проверка вашего кода - но это может быть более подходящим для https://codereview.stackexchange.com/.

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