Tüm Ürünler
Search
Belge Merkezi

Alibaba Cloud Linux:SMC applicability

Son Güncelleme:Oct 08, 2026

Shared Memory Communication (SMC), Remote Direct Memory Access (RDMA) kullanarak TCP uygulamalarını hızlandıran ve uygulama değişikliği gerektirmeyen bir çekirdek ağ protokol yığınıdır. Bu konu, SMC'nin senaryonuz için uygun olup olmadığını ve ortamınızın gereksinimleri karşılayıp karşılamadığını belirlemenize yardımcı olur.

Çalışma prensibi

SMC, TCP/IP yığınına paralel çalışır. Paketleri yazılımda işlemek yerine SMC, protokol işlemini alttaki donanıma yükler; verileri uzak paylaşımlı belleği doğrudan okuyup yazarak iletir. Böylece gecikme süresi azalır, CPU yükü düşer ve ağ aktarım hızı artar.

IBM, SMC'yi Linux topluluğuna açık kaynak olarak sunmuştur; Alibaba Cloud Linux 3'te bu teknoloji geliştirilmiştir. SMC, standart soket arayüzleriyle uyumludur. socket() sistem çağrısını yakalayarak soket ailesi ve protokol parametrelerini değiştiren SMC, mevcut TCP uygulamalarının şeffaf şekilde SMC yığınına geçmesini sağlar; kod değişikliği veya yeniden derleme gerekmez. Kurulum talimatları için bkz. SMC kullanma.

SMC stack architecture

SMC iki varyantta sunulur:

  • SMC over RDMA (SMC-R): RDMA teknolojisini kullanır. Alibaba Cloud Linux 3, elastic Remote Direct Memory Access (eRDMA) tabanlı SMC-R desteği sunar. Bu konudaki tüm içerik SMC-R için geçerlidir.

  • SMC over Direct Memory Access (SMC-D): Internal Shared Memory (ISM) teknolojisini kullanır.

Bağlantı kurulumu: SMC, standart TCP üç yönlü el sıkışması ile başlar. SYN paketindeki özel bir TCP seçeneği (Kind: 254, Value: 0xE2D4C3D9), eş tarafa SMC yeteneğini bildirir. Her iki taraf da SMC'yi destekliyorsa ilgili RDMA kaynaklarını oluşturur ve bir SMC el sıkışmasını tamamlar. Sonraki tüm veri akışı RDMA üzerinden gerçekleşir. SMC el sıkışması başarısız olursa taraflar otomatik olarak kurulmuş olan TCP bağlantısına geri döner; iletişim kesintisiz devam eder.

SMC connection establishment flow

İlk SMC bağlantısı kurulduktan sonra SMC, RDMA ağı üzerinde RDMA güvenilir bağlantısı (RC) oluşturur; buna SMC linki denir. Sonraki bağlantılar RDMA kaynak yükünü en aza indirmek için aynı SMC linkini yeniden kullanır. Yeniden kullanım sınırı aşıldığında yeni bir SMC linki oluşturulur. Birden çok SMC linki, RDMA iletimi ve olağanüstü durum kurtarma amacıyla bir SMC link grubu (LGR) oluşturur.

SMC link group (LGR) structure

Ön koşullar

Alibaba Cloud Elastic Compute Service (ECS) üzerinde SMC-R kullanmak için:

Kullanım senaryoları

SMC aşağıdaki senaryolarda en fazla faydayı sağlar:

  • Uygulama değişikliği gerekmez: SMC'nin temel avantajı, TCP uygulamalarının kod değişikliği olmadan RDMA'yı kullanabilmesidir. Bir çekirdek protokol yığını olarak SMC, yerel RDMA uygulamalarına kıyasla ek sistem çağrısı ve çekirdek modu/kullanıcı modu veri kopyalama yüküne sahiptir. Mevcut uygulamalarla sorunsuz entegrasyon öncelikli olduğunda SMC idealdir.

  • Gecikme süresi ve aktarım hızına duyarlı iş yükleri: Donanım yük devretme, protokol işleme gecikme süresini ve CPU yükünü azaltır; doğrudan bellek erişimi ağ aktarım hızını artırır.

  • İç ağ iletişimi: SMC her iki uç noktanın da desteğini gerektirir; bu durum iç ağlarda kolayca sağlanır. Kısa ağ linkleri gecikme süresi avantajını büyütür.

  • Ağ yoğunluklu hizmetler: Ağın ana darboğaz olduğu hizmetlerde gecikme süresi ve aktarım hızı iyileştirmeleri en belirgin şekilde görülür.

SMC'nin kullanılmaması gereken durumlar

Aşağıdaki senaryolarda SMC'den kaçının. Çözüm mevcutsa Solution sütununda listelenmiştir.

