Поделиться через


sys.dm_os_linux_net_stats (Transact-SQL)

Применимо к: SQL Server 2025 (17.x) в Linux

Возвращает статистику сетевого интерфейса Linux в режиме реального времени, включая байты и пакеты, отправленные и полученные, ошибки, падения и столкновения в SQL Server 2025 (17.x) накопительного обновления (CU) 1 и более поздних версий.

Имя столбца Тип данных Нуллибельный Description
interface nvarchar(256) нет Имя сетевого интерфейса.
recv_bytes bigint нет Количество байтов, полученных без ошибок (может включать удаленные пакеты).
recv_packets bigint нет Количество пакетов, полученных без ошибок (может включать удаленные пакеты).
recv_errors bigint нет Число полученных плохих пакетов.
recv_drops bigint нет Количество полученных пакетов, но удалено перед обработкой.
recv_fifo bigint нет Число ошибок FIFO приемника.
recv_frame bigint нет Число ошибок выравнивания кадров приемника.
recv_compressed bigint нет Количество правильно полученных сжатых пакетов.
recv_multicast bigint нет Число полученных пакетов многоадресной рассылки (может включать удаленные пакеты).
tx_bytes bigint нет Количество байтов, передаваемых без ошибок.
tx_packets bigint нет Количество пакетов, передаваемых без ошибок.
tx_errors bigint нет Количество передаваемых плохих пакетов.
tx_drop bigint нет Количество пакетов, отброшенных перед передачей.
tx_fifo bigint нет Количество ошибок передачи кадров из-за переполнения или переполнения FIFO.
tx_collisions bigint нет Количество столкновений при передаче пакетов.
tx_carrier bigint нет Агрегированное число ошибок "carrier".
tx_compressed bigint нет Количество передаваемых сжатых пакетов.

Permissions

Необходимо разрешение VIEW SERVER PERFORMANCE STATE на сервере.

Замечания

Это динамическое административное представление предоставляет метрики сети на уровне системы и не ограничивается действием SQL Server. Он отражает состояние всех сетевых интерфейсов на узле Linux.

sys.dm_os_linux_net_stats Полезно для диагностики проблем с сетью, которые могут повлиять на подключение SQL Server, группы доступности AlwaysOn, репликацию или взаимодействие с клиентом или сервером.

Используйте это динамическое административное представление с другими динамическими представлениями linux для комплексного мониторинга:

Сценарии использования

Доступ к статистике сети Linux с помощью знакомых запросов T-SQL. Вам не нужно переключаться на инструменты уровня ОС, например ifconfig, ipили /proc/net/dev.

Создайте и отслеживайте базовые показатели производительности сети для развертываний SQL Server в Linux. Этот подход поддерживает упреждающее планирование диагностики и емкости.

  • Обнаружение потери пакетов: мониторинг recv_drops и tx_drop ненулевое значение. Эти значения могут указывать на проблемы с сетевой перегрузкой или оборудованием.

  • Устранение ошибок: изучение ненулевогоrecv_errors, tx_errorsrecv_fifoили tx_fifo значения для выявления проблем с ошибками интерфейсов или драйверов.

  • Анализ производительности. Отслеживайтеrecv_bytes и tx_bytes с течением времени, чтобы понять пропускную способность сети и определить узкие места.

Примеры

А. Статистика сети для всех интерфейсов

В следующем примере возвращается статистика сети для всех интерфейсов на узле Linux:

SELECT *
FROM sys.dm_os_linux_net_stats;

В. Определение интерфейсов с ошибками пакетов или удалением

Используйте следующий запрос, чтобы сосредоточиться на интерфейсах с проблемами. Он фильтруется по ненулевой ошибке или счетчикам удаления.

SELECT interface,
       recv_errors,
       recv_drops,
       tx_errors,
       tx_drop
FROM sys.dm_os_linux_net_stats
WHERE recv_errors > 0
      OR recv_drops > 0
      OR tx_errors > 0
      OR tx_drop > 0;

С. Мониторинг пропускной способности сети с течением времени

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

Следующий запрос отслеживает тенденции использования сети. Он периодически извлекает байты, отправленные и полученные, и вычисляет разностную величину.

Создание базового моментального снимка:

SELECT interface,
       recv_bytes,
       tx_bytes
INTO #net_stats_baseline
FROM sys.dm_os_linux_net_stats;

Дождитесь определенного интервала (например, 60 секунд), а затем выполните следующую команду:

SELECT n.interface,
       n.recv_bytes - b.recv_bytes AS bytes_received_in_interval,
       n.tx_bytes - b.tx_bytes AS bytes_sent_in_interval
FROM sys.dm_os_linux_net_stats AS n
     INNER JOIN #net_stats_baseline AS b
         ON n.interface = b.interface;

D. Обнаружение многоадресного трафика

Чтобы узнать, получает ли SQL Server многоадресные пакеты (которые могут быть релевантны для определенных конфигураций высокого уровня доступности и аварийного восстановления):

SELECT interface,
       recv_multicast
FROM sys.dm_os_linux_net_stats
WHERE recv_multicast > 0;

E. Корреляция статистики сети с статистикой ожидания

Если вы видите высокие NETWORK_IO ожидания, проверьте соответствие сетевых ошибок или падений, чтобы определить первопричину задержек запросов.

Объединение статистики сети с статистикой ожидания для диагностики проблем с сетью, вызывающих ожидание SQL Server:

SELECT w.wait_type,
       w.wait_time_ms,
       n.interface,
       n.recv_errors,
       n.tx_errors
FROM sys.dm_os_wait_stats AS w
CROSS JOIN sys.dm_os_linux_net_stats AS n
WHERE w.wait_type LIKE '%NETWORK_IO%';

F. Поиск интерфейсов с высоким числом конфликтов

Обнаружение и исправление сегментов сети с чрезмерными столкновениями, что может замедлить производительность SQL Server.

Столкновения могут отображать перегрузку сети или неправильно настроенное оборудование:

SELECT interface,
       tx_collisions
FROM sys.dm_os_linux_net_stats
WHERE tx_collisions > 0;

G. Пример базовых показателей и оповещений

Интеграция с средствами мониторинга для упреждающего уведомления администраторов базы данных о потенциальных сетевых проблемах, прежде чем они влияют на рабочие нагрузки SQL Server.

Используйте это динамическое административное представление в сценариях автоматического мониторинга, чтобы оповещать о неожиданном увеличении количества ошибок или удаления.

Оповещение, если любой интерфейс имеет более 10 ошибок или удаляется:

SELECT interface,
       recv_errors,
       tx_errors,
       recv_drops,
       tx_drop
FROM sys.dm_os_linux_net_stats
WHERE recv_errors > 10
      OR tx_errors > 10
      OR recv_drops > 10
      OR tx_drop > 10;

Оповещение, если любой интерфейс имеет более 10 ошибок или удаляется:

SELECT interface,
       recv_errors,
       tx_errors,
       recv_drops,
       tx_drop
FROM sys.dm_os_linux_net_stats
WHERE recv_errors > 10
      OR tx_errors > 10
      OR recv_drops > 10
      OR tx_drop > 10;