Tüm Ürünler
Search
Belge Merkezi

Alibaba Cloud Linux:Configuration guide for TCP-RT

Son Güncelleme:Oct 08, 2026

TCP-RT, çekirdek enstrümantasyonu kullanan bir TCP izleme aracıdır. TCP bağlantılarındaki istek/yanıt çiftlerini tanımlar ve yükleme süresi, hizmet işleme süresi ile indirme süresi gibi zamanlama ölçümlerini yakalar. HTTP/1.1, MySQL ve Redis gibi bağlantı başına eşzamanlı tek bir istek/yanıt kullanan protokollerle çalışır.

İki sürüm mevcuttur:

Sürüm Arayüz Sistem gereksinimi
tcprt (önerilen) systemctl + YAML yapılandırma dosyası Alibaba Cloud Linux 3, çekirdek 5.10.134-17 veya üzeri
tcp_rt.ko modprobe / rmmod + sysfs parametreleri Alibaba Cloud Linux 2 (çekirdek 4.19.91-21.al7 veya üzeri) ya da Alibaba Cloud Linux 3

Mümkün olduğunca tcprt kullanın. tcp_rt.ko, Alibaba Cloud Linux 2 ve daha eski Alibaba Cloud Linux 3 çekirdekleriyle uyumluluğu korumak amacıyla sürdürülmektedir.

Sınırlamalar

  • Karşılıklı dışlama: Her iki sürüm de aynı günlük dosyası yoluna yazar. Bunların aynı anda çalıştırılması desteklenmez; aynı anda yalnızca birini kullanın.

  • Protokol desteği: TCP-RT, HTTP/1.1, MySQL veya Redis gibi bağlantı başına eşzamanlı tek bir istek/yanıt gerektirir.

  • Çekirdek gereksinimleri: tcprt için çekirdek sürümü 5.10.134-17 veya üzeri olan Alibaba Cloud Linux 3 gerekir. tcp_rt.ko ise Alibaba Cloud Linux 2 (çekirdek 4.19.91-21.al7 veya üzeri) veya herhangi bir Alibaba Cloud Linux 3 çekirdeğini destekler.

  • Ayrıştırma modları: tcp_rt.ko yalnızca default ayrıştırma modunu destekler. http ve https modları yalnızca tcprt içinde kullanılabilir.

Çalışma mantığı

TCP-RT, her istek/yanıt döngüsü (TASK olarak adlandırılır) için dört zaman damgasını kaydetmek üzere çekirdeği enstrümante eder:

  • T0 — ilk istek paketi sunucuya ulaşır

  • T1 — son istek paketi sunucuya ulaşır

  • T2 — sunucu ilk yanıt paketini gönderir

  • T3 — sunucu istemciden son ACK'yi alır

TCP-RT bu zaman damgalarından üç ölçüm türetir:

Ölçüm Aralık Ne ölçer
upload_time T0'dan T1'e İstemci isteğinin gelmesi için geçen süre
process_time (hizmet gecikmesi) T1'den T2'ye Sunucu işleme süresi
download_time T2'den T3'e Yanıtın istemciye ulaşması için geçen süre

download_time doğrudan günlük kayıtlarında raporlanmaz. Şu şekilde hesaplayın:

download_time = total_time - upload_time - process_time

Yerel mod (sunucu perspektifi)

TCP-RT sunucuda çalıştığında, zaman damgalarını sunucunun bakış açısına göre kaydeder.

image

Eş modu (istemci perspektifi)

TCP-RT giden bağlantıları (eş modu) izlediğinde, zaman damgalarını istemcinin bakış açısına göre kaydeder. Bu modda process_time değeri, istemcinin son istek paketini göndermesinden ilk yanıt paketini almasına kadar geçen süredir.

image

Ayrıştırma modları

Ayrıştırma modu, TCP-RT'nin hangi protokol düzeyindeki ayrıntıları yakalayacağını kontrol eder:

