“Solana Verileri Yavaş mı Geliyor, Eksik mi?” Alıcı Altyapınızda Neleri Kontrol Etmelisiniz?

“Solana Verileri Yavaş mı Geliyor, Eksik mi?” Alıcı Altyapınızda Neleri Kontrol Etmelisiniz?

“Solana Verileri Yavaş mı Geliyor, Eksik mi?” Alıcı Altyapınızda Neleri Kontrol Etmelisiniz?
Hızlı bir Solana Shreds akışına abone oluyorsunuz, ancak yalnızca çok az sayıda paket ulaşıyor. Aldığınız Shred parçaları doğru şekilde ayrıştırılıyor, fakat çok fazla parça eksik olduğu için işlemler çıkarılamıyor. Aynı sunucuda gRPC çalışıyor; bu da sorunu aramaya nereden devam edeceğiniz konusunda sizi kararsız bırakıyor.
Göndericiyi kontrol etmenin yanı sıra uygulama sunucunuzu ve bu sunucunun bulunduğu veri merkezini de inceleyin. ERPC, Shreds verilerini hızlı bir şekilde iletse bile ağ yolu üzerindeki UDP kısıtlamaları veya alıcı sunucudaki işleme darboğazları, uygulamanızın bu hızdan yararlanmasını engelleyebilir.
Bir Shreds akışı seçmek, tüm yolu değerlendirmeyi gerektirir: paketlerin nasıl ulaştığını ve nasıl kullanılabilir veriye dönüştüğünü. Ağ kalitesi, mesafe ve veri merkezinin işletim politikaları; Geyser Yellowstone gRPC, standart RPC ve API trafiği ile işlem gönderimini de etkileyen ortak performans koşullarıdır.
ERPC'nin hızlı Shreds iletiminden, alıcı veri merkezi ve uygulama sunucusu üzerinden kullanılabilir veriye uzanan kavramsal yol. Ağ kısıtlamaları ile sunucu içindeki işleme darboğazlarını birbirinden ayırır.

Gönderim kayıtları ve alınan kullanılabilir veriler aynı şeyi göstermez

Yakın zamanda ERPC'ye iletilen bir destek talebinde, gönderici tarafındaki kısa süreli ölçümlerde yaklaşık 3.400–3.900 paket/sn kaydedildi. Alıcı taraf ise yaklaşık 13 paket/sn aldığını ve hiçbir slotun yeniden oluşturulmasını tamamlayamadığını bildirdi.
Bu rakamlar farklı ölçüm dönemlerine aittir ve ölçüm yöntemlerinin karşılaştırılabilir olduğu doğrulanmış değildir. Bu nedenle bu rakamlardan bir teslim başarı oranı veya kayıp oranı çıkarılamaz. Gönderici tarafındaki kayıtlar tek başına verinin ulaştığını kanıtlamaz; yazının kaleme alındığı sırada kesin neden henüz belirlenmemiştir.
Birkaç bin PPS de tek başına genel amaçlı bir sunucu için olağan dışı derecede yüksek bir yük olduğunu göstermez. Asıl sorular, gerçek ağ yolunda neler olduğu, hangi sınırların uygulandığı, trafiğin kısa zaman aralıklarında nasıl yoğunlaştığı, alımın nasıl yönetildiği ve her sayacın neyi ölçtüğüdür.

Aynı Frankfurt. Farklı ağ yolları.

