UDP Paketlerini Kullanarak Ultra Hızlı Sorgulama


10

Bir ağdaki bir cihazın 8 veya daha fazla bayt veri içeren küçük bir UDP paketi göndererek çok yüksek bir frekansta (saniyede yüzlerce veya binlerce sorgu) sorguladığı bir sistem uyguluyorum. Bu, başka bir uygulama tarafından, belki de çok basit bir işlem yapan ve başka bir UDP paketine sarılmış birkaç baytlık büyük sonucu gönderen başka bir cihazda alınır.

İletişim sistemlerinin, yayılma ve iletim gecikmelerini vb. Dikkate alarak belki de birkaç metre aralıklarla kablolu Ethernet aracılığıyla bağlandığı tipik donanımla ne tür gidiş-dönüş sürelerinin mümkün olduğunu bilmek istiyorum.

Diğer düşünce ve önerilerinizi de bekliyoruz.


2
onlarca veya yüzlerce mikrosaniye cinsinden gecikmeleri görebilirsiniz ... kesinlikle milisaniyenin altında gecikme ... açıklamanıza göre, bir finansal ticaret sistemi düşünüyormuşsunuz gibi geliyor ... talep ettiğiniz gecikmeler sizin özel hw'nize çok bağlı ve ücretsiz tavsiye istemekten çok test yapmaktan daha iyisiniz
Mike Pennington

Cevabınız için çok teşekkürler. Bu durumda aslında bir finansal ticaret sistemi için değildir. Sadece uygulamaya başlamadan önce neyin mümkün olduğuna dair belirsiz bir fikir istedim, daha çok bir fizibilite çalışması olarak, her şeyden çok.
John Smith

Yanıtlar:


11

Bir örnek Juniper MX80'in giriş gecikme süresi yaklaşık 8us, düşük gecikmeli kesme anahtarında <1us (belki 0.7us) olabilir. (Geçiş anahtarının, yalnızca çıkış portu boşta olduğunda% 100 zaman geçiremeyeceğini unutmayın!)

Fiberde 1km yaklaşık 5us gecikme süresidir (yine tek yönlü).

Minimum boyutlu yük (46B) için 10G'de serileştirme gecikmesi yaklaşık 67ns (0.067us) 'dir, bağlantı hızını artırarak serileştirme gecikmesini azaltırsınız.

IP başlığı Bu verileri ethernet yük Eğer çöp 10B içerecektir anlamına gelir verilerin sadece 36b zorunda, 8B, 20B, UDP başlığı 8B olduğunu GEREKİR , kendi yük eklemek için eklemek şey varsa yani göndermek, 0 gecikme maliyeti vardır.

Umarım RTT'yi cihaz gecikmesini cihaz sayısı ile çarparak ve her kilometrede fiber için 5us ekleyerek ve sonra bunu 2 ile çarpabilirsiniz.


HFT hakkında bazı düşünceler eklemeye dayanamıyorum.

Bu HFT hacmine göre 2009 ve 2012 arasında yarı yarıya azaldı. Kolay kazançların gitmesini önermek. HFT gecikmesi ve bunun kar üzerindeki etkisi hakkında bazı bilimsel makaleler veya sadece gerçek veriler görmek isterim. Ticaret karlarını etkileyen gecikmenin şu anda bahsettiğimiz gecikmeden başka bir büyüklükte olduğundan şüpheleniyorum. En büyük borsalardan biri için ağ kuran arkadaşım, ölçekleri anlamadan 'daha düşük == daha iyi' yapan bir müşteri olduğunu düşünüyor.
HFT'nin pazarda gözlemleyebildiğiniz zaman, HFT'nin ne kadar yararlı olduğunu tamamen anlayabiliyorumBir değişim pazarını görmemek, B'yi görüyor ve bunlardan faydalanıyor. Bazıları, her ticaretin vergisini herkes için pahalı hale getirerek vergilendirerek HFT'yi durdurmak için düzenleme kullanmaktan bahsediyor, bunun gerekli olacağını düşünmüyorum, bence fırsat penceresi zaten kapanıyor.


Mükemmel cevap ve çok bilgilendirici, teşekkürler. HFT hakkında birkaç kişisel düşünce bile!
John Smith

1
@JohnSmith, uç noktalarınıza (OS zamanlayıcı veya çekirdek işleme gibi) eklenen gecikmeyi dikkate almayı ihmal etmeyin ... bu, önceki bir yorumda bahsettiğim gecikmeye önemli ölçüde katkıda bulunabilir.
Mike Pennington

0 gecikme maliyeti ile tam minimum paket boyutunu kullanma konusunda mükemmel bir nokta.
generalnetworkerror

1

Geleneksel yarı ayarlı donanımlarda şunları yapabilmeniz gerektiğini düşünüyorum:

  1. Ana bilgisayar ağ yığınınızı dışarı çıkarın
  2. Bir sonraki ağ yığınınızı yukarı kaldırın
  3. 'Yeni' paketinizle bu ağ yığınını geri alın

10gig ~ 10 bize. Gerçekten bir şeyleri kilitlerseniz, bu sayı önemli ölçüde düşük olabilir.

Göreceğiniz gecikmenin neredeyse tamamı ağ donanımından / kablolarından değil, ana bilgisayar sistemlerinizden kaynaklanmaktadır. Makul bir geçiş anahtarı (Arista, Gnodal, Yeni Cisco, vb) alt 1us olacaktır.

UDP paketlerini tüketen işlemlerin NIC kesintilerinizle aynı çekirdeğe sabitlendiğinden emin olun. Oradan, NIC'nizdeki birleştirmenin devre dışı olduğundan emin olun ve oradan MSI-X ve DCA'nın açık olduğundan emin olun.

Daha ciddiyseniz ... SolarFlare'nin OpenOnload'unu kontrol edin. Onlar da performans test / doğrulamak için araçlar büyük bir paketi var.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.