Mod Temel aldığı Ekledikleri
default — Genel TCP istek/yanıt ayrıştırma (HTTP, Redis, MySQL)
http default Gidiş-dönüş süresi (RTT) ve tıkanıklık penceresi ölçümleri; HTTP Expect: 100-continue algılama
https http Transport Layer Security (TLS) el sıkışma ayrıştırma ve Close Notify uyarı algılama
tcp_rt.ko yalnızca default ayrıştırma modunu destekler. http ve https modları yalnızca tcprt içinde kullanılabilir.

Her modun neyi kaydettiğine ilişkin ayrıntılar Çıktı biçimi bölümünde yer almaktadır.

tcprt yapılandırma

Ön koşullar

Başlamadan önce şunlara sahip olduğunuzdan emin olun:

  • Çekirdek sürümü 5.10.134-17 veya üzeri olan Alibaba Cloud Linux 3 çalıştıran bir örnek

  • Örnek üzerinde sudo erişimi

tcprt kurulumu ve başlatılması

  1. tcprt paketini yükleyin.

    sudo yum install -y tcprt
  2. Yapılandırma dosyasını açın.

    sudo vim /etc/tcprt-bpf/tcprt.yaml
  3. Düzenleme moduna girmek için i tuşuna basın ve ihtiyacınız olan parametreleri yapılandırın. Ayrıntılar için Yapılandırma parametreleri bölümüne bakın.

  4. Dosyayı kaydedin: Esc tuşuna basın, :wq yazın ve ardından Enter tuşuna basın.

  5. Hizmeti başlatın.

    sudo systemctl start tcprt
  6. (İsteğe bağlı) tcprt'nin önyüklemede otomatik olarak başlamasını etkinleştirin.

    sudo systemctl enable tcprt

Yapılandırma parametreleri

Yapılandırma dosyası üç bölümden oluşur: global, per-port ve init.

global

per-port bölümünde geçersiz kılınmadığı sürece tüm bağlantı noktaları için geçerlidir.

Parametre Açıklama Değerler Varsayılan
peer Varsayılan bağlantı noktası eşleştirme modu. false yerel bağlantı noktalarını eşleştirir; true uzak bağlantı noktalarını eşleştirir. true / false (boş)
stats İstatistik günlük çıktısını etkinleştirin. enable / disable disable
stats_interval İstatistik çıktı aralığı. Birim: saniye. Tam sayı 60
first_frame_bytes Tamamlanma süresi istatistikleri için bayt eşikleri. Birim: bayt. En fazla 4 tam sayıdan oluşan liste (boş)

per-port

Bağlantı noktasına özel yapılandırmaların listesidir. Her giriş, o bağlantı noktası için genel varsayılanları geçersiz kılar.

Parametre Açıklama Değerler Varsayılan
port Bağlantı noktası numarası veya aralığı (kapalı bir aralık için virgülle ayrılmış iki tam sayı). Tam sayı veya start,end (gerekli)
peer Bu bağlantı noktası veya aralık için eşleştirme modu. true / false Genel peer değeri
mode Ayrıştırma modu. default / http / https default
first_frame Bayt eşiklerine göre tamamlanma süresi istatistiklerini etkinleştirin. enable / disable disable

init

Arabellek ayarları; yalnızca hizmet başlangıcında yapılandırılabilir.

Parametre Açıklama Varsayılan
log_buf_num Günlük dosyaları için alt arabellek sayısı. Maksimum günlük boyutu = log_buf_num × log_buf_size. 8
log_buf_size Her bir günlük alt arabelleğinin boyutu. Birim: bayt. 262144
stats_buf_num İstatistik dosyaları için alt arabellek sayısı. Maksimum istatistik boyutu = stats_buf_num × stats_buf_size. 8
stats_buf_size Her bir istatistik alt arabelleğinin boyutu. Birim: bayt. 16384

Yapılandırma örneği

Aşağıdaki örnek, farklı ayrıştırma modlarına sahip iki bağlantı noktasını yapılandırır ve 443 numaralı bağlantı noktası için bayt eşiği tamamlanma süresi istatistiklerini etkinleştirir:

global:
  peer: false           # match local ports by default
  stats: disable
  stats_interval: 60
  first_frame_bytes: [100, 2000, 20000, 0]  # byte thresholds for R.F records

