Как настроить Windows 8.1 для максимального количества соединений TCP?

776
MonsterMMORPG

Мне нужно настроить Windows 8.1 для веб-скребка

Я использую тысячи потоков для одновременного сканирования

Для процесса сканирования я использую собственный написанный c # HttpWebRequest с использованием сканера

Однако у меня возникают проблемы при использовании прокси

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

Я правильно удаляю каждое соединение, даже если соединение неожиданно обрывается

Это настройки, которые я нашел до сих пор, но мне интересно, есть ли другие настройки, которые я могу сделать?

Мой компьютер очень сильный, поэтому у меня нет аппаратных ограничений

regedit настраивает TCPIP

  • установите TcpTimedWaitDelay на 30 секунд
  • TcpFinWait2Delay: 30 секунд
  • секунд установите MaxUserPort на 32 КБ
  • EnableDynamicBacklog: 1
  • MinimumDynamicBacklog: 20
  • MaximumDynamicBacklog: 10k
  • DynamicBacklogGrowthDelta: 100
  • EnableTCPA: 1
  • TcpAckFrequency: 1
  • TCPNoDelay: 1
  • TcpDelAckTicks: 1
  • LocalPriority = 4
  • HostsPriority = 5
  • DnsPriority = 6
  • NetbtPriority = 7

Команды cmd:

  • netsh int tcp set global autotuninglevel = отключено
  • netsh int tcp set global ecncapability = enabled
  • netsh int tcp set global rss = включено
  • netsh int tcp set global chimney = включен
  • netsh int tcp set эвристика отключена
  • netsh int tcp set global dca = включено

мои текущие настройки

enter image description here

мой компьютер - Core i7 2600K @ 4,5 ГГц = 8 потоков 32 ГБ RAM-рейд 0 SSD-дисков в качестве диска C

Через некоторое время количество установленных соединений никогда не уменьшается и продолжает расти. Когда это происходит, подключение к Интернету теряется

enter image description here

0
Использование тысяч соединений для очистки сайта граничит с оскорблением, любой уважающий себя владелец сайта испытывает искушение найти способ заблокировать такое поведение. Тем не менее, тот факт, что вы должны отключить и включить сетевую карту, говорит о многом. Вы пробовали другую карту? Вы искали обновленные драйверы? Mokubai 7 лет назад 1
@Mokubai проблема не связана с сайтом. Это еще одна проблема, как вы упомянули (я имею в виду тысячи соединений). Я не пробовал другую сетевую карту, потому что у меня ее нет. Да, драйверы все обновлены. В системе происходит какая-то странная ошибка, и установленное количество соединений продолжает стек. есть идеи? MonsterMMORPG 7 лет назад 0
Несмотря на то, что вы сказали в своем вопросе, я испытываю соблазн сказать, что вы неправильно утилизируете TCP, и они задерживаются еще долго после того, как должны были быть закрыты. Вы просто уничтожаете указатели на соединение в вашей программе или полностью закрываете их? Если это действительно проблема в вашем коде, то было бы лучше опубликовать пример того, что вы делаете с [так]. Mokubai 7 лет назад 1
Если УСТАНОВЛЕННЫЕ сокеты постоянно увеличиваются, вы их не закрываете. Сокеты TCP, когда они больше не нужны, должны быть закрыты с использованием определенного процесса (см. Здесь: http://www.tcpipguide.com/free/t_TCPConnectionTermination-2.htm). Существуют настройки TCP, которые могут помочь, если они задерживаются в таких состояниях, как TIME_WAIT, но изначально переход от ESTABLISHED к FIN_WAIT выполняется в приложении, а не в TCP. MaQleod 7 лет назад 0
@MaQleod это проблема. Я следую всем правилам обработки. проверьте здесь: http://codereview.stackexchange.com/questions/158359/composing-best-web-page-fetcher-function-by-httpclienthandler-for-c. это не похоже на запуск стека после запуска приложения. Приложение работает отлично, как и ожидалось некоторое время. скажем иногда 30 40 минут с сотнями тысяч запросов. все обработано правильно. тогда как-то происходит ошибка. интернет-соединение теряется и установленный счет начинает складываться MonsterMMORPG 7 лет назад 0

0 ответов на вопрос