Предположим, у меня есть веб-сервер, обслуживающий html-страницы под высокой нагрузкой. Предположим, что по какой-то причине узким местом является не процессор, не оперативная память и не диск, а сама сеть. Как я могу определить, что сервер Linux просто отправляет или получает слишком много трафика и не справляется? Как я могу узнать, что пропускная способность сети, скажем, превышает 60% от ее мощности? Если она превышает мощность, как мне ее масштабировать?
решение1
В общем, проанализируйте всю систему на предмет наличия ограничений. Например,Методология ЕГЭпроверяет каждый ресурс на предмет использования, насыщения и ошибок.
Все среды могут собирать основные, легко измеряемые метрики производительности, такие как загрузка ЦП и загрузка полосы пропускания интерфейса. В Linux такие инструменты, какнетдатаили perf может показать довольно много метрик в мельчайших подробностях.
Глубокое понимание вашей среды помогает найти узкое место. Максимальная пропускная способность в 95 Мбит/с может быть вызвана старым коммутатором 100 Мбит/с на пути или интернет-сервисом со скоростью 100 Мбит/с. Или система хранения данных довольно медленная. Или сетевые карты сообщают о переполнении, потому что буферы пакетов не очищаются достаточно быстро.
Где это возможно, попробуйте масштабировать веб-серверы на большее количество хостов на разном оборудовании. Общие ресурсы более чем одной виртуальной машины могут помочь. Можно попробовать что-то на одном хосте за раз с контролем. И в качестве бонуса, балансировка нагрузки может считаться функцией высокой доступности.