Yığın Taşımı Kariyer böyle bir şey servis edilir:
user -> internet -> our fw -> nginx -> haproxy -> web farm
- FreeBSD, kullanımdaki işletim sistemidir
- Bu kutuda güvenlik duvarı yok veya QoS yok
- nginx SSL sonlandırmamızın üstesinden geliyor
- haproxy yük dengeleme işlemlerini gerçekleştirir
- nginx / haproxy her yoldan yaklaşık 15 Mb / sn hız yapıyor
Normal işlem sırasında, nginx HTTP isteğini alır, kendi isteğini yapar ve isteği, aynı kutudaki geri döngü adresine (127.0.0.1) bağlı olan bir haproxy örneğine gönderir.
Geçen gün bazı sorun giderme işlemleri yapmak için, haproxy örneğini nginx'in çalıştığı aynı arabirime taşıdım. Bu hemen tüm isteklere 100ms gecikme ekledi. Bu arayüz gerçek bir fiziksel arayüz değil, sazan arayüzü.
Bana bunun neden böyle olduğunu açıklayabilir mi? Paket kuyruğu ile devam edebilir mi? Ya da belki geridöngü her zaman daha hızlıdır, çünkü 'yumuşak' mıdır? Burada eksik olduğum temel bir şey var ve birilerinin beni eğiteceğini umuyorum.
Sabit bir 100 ms gecikme tuhaf görünüyor. Paketlerin arabelleğe alınmasına ve hemen teslim edilmemesine benziyor. Ya da belki bir kısmı bırakılır ve yeniden iletilir. Bu konuda tcpdump çalıştırabilir misin
problemi göstermek için arayüz? IP yığınının FreeBSD'de nasıl çalıştığını ve CARP'in nasıl uygulandığını bilmiyorum, ancak örneğin kölenin MAC adresini, arızalı ARP'lerle düzenli olarak tanıtabileceği ve üstadın alternatif olarak paketleri her iki tarafa da gönderebileceği mümkün mü?
Hiçbir şey yayılmayacağından emin olmak için gerçek arayüzde tcpdump'ı çalıştırabilir misiniz?
Sistemin bir CARP cihazının ARP girişini önbelleğe alması ve böylece bir seansın her paketi için bir ARP talebinin yayınlanmasına izin verilmemesi mümkün mü?
Bunların çoğu aptalca fikirler, ama doğru yönde arama yapmanıza yardımcı olmak için.
Sadece açıklık için, sadece 127 adresinden yerel IP'ye nasıl erişildiğini değiştirdiniz; doğru?
Eğer durum buysa ve bir fark yaratsa, bir şey doğru değil. Yönlendirme tablonuzu kontrol edin.
netstat -rn ve yerel IP'lerin nasıl yönlendirildiğini görün, lo0 arayüzüne yönlendirilmelidir (127 gibi).
Sizin
netstat -rn çıktı, buna benzer şekilde belirgin olmalıdır:
Internet:
Destination Gateway Flags Refs Use Netif Expire
default 220.127.116.11 UGS 131 2655014 nge1
18.104.22.168/23 link#2 U 0 88 nge1
22.214.171.124 link#2 UHS 0 34848 lo0
127.0.0.1 link#5 UH 0 64678 lo0
192.168.0.0/26 link#1 U 2 41703537 nge0
192.168.0.1 link#1 UHS 0 70088 lo0
Trafiğin, kutunun dışında kalmayacağı şekilde, kesinti seviyesi bir yazılım i / f olarak uygulanan geridönüşümü gördüm. Geridönüşümü çalıştırırken durum böyle olabilir mi? Feragatname: Sadece genel bir soru; FreeBSD hakkında hiçbir şey bilmiyorum.
- Pete