Tünel gün boyu kararlıdır ve ardından büyük bir yükleme başladığında düşer. Etkileşimli istekler önce takılır, istemci zaman aşımı bildirir ve aktarım bittiğinde bağlantı geri gelir. Bu örüntü, uzak sunucunun çökmesine değil kuyruklama ve işlemeye işaret eder, çünkü sunucuya zamanında yanıt verme şansı hiç verilmedi. Yapılacak iş, bunu kontrollü bir yük altında yeniden üretmek ve doğru sayaçları okumaktır.

Her çalıştırmada tek bir değişkeni değiştirin ve uç noktayı sabit tutun.

Yinelenebilir bir yük karşılaştırması kurun

Bağlantı boştayken bir temel çizgi kaydedin: gidiş-dönüş süresi, birkaç uygulama isteği ve tünelin kendi olay günlüğü. Sonra bilinen boyutta bir yükleme başlatın ve o sürerken tam olarak aynı ölçümleri yineleyin. Uç noktayı, istemciyi ve test hedefini değiştirmeden tutun, çünkü ikisini birden değiştirmek size hiçbir şey söylemez.

Hangi olayın önce göründüğüne dikkat edin. Herhangi bir hatadan önce artan gidiş-dönüş süresi kuyruklamaya işaret eder; kararlı gecikmeyle sert bir zaman aşımı başka bir şeye, örneğin anahtar döndürmeye ya da hesapta bir işleme işaret eder. İki örüntü farklı sonraki adımlara götürür. Bir şeyi değiştirmeden önce gözlemi yazın.

Çıktıyı zaman damgalarıyla saklayın, böylece yük altındaki ve boştaki çalıştırmalar satır satır karşılaştırılabilir.

Hızı değil kuyruğu okuyun

Tüketici bağlantıları paketleri sağlayıcının ekipmanında tamponlar ve dolu bir yukarı akış kuyruğu, tüneli ayakta tutan küçük kontrol paketleri dahil her şeyi geciktirir. Yüksek bir sayı bildiren hız testi bu gecikme hakkında az şey söyler, bu yüzden boştaki test geçerken doymuş bağlantı başarısız olur.

ping -c 20 -i 0.2 203.0.113.10
mtr -rwc 20 203.0.113.10
tc -s qdisc show dev eth0
ss -ti dst 203.0.113.10
nstat -az | grep -E 'Retrans|Timeout'

Yük altındaki gecikme sayılarını boştakilerle karşılaştırın. Paket kaybı olmadan onlarca milisaniyeden yüzlerceye sıçrama kuyruklamadır; kararlı gecikmeyle kayıp başka bir arızaya işaret eder.

Cihazı ve kontrol yolunu denetleyin

Şifreleme ve iletme işlemci zamanı harcar ve küçük bir yönlendirici ya da ısı nedeniyle kısıtlanan bir dizüstü bilgisayar meşgulken paket düşürebilir. Tek bir sürecin yüzdesine değil toplam yüke bakın, çünkü çekirdekteki iletme ve kesme işleme insanların genelde baktığı yerde görünmez.

uptime
mpstat -P ALL 1 3
dmesg | grep -i -E 'thermal|throttl'
journalctl -u openvpn-server@server --since '10 min ago' | tail -20

İstemci tarafındaki zaman aşımı planlanmış bir anahtar döndürmesiyle veya bir oturum ilkesi olayıyla da çakışabilir. Olayların sırası için yalnızca uygulamanın hata iletisini değil, istemcinin kendi günlüğünü okuyun.

Tek bir şeyi değiştirin ve yineleyin

Platform destekliyorsa yükleme hızını sınırlayın veya toplu trafiği etkileşimli trafiğin altında sınıflandırın, böylece kuyruk hiç dolmasın. Sonra aynı iş yükünü yineleyin ve öncekiyle aynı üç sayıyı karşılaştırın. Hız testini iyileştirip zaman aşımını yerinde bırakan bir değişiklik hiçbir şeyi onarmadı.

Zaman aşımını her yerde yükseltmek ve şifrelemeyi zayıflatmak, semptomu hangi sınırın çöktüğünü belirlemeden ortadan kaldıran iki değişikliktir. İkisi de onarım değildir. İkisi de arızayı daha ileriye, nedenini atfetmenin daha zor olduğu yere taşır.

Yeni bir isteği ve kullanıcının gerçekten güvendiği yeniden bağlanma davranışını test ederek bitirin. Şikâyeti doğuran yük altındaki kararlılık, kayda değer tek sonuçtur.

İlgili makaleler