sys.dm_os_linux_net_stats (Transact-SQL)

Şunlar için geçerlidir: Linux üzerinde SQL Server 2025 (17.x)

SQL Server 2025 (17.x) Toplu Güncelleştirme (CU) 1 ve sonraki sürümlerinde gönderilen ve alınan baytlar, hatalar, bırakmalar ve çakışmalar gibi gerçek zamanlı Linux ağ arabirimi istatistiklerini döndürür.

Sütun adı Veri türü Null olabilir Description
interface nvarchar(256) No Ağ arabiriminin adı.
recv_bytes bigint No Hatasız alınan bayt sayısı (bırakılan paketleri içerebilir).
recv_packets bigint No Hatasız alınan paket sayısı (bırakılan paketleri içerebilir).
recv_errors bigint No Alınan hatalı paket sayısı.
recv_drops bigint No İşlemden önce alınan ancak bırakılan paket sayısı.
recv_fifo bigint No Alıcı FIFO hatası sayısı.
recv_frame bigint No Alıcı çerçevesi hizalama hatalarının sayısı.
recv_compressed bigint No Doğru alınan sıkıştırılmış paketlerin sayısı.
recv_multicast bigint No Alınan çok noktaya yayın paketi sayısı (bırakılan paketleri içerebilir).
tx_bytes bigint No Hatasız iletilen bayt sayısı.
tx_packets bigint No Hatasız iletilen paket sayısı.
tx_errors bigint No İletilen hatalı paketlerin sayısı.
tx_drop bigint No İletimden önce bırakılan paket sayısı.
tx_fifo bigint No FIFO taşması veya yetersizlik nedeniyle oluşan çerçeve iletim hatalarının sayısı.
tx_collisions bigint No Paketleri iletirken çakışma sayısı.
tx_carrier bigint No "Taşıyıcı" hatalarının toplam sayısı.
tx_compressed bigint No İletilen sıkıştırılmış paketlerin sayısı.

Permissions

Sunucuda VIEW SERVER PERFORMANCE STATE izin gerektirir.

Açıklamalar

Bu DMV, sistem düzeyinde ağ ölçümleri sağlar ve SQL Server etkinliğiyle sınırlı değildir. Linux konağındaki tüm ağ arabirimlerinin durumunu yansıtır.

sys.dm_os_linux_net_stats SQL Server bağlantısını, AlwaysOn kullanılabilirlik gruplarını, çoğaltmayı veya istemci/sunucu iletişimini etkileyebilecek ağ sorunlarını tanılamak için kullanışlıdır.

Bütünsel izleme için bu DMV'yi Linux'a özgü diğer DMV'lerle kullanın:

Kullanım senaryoları

Tanıdık T-SQL sorgularını kullanarak Linux ağ istatistiklerine erişin. , ifconfigveya ipgibi /proc/net/devişletim sistemi düzeyinde araçlara geçiş yapmanız gerekmez.

Linux dağıtımlarında SQL Server'ınız için ağ performansı temellerini oluşturun ve izleyin. Bu yaklaşım proaktif tanılamayı ve kapasite planlamayı destekler.

  • Paket kaybını algılama: sıfır olmayan değerleri izleme recv_drops ve tx_drop için. Bu değerler ağ tıkanıklığı veya donanım sorunlarını gösterebilir.

  • Hataları giderme: Hatalı arabirimleri veya recv_errors sürücü sorunlarını belirlemek için sıfır tx_errorsolmayan , recv_fifo, tx_fifoveya değerlerini araştırın.

  • Performansı analiz etme: Ağ aktarım hızını anlamak ve recv_bytes performans sorunlarını belirlemek için zaman içinde izleyintx_bytes.

Examples

A. Tüm arabirimler için ağ istatistikleri

Aşağıdaki örnek, Linux konağındaki tüm arabirimler için ağ istatistiklerini döndürür:

SELECT *
FROM sys.dm_os_linux_net_stats;

B. Paket hataları veya bırakmaları olan arabirimleri tanımlama

Sorun yaşayan arabirimlere odaklanmak için aşağıdaki sorguyu kullanın. Sıfır olmayan hata veya bırakma sayıları için filtreler.

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;

C. Zaman içinde ağ aktarım hızını izleme

Belirli bir aralıkta her arabirim için ağ aktarım hızını ölçün. Bu ölçüm, kapasite planlamasına yardımcı olur ve yoğun iş yükleri sırasındaki performans sorunlarını tanımlar.

Aşağıdaki sorgu ağ kullanım eğilimlerini izler. Gönderilen ve alınan baytları düzenli aralıklarla örnekler ve deltayı hesaplar.

Temel anlık görüntü alın:

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

Tanımlı bir aralığı (örneğin, 60 saniye) bekleyin ve ardından şunu çalıştırın:

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. Çok noktaya yayın trafiğini algılama

SQL Server'ınızın çok noktaya yayın paketleri alıp almadığı (belirli HA/DR yapılandırmaları için uygun olabilir) görmek için:

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

E. Ağ istatistiklerini bekleme istatistikleriyle ilişkilendirme

Yüksek NETWORK_IO beklemeler görürseniz, sorgu gecikmelerinin kök nedenini belirlemek için eşleşen ağ hataları veya bırakmaları olup olmadığını denetleyin.

Ağ sorunlarının SQL Server beklemelerine neden olup olmadığını tanılamak için ağ istatistiklerini bekleme istatistikleriyle birleştirin:

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. Yüksek çarpışma sayılarına sahip arabirimleri bulma

Sql Server performansını yavaşlatabilecek aşırı çakışmalara sahip ağ kesimlerini algılayın ve düzeltin.

Çakışmalar ağ tıkanıklığını veya yanlış yapılandırılmış donanımı gösterebilir:

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

G. Temel ve uyarı örneği

SQL Server iş yüklerini etkilemeden önce veritabanı yöneticilerine olası ağ sorunlarını proaktif olarak bildirmek için izleme araçlarıyla tümleştirin.

Hata veya bırakma sayısı beklenmedik şekilde arttığında uyarı vermek için otomatik izleme betiklerinde bu DMV'yi kullanın.

Herhangi bir arabirimde 10'dan fazla hata veya düşüş varsa uyarı verin:

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;

Herhangi bir arabirimde 10'dan fazla hata veya düşüş varsa uyarı verin:

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;