Максимальное количество TCP / IP-соединений в Windows Server 2008 - PullRequest
15 голосов
/ 28 октября 2009

У меня есть служба .Net, которая прослушивает один порт по протоколу TCP. Клиенты подключаются, а затем передают данные в течение некоторого времени (от нескольких минут до нескольких часов).

Есть ли ограничения на количество подключений на сервере Windows 2008? Я никого не ударил, так как сейчас там до 50 пользователей. План состоит в том, чтобы иметь тысячи пользователей, поэтому я хотел бы знать, будут ли проблемы в будущем.

Edit:
Как ответил Cloud, кажется, что в некоторых версиях Windows Server 2008 есть некоторые ограничения. Есть ли какие-либо ссылки на эти ограничения? Я пробовал Google, но он возвращает статьи по лимиту на полусвязанные соединения TCP.

Ответы [ 2 ]

19 голосов
/ 28 октября 2009

Сколько тысяч пользователей?

В прошлом я проводил несколько тестов соединений клиент / сервер TCP / IP на Windows 2003 Server и управлял более чем 70 000 подключений на виртуальной машине с достаточно низкой спецификацией. (подробности см. здесь: http://www.lenholgate.com/blog/2005/10/the-64000-connection-question.html). Я был бы очень удивлен, если бы Windows 2008 Server был ограничен менее чем 2003 Server и, IMHO, публикация, на которую ссылается Cloud, слишком расплывчата, чтобы ее можно было использовать. часто всплывает, я пишу о том, почему я не думаю, что это то, о чем вам стоит беспокоиться: http://www.serverframework.com/asynchronousevents/2010/12/one-million-tcp-connections.html.

Лично я бы проверил это и увидел. Даже если в версии Windows 2008 Server, которую вы намереваетесь использовать, нет предельных ограничений, все равно будут практические ограничения, основанные на памяти, скорости процессора и дизайне сервера.

Если вы хотите выполнить несколько «общих» тестов, вы можете использовать мой тест многопользовательского соединения и связанный с ним эхо-сервер. Подробно здесь: http://www.lenholgate.com/blog/2005/11/windows-tcpip-server-performance.html и здесь: http://www.lenholgate.com/blog/2005/11/simple-echo-servers.html. Это то, что я использовал для запуска своих собственных тестов для моей серверной инфраструктуры, и это то, что позволило мне создать 70 000 активных соединений на виртуальной машине Windows 2003 Server с 760 МБ памяти.

Отредактировано, чтобы добавить детали из комментария ниже ...

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

  1. Используйте бесплатные инструменты, которые я связываю и доказать себе, что ты может создать разумное количество подключения к вашей целевой ОС (остерегайтесь ограничений Windows на динамические порты, которые могут вызвать ваши сбой подключения клиента, поиск для MAX_USER_PORT).

  2. во время разработки регулярно тестируйте свой реальный сервер тестами клиенты, которые могут создавать соединения и на самом деле «сделать что-то» на сервер. Это поможет предотвратить вы строите сервер таким образом, чтобы ограничить его масштабируемость. Смотрите здесь: http://www.serverframework.com/asynchronousevents/2010/10/how-to-support-10000-or-more-concurrent-tcp-connections-part-2-perf-tests-from-day-0.html

3 голосов
/ 28 октября 2009

Существует ограничение на число полуоткрытых соединений , но afaik не для активных соединений. Хотя, похоже, это зависит от типа сервера Windows 2008, по крайней мере, согласно этот сотрудник MSFT :

Это зависит от издания, Интернета и Основные издания имеют связь ограничения в то время как Стандарт, Предприятие и Центр обработки данных нет.

...