Сервер IIS 6.0 слишком занят HTTP 503 Connection_Dropped DefaultAppPool - PullRequest
2 голосов
/ 26 мая 2009

У нас есть сайт, работающий в кластере Windows 2003 с 2 64-битными машинами.

Сайт должен быть в состоянии справиться с более чем 20 000 одновременно работающих пользователей

Одна из функций сайта - разрешить загрузку файла размером 2 МБ (который кэшируется в памяти).

У нас низкое использование процессора и памяти. У нас также есть избыточная пропускная способность.

Похоже, что у нас заканчиваются соединения из-за времени, которое требуется пользователю для загрузки файла (у некоторых пользователей медленное интернет-соединение).

В журнале IIS мы получаем ошибки HTTP 503.

В журнале HTTPErr мы получаем главным образом Connection_Dropped DefaultAppPool с некоторым Timer_EntityBody DefaultAppPool.

Вопрос: как мы можем настроить IIS, чтобы разрешить больше подключений? Или я что-то упускаю здесь?

Спасибо

Шираз

Ответы [ 5 ]

4 голосов
/ 26 мая 2009

Мы запускаем этот reg-файл на всех наших больших сайтах.

Windows Registry Editor Version 5.00


[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]
"EnablePMTUDiscovery"=dword:00000001
"MaxUserPort"=dword:0000fffe
"TCPTimedWaitDelay"=dword:0000003c
"TCPMaxSendFree"=dword:0000ffff
"SynAttackProtect"=dword:00000001 

Обратите внимание, что для этих изменений необходимо перезагрузить сервер.

См .:

1 голос
/ 26 мая 2009

Скорее всего, вам нужно увеличить количество разрешенных портов (см. http://technet.microsoft.com/en-us/library/cc758002.aspx)

Этот парень утверждает, что видел 50K + одновременных подключений с одного компьютера.

0 голосов
/ 12 июня 2009

необходимо установить предел очереди в пуле приложений IIS

0 голосов
/ 26 мая 2009

Я не уверен, относится ли это к IIS (хотя я не понимаю, почему это не так), но на серверах Linux я считаю, что отключение keep-alive помогает ограничить число одновременных подключений.

И снова, , это может не применяться, но я также обнаружил, что выгрузка всего статического контента на другой, меньший сервер помогает сохранить работоспособность (и значительно снижает количество соединений, с которыми имеет дело IIS ). Большинство людей используют nginx или lighttpd. Это довольно просто обойти тех на новом поддомене.

0 голосов
/ 26 мая 2009

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...