per-port:
  -
    port: 443
    mode: https         # enables TLS handshake parsing and Close Notify detection
    first_frame: enable # appends completion-time steps to R records
  -
    port: 56789,56800   # monitors port range 56789–56800
    mode: default
    peer: true          # match remote ports for this range

init:
  log_buf_num: 8
  log_buf_size: 262144
  stats_buf_num: 8
  stats_buf_size: 16384
Tamamlanma süresi istatistikleri ( first_frame ), ACK paketlerini kullanarak bayt eşiklerini izler. Tek bir ACK büyük bir veri patlamasını onaylayabileceğinden, günlüğe kaydedilen veri hacimleri yapılandırılan eşikleri aşabilir.

tcprt kaldırma

sudo yum remove tcprt

Onaylamak için istendiğinde y girin.

tcp_rt.ko yapılandırma

Ön koşullar

Başlamadan önce şunlara sahip olduğunuzdan emin olun:

  • Alibaba Cloud Linux 2 (çekirdek 4.19.91-21.al7 veya üzeri) ya da Alibaba Cloud Linux 3 çalıştıran bir örnek

  • Örnek üzerinde sudo erişimi

Modülü yükleme

İki yaklaşım mevcuttur.

Seçenek 1: Yükleme sırasında parametreleri ayarlama

Modülü tek bir komutla parametrelerle yükleyin. Örneğin, yerel 80 numaralı bağlantı noktasını izlemek için:

sudo modprobe tcp_rt lports=80

Parametrenin uygulandığını doğrulayın:

sudo cat /sys/module/tcp_rt/parameters/lports

Seçenek 2: Modülü yükleyin, ardından parametreleri ayarlayın

  1. Modülü yükleyin.

    sudo modprobe tcp_rt
  2. Parametreleri /sys/module/tcp_rt/parameters/ konumuna yazın. Örneğin, yerel 80 numaralı bağlantı noktasını izlemek için:

    sudo sh -c 'echo 80 > /sys/module/tcp_rt/parameters/lports'
  3. Parametreyi doğrulayın.

    sudo cat /sys/module/tcp_rt/parameters/lports

Modül parametreleri

Parametre Açıklama Varsayılan Örnek komut
stats İstatistik çıktısını etkinleştirin. 0 = devre dışı, 1 = etkin. 0 echo 0 > stats
stats_interval İstatistik çıktı aralığı. Birim: saniye. 60 echo 60 > stats_interval
lports İzlenecek yerel sunucu bağlantı noktaları (en fazla 6). (yok) echo 80,800,8080 > lports
pports İzlenecek TCP bağlantılarının uzak bağlantı noktaları. (yok) echo 80,800,8080 > pports
lports_range Yerel bağlantı noktası aralıkları. Aralık başına iki tam sayı. (yok) echo 80,100,1000,2000 > lports_range
pports_range Uzak bağlantı noktası aralıkları. Aralık başına iki tam sayı. (yok) echo 80,100,1000,2000 > pports_range
log_buf_num Maksimum günlük boyutu = log_buf_num × 256 KB. Yalnızca modül yüklenirken yapılandırılabilir. 8 modprobe tcp_rt log_buf_num=10
stats_buf_num Maksimum istatistik boyutu = stats_buf_num × 16 KB. Yalnızca modül yüklenirken yapılandırılabilir. 8 modprobe tcp_rt stats_buf_num=10

Modülü kaldırma

  1. Yeni bağlantıların artık tcp_rt kullanmaması için tcp_rt'yi devre dışı bırakın.

    sudo echo 1 > /sys/kernel/debug/tcp-rt/deactivate
  2. Mevcut hiçbir bağlantının modülü kullanmadığını onaylayın.

    lsmod

    tcp_rt için Used by sayısı 0 ise, aktif bağlantı yoktur.

  3. Modülü kaldırın.

    sudo rmmod tcp_rt

Çıktı biçimi

TCP-RT, debugfs aracılığıyla /sys/kernel/debug/tcp-rt konumuna iki dosya türü çıktısı verir:

