Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Microsoft Windows 7 (http://forum.oszone.net/forumdisplay.php?f=95)
-   -   Максимальное количество соединений (http://forum.oszone.net/showthread.php?t=279235)

new_bee 14-03-2014 13:13 2323509

Максимальное количество соединений
 
Здравствуйте. Я пишу с многопоточное приложение неблокирующих сокетах, каждый из потоков которого, отправляет и принимает данные. Это некий сервер, к которому одновременно коннектится разное количество клиентов. Так вот, проблема в том, что когда число подключений достигает скажем 200 или же 500, то 30% стабильно висят в таймауте и выходят из него только тогда, когда эти же 30% уже закончили передачу данных. Есть предположение, что ограничение есть где-то в настройках или же драйвере. Скажите, сколько подключений(практически, а не теоретически) может быть одновременно открыто в Windows? Почему при большом количестве подключений, страницы в браузере открываются как на Dial-up'e, хотя используется только 40-60% интернет канала?

Тех характеристики:
Windows 7 x64 build 7601 SP1
Сетевая карта RTL 8168C, драйвер 7.2.1127.2008
Интернет 100МБит/с

Dzirt2005 14-03-2014 14:45 2323567

new_bee, в Windows нет никаких ограничений на количество соединений (ну кроме количества портов 65535 - уже используемые системой и системными приложениями) и проблема ваша связана совсем не с этим. При этом не следует слова "нет никаких ограничений на количество соединений" читать как "любая программа может безболезненно открыть 20-30 тысяч соединений". Я стесняюсь спросить - вы когда пишете "число подключений достигает скажем 200 или же 500" это и означает "я запускаю 200 или же 500 потоков для обработки"?

new_bee 15-03-2014 00:49 2323714

Цитата:

Цитата Dzirt2005
это и означает "я запускаю 200 или же 500 потоков для обработки"? »

Да, именно это и значит. Считаете что проблема кроется в моей программе? Ведь по сути, если в ОС нет никаких ограничений, то даже если моя программа написана криво, это никак не может влиять на скорость. Количество данных, передаваемых моей программой гарантированно меньше ширины канала

LehaMechanic 15-03-2014 09:11 2323767

Цитата:

Цитата new_bee
Есть предположение, что ограничение есть где-то в настройках или же драйвере. Скажите, сколько подключений(практически, а не теоретически) может быть одновременно открыто в Windows? »

Есть ограничение на одновременное подключение пользователей - не более 20. Пруф. Не знаю, актуально ли это в вашем случае.
Но есть смысл установить серверную ОС и проверить на ней - там точно со всеми ограничениями помягче.

new_bee 15-03-2014 13:57 2323844

Цитата:

Цитата Leha Ares
одновременное подключение пользователей - не более 20 »

На сколько я понял, это справедливо для доступа к компьютеру постредством учетных записей(например к расшареным ресурсам). В моем случае все немного иначе. Попробую потестить на 2003 сервере...

Dzirt2005 15-03-2014 20:25 2324009

Цитата:

Цитата new_bee
Да, именно это и значит. Считаете что проблема кроется в моей программе? »

Что тут считать? Я не думаю, что у вас хотя бы стоядерный процессор... ;) Вы на полном серьезе считаете, что 500 потоков могут одновременно _работать_ на даже 4-х ядерном процессоре? Вобщем, обсуждать тут нечего. Хотите писать высоконагруженные сервера для большого количества соединений - потрудитесь хотя бы немного изучить матчасть, без этого вы далеко не уйдете.

Цитата:

Цитата new_bee
На сколько я понял, это справедливо для доступа к компьютеру постредством учетных записей »

Правильно поняли. Никакого отношения к соединениям по TCP/IP (на сокетах по вашей терминологии) это не имеет.


Время: 22:50.

Время: 22:50.
© OSzone.net 2001-