Как оценить нагрузку сети в Linux

«Как оценить нагрузку сети в Linux» — вопрос из категории Linux, который задают на 23% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Оценка сетевой нагрузки включает анализ пропускной способности (throughput), количества соединений и ошибок.

1. Мониторинг трафика в реальном времени:

# Показывает трафик по хостам/соединениям (требует sudo)
sudo iftop -i eth0
# Простой график входящего/исходящего трафика
nload eth0

2. Анализ активных соединений и сокетов:

# Современная замена netstat. -s показывает сводную статистику.
ss -s
# Показать все TCP-соединения в состоянии ESTAB
ss -t state established

3. Сбор и просмотр исторической статистики:

# Установите vnstat: sudo apt install vnstat
vnstat -i eth0 --live  # Режим реального времени
vnstat -i eth0 -d  # Статистика по дням

4. DevOps-подход к мониторингу сети: Ручные команды хороши для диагностики, но для постоянного наблюдения я настраиваю автоматический сбор метрик:

  • Prometheus + node_exporter: Собирает базовые метрики интерфейсов (node_network_*): получено/передано байт, ошибки, сбросы.
  • Специализированные экспортеры: Для более глубокого анализа (например, snmp_exporter для сетевого оборудования).
  • eBPF-инструменты: В сложных случаях использую bpftrace или BCC tools (например, tcplife, tcptop) для трассировки сетевых вызовов на уровне ядра.
  • Дашборды Grafana: Визуализирую тренды трафика, процент использования линка, количество TCP-соединений и ошибок. Ключевые метрики (рост ошибок, неожиданный всплеск трафика) настраиваю на алерты.