Назад | Перейти на главную страницу

Как улучшить Windows Server 2008 R2 для обработки большого количества подключений?

Прошло несколько дней, пока я пытаюсь понять, как решить эту проблему. Прежде всего, у меня есть веб-сайт со средним ежедневным просмотром 350 000 страниц. Раньше все управление рекламой (отслеживание кликов и показов каждого объявления) и содержание обслуживались на одном сервере со следующими характеристиками:

Сервер 1
OS: Windows 2008 R2 64-Bit
CPU: Intel® Core™ i5 - 4 cores
RAM: 8 GB
Storage: 2 x 1 TB hard drives
Bandwidth: 10 TB per month

Чтобы повысить скорость работы нашего веб-сайта, я решил отделить скрипт управления рекламой от другого выделенного сервера, потому что у нас от 15 до 30 рекламодателей на каждой странице.

Сервер 2
OS: Windows 2008 R2 64-Bit
CPU: Intel® Core™ i5 - 4 cores
RAM: 4 GB
Storage: 2 x 300 GB hard drives
Bandwidth: 10 TB per month

Эта проблема
Проблема в том, что Server 1 может обрабатывать как контент, так и рекламную систему. Теперь, когда я убрал рекламную систему и поместил ее на Server 2. Server 2 с трудом может обслуживать только рекламная система.

Тест

Reply from xxxxx bytes=32 time=290ms TTL=116
Reply from xxxxx bytes=32 time=289ms TTL=116
Reply from xxxxx bytes=32 time=320ms TTL=116
Reply from xxxxx bytes=32 time=286ms TTL=116
Reply from xxxxx bytes=32 time=286ms TTL=116
Reply from xxxxx bytes=32 time=348ms TTL=116
Reply from xxxxx bytes=32 time=284ms TTL=116
Reply from xxxxx bytes=32 time=290ms TTL=116
Request timed out
Reply from xxxxx bytes=32 time=320ms TTL=116
Reply from xxxxx bytes=32 time=286ms TTL=116
Request timed out
Request timed out
Reply from xxxxx bytes=32 time=284ms TTL=116

Попытки

  1. Увеличение MaxUserPort и TcpNumConnection
  2. Перезагрузите сервер
  3. Увеличить IIS Max Instances и Instance MaxRequests

Ресурс сервера

Что ж, приступим. Это дольше.

Вы совершенно неверно оценили факты. Windows - даже устаревшая версия 2008 R2, которую вы должны обновить как можно скорее, - полностью способна обрабатывать объем, с которым мой мобильный телефон справляется без проблем.

Итак, остается 3 возможных области проблем:

  • Монтаж. Ваши драйверы могут быть паршивыми. Если у вас устаревшая операционная система - насколько хороши ваши драйверы? Обновите их - это МОЖЕТ вызвать всевозможные проблемы.

  • Сеть. Это серьезно выглядит как «Моя машина слишком медленная, пожалуйста, помогите мне сделать ее быстрее», когда проблема в том, что вы проводите большую часть времени в пробке и жалуетесь на то, что движение не движется. Не проблема тюнинга автомобиля. 10тб трафика ничего не говорят о загруженности сети. Наблюдайте за статистикой сетевого трафика на вашей сетевой карте, а затем реагируйте соответствующим образом - если они не достигают максимальной скорости, которой должны быть ... ваш провайдер перепродал. Вот так просто.

  • Код. Возможно, вам нужно больше ОЗУ (компьютер занят заменой ОЗУ вместо обработки) или дрянное кодирование использует весь ваш ЦП до такой степени, что стек TCP уровня ядра не реагирует должным образом (да, ответы ICMP настолько низки). Это было бы жестоко, но это еще один способ проверить. Также может быть, что вы перегружаете диски, слишком часто обращаясь к ним, вместо кеширования в ОЗУ, но я почему-то не вижу, что это приводит к потере пингов. Однако администратор не может справиться с любой проблемой - вам нужно бросить в нее оборудование или взять палку и бить ею программиста, пока он ее не исправит (если это "глупая" ошибка уровня, которая снижает производительность - если это не так, то добиться серьезных успехов намного сложнее, и, возможно, вам просто нужно более мощное оборудование).

Это определенно не требует настройки окон - хорошо сконфигурированные окна могут дать НАМНОГО больше. Мои файловые серверы регулярно ß в течение более длительных периодов времени - поставляют 4–6 ГБ при относительно стандартной конфигурации.

Все цифры, которые вы даете, ничего серьезного не говорят.

  • Используется 10-15% ЦП МОЖЕТ означать подкачку.
  • Используется 25% памяти, вероятно, это хороший индикатор, сейчас происходит свопинг, но это все еще может означать, что ЦП ожидает ввода-вывода.
  • Использование сети 10% -15% означает - абсолютно ничего, потому что это только ВАША сторона сети. А как насчет апстрима? Что, если провайдер поставит 20 серверов с 1 гигабитами на восходящий канал 1 гигабит от стойки, и он будет чертовски переполнен?

Последний пункт вполне вероятен - отброшенные пакеты являются хорошим индикатором. И вам этого не будет видно.

Мой совет .... выключите что-нибудь на машине на мгновение, сделайте тест скорости из внешнего с большим статическим файлом. Готов поспорить, вы столкнетесь с пробкой выше.

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

Пинги являются внешними по отношению к двум серверам? Если это так, попробуйте выполнить эхо-запрос с первого сервера на второй. Если результаты полностью отличаются от результатов внешнего пинга, значит, проблема может быть не во втором сервере. Кроме того, посмотрите в мониторе ресурсов длину дисковой очереди для дисков и время активности - это дополнительная информация, которая может выявить проблему.