Максимальное количество исходящих сокетов в .NET / Windows Server
У меня немного необычная ситуация, когда ямне нужно поддерживать TCP-соединения CLIENT с другим сервером для тысяч мобильных пользователей на моих серверах (в основном, мобильные устройства подключаются к моему серверу среднего уровня, когда они в состоянии, что поддерживает более стабильное соединение со сторонним сервером для мобильных устройств) ).
В любом случае, яМы разработали мое серверное приложение, используя Async Sockets (упакованные в SslStream), и сейчас на нем запущено 1000 клиентских сессий. Я'Я очень доволен результатами, насколько яЯ вижу, что среднее использование ЦП на одноядерном процессоре составляет около 0-10%, а со временем используется около 60 МБ ОЗУ.
У меня вопрос, как мне увеличить это, чтобы я мог достичь 100 000 или 200 000 или более клиентских сессий, запущенных на моем сервере? Опять же, это немного нетрадиционно, так как мой сервер недействительно действует как сервер, так как яЯ обеспокоен исходящими подключениями, а не входящими.
Я знаю что тамs параметр реестра MaxUserPort, который необходимо изменить, чтобы выйти за пределы значения по умолчанию, которое, по-видимому, составляет 5000. Однако, похоже, существует еще один жесткий предел в 65535, и я 'Мне не очень понятно, где находится этот предел. Это ограничение на сетевой интерфейс? Это глобальный лимит Windows? Это лимит на процесс?
Если это ограничение на сетевой интерфейс, могу ли я добавить несколько сетевых интерфейсов и привязать сокеты клиентских сеансов к каждому интерфейсу (например: 65 КБ на интерфейсе 1, 65 КБ на интерфейсе 2 и т. Д.)? I '
Я также не слишком уверен, что, если какие-либо параметры сокета или свойства я должен установить, чтобы помочь вещам. Прямо сейчас яя не использую никаких опций сокетов.
Буду очень признателен за любые мысли по этому вопросу, поскольку получить четкие советы по этому вопросу было довольно сложно. Спасибо!