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