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

Является ли пропускная способность первым узким местом масштабируемости при соединении 100 Мбит / с - это нормально?

Я тестирую сайт, который мы делаем, и находим очень неожиданный результат по сравнению с моими ожиданиями:
Наш сайт начинает очень медленно загружаться при одновременной работе нескольких сотен человек, хотя процессор и память в порядке. Глядя на Диспетчер задач, вкладку «Сеть», я вижу, что моя сетевая карта 100 Мбит / с загружена на 98%.

Мне почему-то это кажется крайне смешным ...
Каждый раз, когда я читаю что-то о масштабируемости, это процессор, память, кеширование и т. Д. И т. Д., И здесь я обнаруживаю узкое место на самой сетевой карте.

Мы обслуживаем весь наш контент в сжатом виде, и наша домашняя страница довольно тяжелая, но не НАСТОЛЬКО. Я бы никогда не ожидал, что сетевая карта станет узким местом.

Это нормально?
Все ли имеют общедоступные веб-сайты, использующие сетевую карту 1 Гбит / с?
Я думал, что стандартным будет 100 Мбит / с.

Я что-то не так смотрю? Я неправильно интерпретирую график на вкладке «Сеть»?

ПРИМЕЧАНИЕ. Я могу придумать несколько способов исправить это, начиная с получения карты 1 Гбит / с и перемещения статических файлов на их собственные серверы. Мой вопрос в основном заключается в том, все ли просто используют соединения со скоростью 1 Гбит / с, что меня сильно удивит.

Пропускная способность как первое узкое место меня не слишком удивляет. ЦП, ОЗУ, HD и все другие компоненты за эти годы претерпели скачкообразные изменения, тогда как 100 Мбит / с существуют уже более десяти лет. Итак, вы находитесь в ситуации, когда у вас есть хороший бокс, более чем способный выдержать типичную нагрузку, но он подключен с использованием более чем десятилетних технологий.

Тем не менее, уверены ли вы, что ваша симуляция для 100 одновременных пользователей является точным отражением реального мирового трафика? При 100 абсолютно одновременных обращениях требуется всего 1 мегабит для каждого, или 128 КБ для каждого, для достижения максимального трафика. Это очень низкий потолок, и я считаю, что - если вы не уверены, что собираетесь получить такое использование, - вам может потребоваться пересмотреть нагрузочное тестирование.

Это звучит так, будто вы насыщаете доступную пропускную способность. Вам нужно либо сократить пропускную способность, либо переключиться на карту 1 Гбит / с, что я обычно ожидал найти на общедоступном веб-сервере (конечно, так было с каждой машиной класса сервера, которую я касался в последнем 10 лет - а где вы вообще нашли сервер с дешевой картой 100 Мбит / с? Неужели это переделанный рабочий стол?).

Что нужно проверить или учесть:

  • Вы не упоминаете кеширование. Если ваш сайт настроен каким-либо образом, который не возвращает хороших заголовков кеширования для статических файлов (например, изображений), вы получите большой удар. Используйте FireFox и надстройку YSlow (от Yahoo), чтобы показать круговую диаграмму, сравнивающую размер кешированных и некэшированных страниц.
  • Какая у вас методология тестирования? Ваши 100 «пользователей» просто заходят на сайт как можно быстрее? Что насчет кеширования - если ваши пользователи - это просто боты, которые продолжают захватывать какую-то страницу, они могут игнорировать ваши подсказки кеширования (см. Последний пункт).
  • Вы используете сжатие gzip, но какая часть вашего контента - это текст (помогает gzip), а сколько изображений и других двоичных файлов (gzip обычно ничего не делает)?
  • Используете ли вы пропускную способность вашей сети для каких-либо других функций - например, для отдельного сервера базы данных?
  • Вы не совсем точно знаете, насколько велики ваши страницы (используйте YSlow, чтобы узнать). Возможно, вы используете большие изображения вместо эскизов (я видел свою долю сайтов, на которых есть несколько мегабайт изображений на одной странице, потому что инструменты дизайнера / дизайнера просто использовали атрибут html ширины и высоты для уменьшения размера файлов изображений до эскизы).

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

Я бы рекомендовал проверить сетевую часть вашей среды:

  • нет широковещательного шторма или тупых болтливых протоколов, съедающих вашу пропускную способность?
  • проверьте, работает ли switchport на 100 / full (не знаю, можете ли вы проверить это на Windoze). Полудуплекс - это действительно плохо.
  • проверьте, не превышают ли счетчики ошибок на порте коммутатора 0. если да, замените кабели и / или сетевые адаптеры и попробуйте другой порт.

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