Senaryo SMC'nin performansının düşük olmasının nedeni Çözüm
Kısa ömürlü bağlantılar SMC bağlantı kurulumu; veri akışından önce TCP el sıkışması, SMC el sıkışması ve RDMA kaynaklarının oluşturulmasını içerir. Bu yük, kısa ömürlü bağlantılarda SMC'yi TCP'den daha yavaş hale getirir. Hangi bağlantıların SMC kullanacağını sınırlamak için smc-ebpf kullanın. Bkz. SMC'yi etkinleştirme ve yapılandırma.
Yüksek ani bağlantı oranları Aynı bağlantı kurulumu yükü, ani bağlantı artışları sırasında kuyruk oluşumuna ve bağlantı kurulumu zaman aşımlarına neden olur. Hangi bağlantıların SMC kullanacağını sınırlamak için smc-ebpf kullanın. Bkz. SMC'yi etkinleştirme ve yapılandırma.
Ağ öğeleri arasından geçen yollar Bazı ağ öğeleri, tanınmayan TCP Deneysel Seçenekleri içeren SYN/SYN-ACK paketlerini düşürür veya hatalı iletir; bu durum el sıkışması zaman aşımlarına veya bağlantı hatalarına yol açar. Bu sorun internete yönelik hizmetlerde görülebilir. image.png Yolu doğrulamak için aliyunsmc-check syn_check komutunu çalıştırın. Yol başarısız olursa smc-ebpf kullanarak o linkte SMC'yi devre dışı bırakın. Bkz. İletişim linkini kontrol etme.
Genel ağ iletişimi Genel ağlar, SMC el sıkışmalarına müdahale eden ağ öğelerini sıkça içerir (yukarıdaki sorunla aynı). Her iki tarafta da SMC gereksinimlerinin karşılanması zordur; bu durum TCP'ye geri dönüşe neden olur. Ayrıca SMC güvenlik sertleştirmesi içermez ve güvenilmeyen ortamlar için uygun değildir. —
Bellek kısıtlı ortamlar Her SMC bağlantısı paylaşımlı bellek arabelleklerini önceden ayırır. Varsayılan olarak bir bağlantı her uçta sysctl net.smc.wmem + sysctl net.smc.rmem kadar bellek tüketir. SMC kullanımını kısıtlamak için smc-ebpf kullanın veya varsayılan arabellek boyutlarını küçültün. Bkz. SMC'yi etkinleştirme ve yapılandırma ve SMC'yi etkinleştirme ve yapılandırma.
Alanlar arası iletişim Alanlar arası iletim, gecikme süresine yüzlerce mikrosaniye ila birkaç milisaniye ekler; bu durum SMC'nin gecikme süresi avantajını azaltır. Daha yüksek bant genişliği-gecikme çarpımı, bant genişliğini tam kullanmak için daha büyük arabellekler gerektirir ve bellek baskısını artırır. SMC'nin alanlar arasında kullanılmasını önlemek için Unique Endpoint Identifiers (UEIDs) kullanın. Bkz. SMC'yi etkinleştirme ve yapılandırma.

Otomatik kontrol aracı

Alibaba Cloud Linux 3, SMC ortam yapılandırmasını, iletişim linklerini ve uçtan uca bağlantıyı doğrulamak için aliyunsmc-check aracını içerir. Bu araç aliyun-smc-extensions paketinin bir parçasıdır.

Paketi yükleme

sudo yum install -y aliyun-smc-extensions

Temel ortamı kontrol etme

Çekirdek sürümünün ve eRDMA cihazının doğru yapılandırıldığını doğrulayın:

aliyunsmc-check basic_check

Örnek çıktı:

image

İletişim linkini kontrol etme

Yoldaki ağ öğelerinin SMC'ye müdahale etmediğini doğrulayın. <url> yerine hedef URL'yi girin:

aliyunsmc-check syn_check --url <url>

Örnek çıktı:

image.png

Link kontrolü başarısız olursa smc-ebpf kullanarak o linkte SMC'yi devre dışı bırakın. Bkz. SMC'yi etkinleştirme ve yapılandırma.

SMC bağlantısını kontrol etme

Geçerli ana bilgisayar ile uzak ana bilgisayar arasında SMC bağlantıları kurulabildiğini doğrulayın. Araç, uzak ana bilgisayara bağlanmak için SSH kullanır.

Yer tutucuları değiştirin:

Yer tutucu Açıklama
<peer ip> Uzak ana bilgisayarın IP adresi
<usr> Uzak ana bilgisayardaki kullanıcı adı
<keyfile> SSH özel anahtar dosyasının yolu
<passwd> Uzak ana bilgisayarın parolası

SSH anahtar dosyası kimlik doğrulaması

aliyunsmc-check connect_check --hosts <peer ip> --user <usr> --key <keyfile>

SSH parola kimlik doğrulaması

aliyunsmc-check connect_check --hosts <peer ip> --user <usr> --pwd <passwd>

Parolasız SSH kimlik doğrulaması

aliyunsmc-check connect_check --hosts <peer ip> --user <usr>

Örnek çıktı:

image.png

Sonraki adımlar

  • SMC kullanma — SMC'yi etkinleştirin, smc-ebpf aracını yapılandırın ve arabellek boyutlarını ayarlayın