Dosya türü Yol deseni Çıktı zamanlaması
Günlük dosyası rt-network-log<N> (CPU çekirdeği başına bir dosya) Bir bağlantıda sonraki TASK başladığında veya bağlantı kapandığında
İstatistik dosyası rt-network-stats Periyodik olarak (varsayılan: her 60 saniyede)
Günlük dosyaları /sys sanal dosya sisteminde depolanır ve disk alanı tüketmez. ls -l tarafından gösterilen boyut, gerçek disk kullanımını değil kümülatif günlük hacmini yansıtır. Gerçek günlük boyutunu kontrol etmek için dosyayı normal bir dosyaya yönlendirin: cat rt-network-log0 > /tmp/sample.log .

Her CPU çekirdeği kendi günlük dosyasına sahiptir. 32 çekirdekli bir sunucuda dosyalar rt-network-log0 ile rt-network-log31 arasında değişir. Her dosya en fazla 2 MB tutar; limite ulaşıldığında eski veriler temizlenir. Bir günlük dosyasını okumak yıkıcıdır — veriler her okumadan sonra temizlenir.

Günlük dosyası biçimi

Her günlük kaydı, türüne özgü alanları takip eden sekiz sabit alanla başlar.

Bir günlük satırı aşağıdaki yapıya sahiptir:

<version> <type> <time_sec> <time_usec> <remote_ip> <remote_port> <local_ip> <local_port> [type-specific fields...]

Örnek R kaydı:

V6 R 1693382120 450123 10.0.1.5 54321 192.168.1.10 80 1024 85432 312 0 3 12500 580 512 0 1448

Alanlar sırasıyla: sürüm (V6), tür (R), TASK başlangıç saniyesi (1693382120), mikrosaniye (450123), uzak IP (10.0.1.5), uzak bağlantı noktası (54321), yerel IP (192.168.1.10), yerel bağlantı noktası (80), ardından R'ye özgü alanlar: gönderilen veri (1024 bayt), toplam süre (85432 us), minimum RTT (312 us), yeniden iletimler (0), TASK sıra numarası (3), hizmet gecikmesi (12500 us), yükleme gecikmesi (580 us), alınan veri (512 bayt), alma yeniden sıralaması (0), MSS (1448 bayt).

Sabit alanlar (tüm kayıt türleri):

Konum Alan Açıklama
1 Sürüm V6 (varsayılan) veya V7 (ekstra alanlara sahip R tipi kayıtlar için)
2 Kayıt türü R, E, W, N veya P (aşağıya bakın)
3 TASK başlangıç zamanı (saniye) Unix zaman damgası, saniye kısmı
4 TASK başlangıç zamanı (mikrosaniye) Mikrosaniye kısmı
5 Uzak IP TCP bağlantısının uzak IP adresi
6 Uzak bağlantı noktası TCP bağlantısının uzak bağlantı noktası
7 Yerel IP TCP bağlantısının yerel IP adresi
8 Yerel bağlantı noktası TCP bağlantısının yerel bağlantı noktası

Örnek günlük girişi:

image

Kayıt türleri ve ek alanları:

R — normal TASK tamamlanması (sunucu isteği alır, yanıt gönderir)

Tek bir TCP bağlantısı birden fazla R kaydına sahip olabilir.

