VPN ağ geçidiniz CPU'ya mı takılıyor? Önce çekirdek başına yükü okuyun
Ortalamalar önemli olan iş parçacığını gizler. Kontrollü bir aktarım sırasında çekirdek başına yükü okuyun, yolu eleyin, sonra her çalıştırmada belgelenmiş tek bir ayarı değiştirin.
Daha büyük bir örnek satın almadan önce üç sınırdan hangisine ulaştığınıza karar verin. Bir çekirdek tam yüklüyken diğerleri boştaysa bu, akış başına şifreleme işine işaret eder. Aktarım sırasında tüm çekirdekler doygunsa bu, toplam kapasiteye işaret eder. Düşük CPU ve artan yeniden iletim sayısı yola işaret eder. Her birinin ilk adımı farklıdır ve yalnızca biri daha büyük bir örnekle çözülür.
Üç sınır, tek tablo, üç düzeltme
| Limit | Reading during a transfer | First move |
|---|---|---|
| Single thread | one core near 100%, siblings idle | spread flows across workers |
| Aggregate CPU | every core busy, load average climbs | capacity, or less work per byte |
| Path or provider | low CPU, retransmits or steal time high | MTU, loss, host contention |
Satırları aşama değil tanı olarak okuyun. Bir iş parçacığı %100'deyken diğerleri boşsa, bu tek büyük tünel taşıyan bir ağ geçidinde en yaygın sonuçtur, çünkü o akışın şifrelemesi tek çekirdekte çalışır. Aktarım sırasında tüm çekirdekler meşgulse makine zaten yapabildiği kadar iş yapıyor demektir. Düşük CPU ve artan yeniden iletimler, işlemcinin sürekli veri düşüren bir ağı beklediği anlamına gelir.
Bunları kanıt sırasına göre düzeltin. Akışları çalışanlara dağıtmak ilk duruma yardımcı olur ve ikincisi için hiçbir şey yapmaz. Daha büyük bir örnek ikincisine yardımcı olur ve ilkinde parayı boşa harcar. MTU veya kayıp düzeltmesi üçüncüye dokunan tek şeydir. Hangi satırda olduğunuzu bilmeden kapasite satın almak tahminin pahalı sürümüdür.
Sabitlenmiş bir iş parçacığını meşgul bir sunucudan ayırın
Çekirdek başına kullanımla başlayın, böylece sabitlenmiş bir çekirdek bir ortalamanın içine saklanamaz. Aktarım sırasında tek bir çalıştırma yükün düz mü yoksa tepeli mi olduğunu gösterir. Her iki biçim de bilgilendiricidir ve tepeli bir profil çoğu zaman örnekleme penceresinin şifreleme yerine zamanlayıcı etkinliğini yakaladığı anlamına gelir.
mpstat -P ALL 1 5
Meşgul çekirdeği bir sürece, sonra bir iş parçacığına atfedin. Aşağıdaki izleme çalıştırması ana ve alt iş parçacıklarını bir arada tutar; bu, daemon her bağlantı için çatallandığında önemlidir:
pidstat -u -t -p $(pgrep -f 'openvpn|wireguard|ipsec') 1 10
Çekirdek şifrelemesi hiçbir zaman kullanıcı alanı süreç sayacında görünmez. İş parçacıklarını ayrı ayrı örnekleyin ve bu görünümü süreç muhasebesiyle karşılaştırın:
top -H -b -n 1 | head -20
Yuva sayaçlarını en son okuyun, çünkü daha fazla CPU'nun yardımcı olup olmayacağına onlar karar verir. CPU düzken artan yeniden iletimler işlemci sorunu değildir. Örneklerken aktarımı çalışır tutun, yoksa sayılar boşta bir makineyi anlatır:
ss -ti | grep -E 'retrans|cwnd|rtt'
Kontrollü bir aktarım, iki kez çalıştırıldı
Boşta sayaçlar hiçbir şey kanıtlamaz ve rastgele bir uç noktaya karşı yapılan kıyaslama çok az şey kanıtlar. Bir istemci, bir hedef ve çalıştırmanıza izin verilen bir temsili aktarım seçin, ardından aynı pencerede verimi ve etkileşimli gecikmeyi kaydedin. Bir ağ geçidi büyük bir kopya hâlâ tamamlanırken doyabilir ve kullanıcıların gerçekten hissettiği şey gecikme eğrisidir. Aktarımı, istemci sayısını ve daemon sürümünü sayıların yanına yazın.
Çalıştırmayı birkaç paralel akışla yineleyin. Akışlar arasında artış akış başına pencereye işaret eder; bir çekirdek sabitken düz kalması işlemeye işaret eder.
Sonra isteğe bağlı iş yüklerini durdurarak bir kez daha yineleyin. Aynı sunucudaki bir yedekleme, günlük göndericisi veya veritabanı tünellerle hiç ilgisi olmayan meşgul bir ortalama üretebilir. Sunucu başka açıdan sessizken CPU hâlâ sabitse kanıt VPN sürecine işaret eder. Düşerse komşuyu ölçüyordunuz ve ağ geçidi hiçbir zaman sorun olmadı.
Donanım satın almadan önce yolu eleyin
Artan yeniden iletimler, küçülen tıkanıklık penceresi ve büyüyen gidiş-dönüş süresi hepsi işlemciden uzağa işaret eder. Tünelin MTU'sunu yolun MTU'suyla karşılaştırın, alttaki bağlantıda kayıp olup olmadığını kontrol edin ve istemcinin kendi yukarı bağlantısının sınır olmadığını doğrulayın. Daha büyük bir ağ geçidi paket düşüren bir bağlantıyı onarmaz ve kullanıcılar iki arızayı da aynı sözlerle anlatır. Yeniden iletim sayacı ikisini dakikalar içinde ayırır.
Sanal sunucuda sağlayıcının ölçümlerini konuğun kendi ölçümlerine ekleyin. Çalınan süre, aşırı satışın konuğun içinde nasıl görünür hale geldiğidir ve konuğun içindeki hiçbir ayar bunu ortadan kaldırmaz. Konuk sayaçları sunucuyu göremez, bu yüzden temiz bir konuk grafiği sağlıklı bir sunucunun kanıtı değildir.
Tek değişiklik, tek ölçüm
Kanıtların desteklediği hipotezi seçin, sonra tam olarak desteklenen tek bir ayarı değiştirin: çalışan sayısı, belgelenmiş bir boşaltma seçeneği veya örneğin boyutu. OpenVPN, işleme ile taşıma arasındaki aynı ayrım hakkında bir performans sorun giderme kılavuzu yayımlar: OpenVPN performans sorunlarını giderme.
Boşaltma seçeneğinin gerçekten etkin olduğunu bayrağa güvenmek yerine doğrulayın, sonra aynı aktarımı yeniden çalıştırın ve benzeri benzerle karşılaştırın. Gerçek bir iyileşmeyi sakin bir öğleden sonradan ayırmanın tek yolu budur. Geri yükleyebileceğiniz bir denetim noktası tutun, çünkü ikinci değişiklikte insanlar hangisinin yardımcı olduğunu takip edemez. Çalıştırma başına tek değişken bir gün için yavaş, bir ay için hızlıdır.
Grafiği daha iyi göstermek için kimlik doğrulamayı veya şifre takımını zayıflatmayın. CPU hâlâ belirtiyi izlemiyorsa tahmine dayanarak yükseltmek yerine yol ve uygulama kontrollerine dönün.