Akış kaynağınız ve uygulama sunucunuz Frankfurt'ta olmasına rağmen ayrı veri merkezlerinde bulunabilir. Böyle bir yapılandırmada trafik bir tesisten çıkıp harici bir ağ üzerinden geçerek diğer tesise girebilir. Aynı bölge etiketini taşımaları; aynı tesisi, ağ işletmecisini veya ara cihazları paylaştıkları anlamına gelmez.
ERPC akışları veya RPC hizmetleri ile bir ERPC VPS ya da Bare Metal sunucusu aynı tesiste konumlandırıldığında, hizmet sunucuları ve uygulama sunucusu birbirine yakın raflarda yer alır ve aralarındaki iletişim iç ağda kalır. ERPC'nin Zero-Distance Communication yaklaşımının temelinde bu vardır: yalnızca aynı şehri seçmekle yetinmeyip fiziksel yerleşimi ve alıcı uygulamaya giden yolu birlikte tasarlamak.
Frankfurt'taki ayrı veri merkezleri arasında harici ağdan geçen bir yol ile ERPC'nin aynı tesiste birbirine yakın raflar ve iç ağ yolu kullanan yapılandırmasının kavramsal karşılaştırması. Shreds, Yellowstone gRPC, RPC ve işlem gönderimi için kullanılan ERPC hizmetlerini ve uygulama sunucularını kapsar.
ERPC hizmetleri ile uygulama sunucusu arasında harici ağa çıkan dolaylı bir yolu önlemek, yolu kısaltır ve bu kesimde harici ağlardaki yoğunluk ile yönlendirme değişikliklerine maruz kalmayı azaltır. Kısa bir yol, alım ve işleme için gereken kaynaklarla birleştiğinde hızlı bir akıştan yararlanmak için temel oluşturur. Sonucu hem paketlerin ulaşması hem de uygulamada işlenmesi aşamalarında doğrulayın.

Ağ koşulları tüm iletişim türlerini etkiler

Eksik parçalar sorunu Shreds akışlarında görünür kılar, ancak aynı altyapının kalitesi veri alımını, API isteklerini ve işlem gönderimini de daha genel ölçekte etkiler. Kullanılan protokol, uygulamanın gördüğü belirtileri ve ölçülmeye değer noktaları değiştirir.
İletişimAğ etkilerinin görüldüğü yerlerUygulamada kontrol edilecekler
Shreds / UDPPaket kaybı ve gecikme; yeniden oluşturma için gereken parçaların ulaşmasıGeçerli Shred parçaları ve verinin yeniden oluşturulabilmesine kadar geçen süre
Geyser Yellowstone gRPCTCP yeniden iletim beklemeleri, akışta birikme ve gecikmeAynı güncellemenin alınıp işlenmesine kadar geçen süre
RPC, API'ler ve hizmetler arası trafikİstek ve yanıtların gidiş dönüşleri, yoğunluk sırasında beklemelerYanıt süresi ve bu süredeki değişkenlik
İşlem gönderimiAlıcı düğüme giden istek yoluGönderim isteğinden düğümün yanıtına kadar geçen süre
Yakın yerleşim ve uygun işletim politikaları, bu trafiğin tamamını destekler. Alıcı düğümün yanıt süresini, bir işlemin zincire dahil edilip kesinleşmesine kadar geçen süreden ayrı ölçün.

Gbps, PPS ve trafik patlamaları hakkında her şeyi söylemez

Bant genişliği, belirli bir süre içinde taşınabilecek veri miktarını tanımlar. PPS, her saniye işlenen paket sayısını ifade eder. Bir bağlantı, bant genişliğinde boş kapasite bulunmasına rağmen paket hızı sınırına veya UDP'ye uygulanan bir kısıtlamaya takılabilir. Bulut sağlayıcılarının kendi belgeleri de bant genişliği ve PPS sınırlarını ayrı kısıtlar olarak ele alır.[1]
Shred parçaları her zaman sabit bir hızda gelmez. Kısa süreli bir trafik patlaması, ortalamanın gizlediği bir kuyruk baskısı oluşturabilir. Paketler bir ağ cihazının veya alıcının işleyebileceğinden daha hızlı birikirse kuyruk kapasitesini aşan paketler düşürülebilir.[2]
Barındırma sağlayıcınıza sürekli UDP alımını, kısa süreli trafik patlamalarını, PPS sınırlarını ve DDoS korumasının uyguladığı kuralları sorun. Amaç, korumayı gelişigüzel devre dışı bırakmak yerine gereken trafiğin güvenli biçimde kabul edilmesini sağlayan koşulları belirlemektir.

gRPC'nin çalışması, UDP alımının da çalıştığını göstermez