Alan Açıklama Birim
Gönderilen veri TASK tarafından gönderilen bayt Bayt
Toplam süre T0'dan T3'e (ilk istek segmentinin gelişinden son ACK'ye kadar) us
Minimum RTT TASK sırasında minimum TCP gidiş-dönüş süresi (RTT) us
Yeniden iletimler TASK sırasında yeniden iletilen TCP segmentleri adet
TASK sıra numarası 1 tabanlı indeks; bağlantı kurulduktan sonraki ilk TASK 1'dir —
Hizmet gecikmesi (process_time) T1'den T2'ye (son istek segmentinden ilk yanıt segmentine) us
Yükleme gecikmesi (upload_time) T0'dan T1'e (ilk istek segmentinden son istek segmentine) us
Alınan veri TASK tarafından alınan bayt Bayt
Alma yeniden sıralaması 1 = sırasız alma gerçekleşti; 0 = yok —
MSS TASK sırasında kullanılan maksimum segment boyutu (MSS) Bayt
Son düzeltilmiş RTT TASK sonunda düzeltilmiş RTT. Yalnızca http/https modunda raporlanır (tcprt, V7). us
Son tıkanıklık penceresi TASK sonunda tıkanıklık penceresi boyutu. Yalnızca http/https modunda raporlanır (tcprt, V7). segment

Genişletilmiş R kayıt türleri (yalnızca tcprt, V7):

Tür Ne zaman görünür Anlamı
R.C http veya https modu HTTP Expect: 100-continue isteği tarafından tetiklenen TASK (uygulama verisi yok)
R.Z https modu TASK, bir TLS 1.3 0-RTT el sıkışmasına aittir
R.A https modu TASK bir TLS Close Notify uyarı mesajı içerir
R.H https modu TASK bir TLS el sıkışma aşamasına aittir. TLS 1.2 (dört yönlü el sıkışma) için iki R.H kaydı oluşturulur. TLS 1.3 (üç yönlü el sıkışma) için bir R.H kaydı oluşturulur ve el sıkışma süresini içerir. Son alan biçimi: H <time_us>. Örnek: H 151878 el sıkışmanın 151.878 us sürdüğünü gösterir.
R.F first_frame etkinleştirildiğinde Bayt eşiklerine göre tamamlanma süresi istatistikleri. Son alan biçimi: F <n> [bytes time] .... Örnek: F 6 7240 214 63698 311 98436 358 — n=6 toplam bireysel sayı adedidir (üç çift); 214, 311 ve 358 us'lik tamamlanma süreleri sırasıyla 7.240, 63.698 ve 98.436 baytlık veri hacimlerine karşılık gelir.

Genişletilmiş türler birleştirilebilir. Örneğin, R.AF hem A hem de F uygulanacağını gösterir.

R.A ve R.C tespit kriteri olarak yanıt veri hacmini kullanır ve küçük yanlış pozitiflere sahip olabilir.

P — giden TASK tamamlanması (yerel sunucu istemci olarak hareket eder)

P kayıtları yalnızca pports veya pports_range yapılandırıldığında görünür. Tek bir TCP hizmeti birden fazla P kaydına sahip olabilir.

Alan Açıklama Birim
Gönderilen veri TASK tarafından gönderilen bayt Bayt
Toplam süre İstek gönderilmesinden son uzak yanıtın alınmasına kadar us
Minimum RTT TASK sırasında minimum TCP RTT us
Yeniden iletimler Yeniden iletilen TCP segmentleri adet
TASK sıra numarası 1 tabanlı indeks —
Hizmet süresi İstek tamamlanmasından ilk yanıtın alınmasına kadar us
Yanıt alma süresi İlk yanıt paketinden son yanıt paketinin alınmasına kadar us
Alınan veri Alınan toplam yanıt baytı Bayt
Alma yeniden sıralaması 1 = sırasız alma gerçekleşti; 0 = yok —
MSS TASK sırasında kullanılan maksimum segment boyutu Bayt

E — bağlantı kapanışı

Her TCP bağlantısı tam olarak bir E kaydı üretir. pports veya pports_range yapılandırılmış bağlantılar da bu kaydı oluşturur.

Alan Açıklama Birim
Son TASK sıra numarası Son TASK'ın sıra numarası —
Toplam gönderilen veri Tam TCP yaşam döngüsü boyunca gönderilen bayt Bayt
Onaylanmamış veri Kapanışta gönderilen ancak onaylanmayan bayt; yoksa 0 Bayt
Toplam alınan veri Tam TCP yaşam döngüsü boyunca alınan bayt Bayt
Yeniden iletimler Yaşam döngüsü boyunca yeniden iletilen TCP segmentleri adet
Minimum RTT Yaşam döngüsü boyunca minimum TCP RTT us

N — istek alma sırasında kapatılan bağlantı

Bir bağlantıda en fazla bir N kaydı bulunur.

Alan Açıklama Birim
Son TASK sıra numarası Son TASK'ın sıra numarası —
Süre Yalnızca alma süresi (yanıt gönderilmeden bağlantı kapatıldı) us
Alınan veri TCP yaşam döngüsü boyunca alınan bayt Bayt
Alma yeniden sıralaması 1 = sırasız alma gerçekleşti; 0 = yok —
MSS Kullanılan maksimum segment boyutu Bayt

W — yanıt iletimi sırasında kapatılan bağlantı

Bir bağlantıda en fazla bir W kaydı bulunur.

Alan Açıklama Birim
Gönderilen yanıt verisi Son TASK için zaten gönderilen yanıt verisi baytı Bayt
Süre Kısmi süre (yanıt tamamlanmadan bağlantı kapatıldı) us
Minimum RTT Son TASK için minimum TCP RTT us
Yeniden iletimler Son TASK için yeniden iletilen TCP segmentleri adet
Son TASK sıra numarası Son TASK'ın sıra numarası —
Hizmet gecikmesi Son TASK için T1'den T2'ye us
Yükleme gecikmesi Son TASK için T0'dan T1'e us
Onaylanmamış yanıt verisi Gönderilen ancak onaylanmayan yanıt baytı; yoksa 0 Bayt
Alma yeniden sıralaması 1 = sırasız alma gerçekleşti; 0 = yok —
MSS Son TASK için kullanılan maksimum segment boyutu Bayt
Gönderilen veri alanları için: Bir TASK bir bağlantıdaki son TASK ise, bildirilen boyut gerçek gönderilen bayttan bir bayt daha azdır (FIN baytını hesaba katmak için). Bağlantı, tamamlanmış bir TASK'tan sonra bir RST ile sonlanırsa, gerçek gönderilen bayt görüntülenenden bir bayt daha fazladır. Hata payı her zaman bir bayttır.

İstatistik dosyası biçimi

İstatistik dosyası ölçümleri bağlantı noktasına göre (sunucu bağlantı noktası veya istemci bağlantı noktası) toplar ve periyodik olarak çıktı verir. Alanlar soldan sağa doğru şu şekildedir:

Konum Alan Birim
1 Zaman damgası —
2 Ayrılmış alan (her zaman all) —
3 Bağlantı noktası numarası —
4 Ortalama toplam TASK süresi (R kayıtlarından) us
5 Ortalama hizmet gecikmesi (R kayıtlarından) us
6 Paket kaybı oranı binde (‰)
7 Ortalama RTT us
8 İstek iletimi sırasında kapatılan TASK oranı binde (‰)
9 TASK başına ortalama gönderilen veri Bayt
10 Ortalama yükleme gecikmesi us
11 TASK başına ortalama alınan veri Bayt
12 İstatistiklere dahil edilen TASK sayısı adet

tcprt ile tcp_rt.ko karşılaştırması

tcprt tcp_rt.ko
Günlük dosyası yolu Aynı Aynı
Günlük biçimi V7 biçimini genişletir (V6 ile geriye dönük uyumlu) Yalnızca V6
Özellik yönetimi systemctl modprobe / rmmod
Yapılandırma /etc/tcprt-bpf/tcprt.yaml /sys/module/tcp_rt/parameters/*
Sistem gereksinimleri Alibaba Cloud Linux 3, çekirdek >= 5.10.134-17 Alibaba Cloud Linux 2 (çekirdek >= 4.19.91-21.al7) veya Alibaba Cloud Linux 3
Ayrıştırma modları default, http, https Yalnızca default
**first_frame özelliği** Desteklenir Desteklenmez

SSS

Neden ls -l komutu yapılandırdığımdan daha büyük bir dosya boyutu gösteriyor?

Günlük dosyaları /sys sanal dosya sisteminde (debugfs aracılığıyla) bulunur ve disk alanı kaplamaz. ls -l tarafından raporlanan boyut, mevcut arabellek kullanımını değil, zaman içinde yazılan kümülatif günlük hacmini izler; bu nedenle sürekli büyür ve yapılandırılan arabellek boyutunu aşar. Gerçek günlük içerik boyutunu kontrol etmek için dosyayı normal bir dosyaya yönlendirin ve inceleyin:

cat /sys/kernel/debug/tcp-rt/rt-network-log0 > /tmp/tcprt-sample.log
ls -lh /tmp/tcprt-sample.log

Yönlendirilen dosya, mevcut gerçek veriyi (varsayılan ayarlara göre yapılandırılan 2 MB limite kadar) yansıtır.

image