TCP tabanlı gRPC ile UDP üzerinden iletilen ham Shreds verileri farklı taşıma mekanizmaları kullanır. TCP yeniden iletim ve sıralama sağlar; akış tabanlı gRPC de alıcı kapasitesini dikkate alan akış kontrolüne sahiptir. UDP'nin kendisi, eksik paketleri yeniden iletmez veya alıcı uygulamanın yetişmesi için göndericiyi bekletmez.[3]
Dolayısıyla bir sunucuda gRPC'nin çalışması, UDP yolunun veya alıcının doğru çalıştığını kanıtlamaz. Protokole özgü filtreler, portlar, iletim yolları ve alıcı uygulamaları ayrı ayrı kontrol edilmelidir. gRPC'deki işleme gecikmeleri de bekleme süresi veya bağlantı kopmaları olarak ortaya çıkabilir.
gRPC'deki işlem/sn ile UDP'deki paket/sn, farklı işleme aşamalarında farklı birimleri ölçer. Ulaşan veri miktarını veya kayıp oranını hesaplamak için doğrudan karşılaştırılamazlar.

Ulaşan paketlerden kullanılabilir veriye

Standart bir UDP soketi kullanan alıcıda, gelen paketler uygulamaya ulaşmadan önce NIC'ten, çekirdekten ve soketin alım arabelleğinden geçer. İşleme geride kalırsa paketler sunucuya ulaştıktan sonra düşürülebilir. Linux arayüzlerinin alım sayaçları, daha sonraki aşamalarda düşürülen paketleri de içerir; dolayısıyla yalnızca alım sayısının artması, verinin uygulamaya teslim edildiğini göstermez.[4]
Toplam CPU kullanımı düşükken bile tek bir alım kuyruğu veya CPU çekirdeği yoğun yük altında olabilir. NIC kuyruklarını, kesmelerin hangi çekirdeklere atandığını ve tek çekirdek performansını kontrol edin. Uygulamada, uygun durumlarda veri alımını sonraki işlemlerden ayırın; maliyetli ayrıştırma işlemlerini ve aşırı günlük tutmayı alım döngüsünün dışında tutun. Daha büyük bir alım arabelleği, geçici trafik patlamalarını karşılayabilir; sürekli bir işleme kapasitesi açığını gideremez.[5]
Shred, blok verisinin bir parçasıdır. İleri hata düzeltme (FEC), aynı gruptaki veri ve kodlama Shred parçalarını kullanarak eksik verileri kurtarabilir; ancak yeniden oluşturma işlemi için yine de yeterli sayıda parça gerekir. Aynı paketlerden daha fazla kopya almak, eksik parçaların yerini tutmaz.[6]
Kullanılan uygulama biçimine bağlı olarak alıcı, slot tamamlanmadan önce mevcut parçalardan kayıtları (entry) yeniden oluşturabilir.[9] Toplam paket sayısının yanı sıra geçerli ve benzersiz Shred parçalarını, yeniden oluşturulan verileri ve uygulamanın ihtiyaç duyduğu olayı tanımasına kadar geçen süreyi de ölçün.

Her aşamayı aynı zaman aralığında ölçün

Her iki tarafta da aynı hedefi, portu ve ölçüm zaman aralığını esas alın. Aşağıdaki aşamaları ayrı ayrı kaydetmek, sonraki incelemenin kapsamını daraltmaya yardımcı olur.
Ölçüm noktasıKaydedileceklerNeyi ortaya koyar
Göndericiİlgili hedefe ait kayıtlar ve sayacın tanımıGönderimin hangi aşamasının gözlemlendiği
Alıcı sunucunun giriş noktasıHedef UDP trafiğinin paket yakalama kayıtları, NIC istatistikleri ve yakalama sırasında düşürülen paketlerO gözlem noktasında ne kadar trafiğin görülebildiği
İşletim sistemi ve soketUDP hataları, alım arabelleğinde düşürülen paketler ve kuyruk değişiklikleriAlınan verinin sunucu içinde birikip birikmediği
Shreds verilerinin yeniden oluşturulmasıGeçerli ve benzersiz Shred parçaları, başarılı yeniden oluşturma işlemleri, eksik veriler ve hatalarPaketlerden gerekli verilerin elde edilip edilmediği
Uygulamaİşleme kuyruğunda biriken işler ve aynı olayın tespit zaman damgalarıUlaşma hızının uygulamaya yansıyıp yansımadığı
Bir paket yakalama kaydında az sayıda paket görünüyorsa önce filtreyi, izlenen arayüzü, yakalama kayıplarını ve NIC'te düşürülen paketleri kontrol edin. Bazı işletim sistemi sayaçları sunucunun tamamını veya ağ ad alanının tamamını kapsar; kapsamlarını kontrol edin ve bunları hedef uygulamadan alınan ölçümlerle ilişkilendirin.[4][5]
Ayarları, kısıtlamanın yaşandığı aşamayı belirledikten sonra değiştirin. Arabellek veya halka (ring) boyutunu artırmak tek başına darboğazı başka bir aşamaya taşıyabilir ya da bekleme süresini artırabilir. ERPC'nin güncel alıcı yapılandırması ve kontrolleri burada belgelenmiştir:

Sunucunun yanı sıra işletim politikasını da seçin

Solana Foundation, yüksek performanslı doğrulayıcılar için NIC'ler, fiziksel çekirdekler, sürücüler ve ağ üzerinde denetim sahibi olmanın önemini açıklıyor. Tam doğrulayıcılar için geçerli olan bu gereksinimler her Shreds alıcısına bütünüyle uygulanmamalıdır. Alıcı uygulamanın, kendi akışına ve işleme yüküne uygun bir yapılandırmaya ihtiyacı vardır.[7]
Maliyeti veya güç tüketimini azaltmak makul bir işletim hedefidir. HFT ve gerçek zamanlı uygulamalar ayrıca CPU'nun hızlı yanıt vermesine, sürekli işleme kapasitesine ve ağda kısa bekleme sürelerine ihtiyaç duyar. Güç tasarrufu durumundan çıkışta gecikme açısından bir ödünleşim söz konusu olabilir.[8]
CPU modelleri ve çekirdek sayılarının yanı sıra kaynakların nasıl paylaşıldığını, sürekli yükün nasıl yönetildiğini, UDP trafiğine yönelik koşulları ve gerçek ağ yolunu kontrol edin.

ERPC, akışı ve alıcı ortamını birlikte değerlendirir

ERPC, Solana altyapısına yakın veri merkezlerinin seçimi, ağ yolları, donanım ve işletim ayarları üzerinde çalışır; Shreds ve gRPC'nin yanında VPS ve Bare Metal sunar. İşleme yükünüze uygun bir VPS seçebilir, fiziksel kaynakların yalnızca sizin kullanımınıza ayrılmasını istediğinizde Bare Metal ile karşılaştırabilirsiniz.
Sağladığımız ortamların yapılandırmasını ve işleyişini bilmek, teknik sorunların giderilmesini de destekler. Gönderici tarafındaki kayıtları alıcı ölçümleriyle karşılaştırabilir; ağ, işletim sistemi veya uygulama için somut kontroller belirleyebiliriz. Burada açıklanan destek talebinde, gönderici tarafındaki ölçümleri kontrol ettik ve alıcıdan ek ölçümler istedik.
Akışı, alıcının konumunu ve uygulamanın işleyişini birlikte değerlendirmek, seçtiğiniz hizmet ile ihtiyaç duyduğunuz veri arasında neyin eksik olduğunu belirlemeyi kolaylaştırır.

Saatlik ücretlendirme ile mevcut ortamınızla karşılaştırın

Alıcı ortamınız konusunda emin değilseniz, saatlik ücretlendirmeyle bir ERPC VPS veya Bare Metal sunucusu deneyin ve aynı akış ile uygulamayı kullanarak karşılaştırın. Tercih ettiğiniz bölgedeki güncel fiyatlar, kullanılabilirlik ve sipariş koşulları için kontrol paneline bakın.
Kullanılabilir bir yapılandırmayla başlayın; alım sayılarını, yeniden oluşturulan verileri, işleme kuyruğundaki birikmeyi ve aynı olayların tespit zaman damgalarını kaydedin. Farklı sunuculardaki zaman damgalarını karşılaştırırken saat senkronizasyonunun doğruluğunu da kontrol edin. Testi farklı zamanlarda tekrarlayın ve sonuçların yolun hangi noktasında farklılaştığını karşılaştırın. Bu ölçümleri kullanarak uygulamanıza uygun bir sunucu ve veri merkezi seçin.

İlgili yazılar

Teknik kaynaklar