Aktarıcım veya köprüm aşırı yüklenmiş. Bu ne anlama geliyor?
Arama sırasında, aşırı yüklenmiş aktarıcıların takma adının yanında sarı bir nokta görüntülenir. Bunun anlamı, aşağıdaki yük ölçümlerinden birinin veya birkaçının tetiklendiğidir:
- Bellek baskısı nedeniyle herhangi bir Tor bellek tükendi çağrısı
- Herhangi bir ntor onion kabuğunın kaybolması<
- TCP kapı numarası tükenmesi
- DNS zaman aşımına ulaşılması
Bir aktarıcı aşırı yüklendiğinde, bu simgeyi aktarıcının düzelmesinden sonraki 72 saat boyunca göstermeyi sürdürdüğümüzü unutmayın.
Aktarıcınızın aşırı yüklendiğini fark ederseniz lütfen:
Bilinen sorunlar için https://status.torproject.org/ adresindeki "Tor network" kategorisine bakın.
Ağ, bellek ve işlemci yükü için sisteminizin
sysctl
ayarını değiştirmeyi değerlendirin.Neler olduğunu anlamak için
MetricsPort
seçeneğini etkinleştirmeyi değerlendirin.
Ağ, bellek ve işlemci yükü için sysctl
ayarını yapmak.
TCP kapı numarasının tükenmesi
TCP kapı numarası tükenmesi yaşıyorsanız, yerel kapı numarası aralığınızı genişletmeyi değerlendirin. Bu işlemi şu komut ile yapabilirsiniz
# sysctl -w net.ipv4.ip_local_port_range="15000 64000"
ya da
# echo 15000 64000 > /proc/sys/net/ipv4/ip_local_port_range
DNS zaman aşımı
DNS zaman aşımı yaşıyorsanız, bu sorunun ağdan mı yoksa çözümleyiciden mi olduğunu araştırın.
Linux üzerinde resolve.conf
dosyasında bir zaman aşımı ayarlama seçeneği var:
timeout:n
Çözümleyicinin uzaktan taraftan yanıt bekleyeceği süreyi ayarlar
sorguyu farklı bir ad sunucusu aracılığıyla yeniden denemeden önceki ad sunucusu.
Bu, herhangi bir çözümleyici API çağrısının geçirdiği toplam süre olmayabilir ve bunun garantisi yoktur.
tek bir çözümleyici API çağrısının tek bir zaman aşımına eşlenmesi.
Saniye cinsinden ölçülür, RES_TIMEOUT varsayılan değerdir (şu anda 5, <resolv.h> bakın).
Bu seçeneğin değeri sessizce 30 ile sınırlandırılmıştır.
Ayrıntılı bilgi almak için $ man resolve.conf
çıktısına bakın.
MetricsPort
Neler olduğunu anlamak için MetricsPort
seçeneğini etkinleştirmeyi değerlendirin.
Aktarıcılar için MetricsPort verileri >= 0.4.7.1-alpha sürümünden itibaren kullanılıyor, 0.4.6+ sürümünden beri aktarıcı tanımlayıcılarına aşırı yük verileri eklendi.
MetricsPort ölçümlerini herkese açık olarak ifşa etmenin Tor ağı kullanıcıları için tehlikeli olduğunu anlamanız önemlidir.
Lütfen bu kapı numarasını açarken ek önlem ve özen gösterin ve hata ayıklama işlemini bitirdiğinizde kapatın.
MetricsPortPolicy
için çok katı bir erişim ilkesi belirleyin ve derinlemesine savunma için işletim sisteminizin güvenlik duvarı özelliklerini de kullanmayı değerlendirin.
MetricsPort
seçeneği etkinleştirildiğinde şunun gibi bir çıktı üretilir:
# HELP tor_relay_load_onionskins_total Total number of onionskins handled
# TYPE tor_relay_load_onionskins_total counter
tor_relay_load_onionskins_total{type="tap",action="processed"} 0
tor_relay_load_onionskins_total{type="tap",action="dropped"} 0
tor_relay_load_onionskins_total{type="fast",action="processed"} 0
tor_relay_load_onionskins_total{type="fast",action="dropped"} 0
tor_relay_load_onionskins_total{type="ntor",action="processed"} 0
tor_relay_load_onionskins_total{type="ntor",action="dropped"} 0
# HELP tor_relay_exit_dns_query_total Total number of DNS queries done by this relay
# TYPE tor_relay_exit_dns_query_total counter
tor_relay_exit_dns_query_total{record="A"} 0
tor_relay_exit_dns_query_total{record="PTR"} 0
tor_relay_exit_dns_query_total{record="AAAA"} 0
# HELP tor_relay_exit_dns_error_total Total number of DNS errors encountered by this relay
# TYPE tor_relay_exit_dns_error_total counter
tor_relay_exit_dns_error_total{record="A",reason="success"} 0
tor_relay_exit_dns_error_total{record="A",reason="format"} 0
tor_relay_exit_dns_error_total{record="A",reason="serverfailed"} 0
tor_relay_exit_dns_error_total{record="A",reason="notexist"} 0
tor_relay_exit_dns_error_total{record="A",reason="notimpl"} 0
tor_relay_exit_dns_error_total{record="A",reason="refused"} 0
tor_relay_exit_dns_error_total{record="A",reason="truncated"} 0
tor_relay_exit_dns_error_total{record="A",reason="unknown"} 0
tor_relay_exit_dns_error_total{record="A",reason="timeout"} 0
tor_relay_exit_dns_error_total{record="A",reason="shutdown"} 0
tor_relay_exit_dns_error_total{record="A",reason="cancel"} 0
tor_relay_exit_dns_error_total{record="A",reason="nodata"} 0
tor_relay_exit_dns_error_total{record="PTR",reason="success"} 0
tor_relay_exit_dns_error_total{record="PTR",reason="format"} 0
tor_relay_exit_dns_error_total{record="PTR",reason="serverfailed"} 0
tor_relay_exit_dns_error_total{record="PTR",reason="notexist"} 0
tor_relay_exit_dns_error_total{record="PTR",reason="notimpl"} 0
tor_relay_exit_dns_error_total{record="PTR",reason="refused"} 0
tor_relay_exit_dns_error_total{record="PTR",reason="truncated"} 0
tor_relay_exit_dns_error_total{record="PTR",reason="unknown"} 0
tor_relay_exit_dns_error_total{record="PTR",reason="timeout"} 0
tor_relay_exit_dns_error_total{record="PTR",reason="shutdown"} 0
tor_relay_exit_dns_error_total{record="PTR",reason="cancel"} 0
tor_relay_exit_dns_error_total{record="PTR",reason="nodata"} 0
tor_relay_exit_dns_error_total{record="AAAA",reason="success"} 0
tor_relay_exit_dns_error_total{record="AAAA",reason="format"} 0
tor_relay_exit_dns_error_total{record="AAAA",reason="serverfailed"} 0
tor_relay_exit_dns_error_total{record="AAAA",reason="notexist"} 0
tor_relay_exit_dns_error_total{record="AAAA",reason="notimpl"} 0
tor_relay_exit_dns_error_total{record="AAAA",reason="refused"} 0
tor_relay_exit_dns_error_total{record="AAAA",reason="truncated"} 0
tor_relay_exit_dns_error_total{record="AAAA",reason="unknown"} 0
tor_relay_exit_dns_error_total{record="AAAA",reason="timeout"} 0
tor_relay_exit_dns_error_total{record="AAAA",reason="shutdown"} 0
tor_relay_exit_dns_error_total{record="AAAA",reason="cancel"} 0
tor_relay_exit_dns_error_total{record="AAAA",reason="nodata"} 0
# HELP tor_relay_load_tcp_exhaustion_total Total number of times we ran out of TCP ports
# TYPE tor_relay_load_tcp_exhaustion_total counter
tor_relay_load_tcp_exhaustion_total 0
# HELP tor_relay_load_socket_total Total number of sockets
# TYPE tor_relay_load_socket_total gauge
tor_relay_load_socket_total{state="opened"} 135
tor_relay_load_socket_total 1048544
# HELP tor_relay_load_oom_bytes_total Total number of bytes the OOM has freed by subsystem
# TYPE tor_relay_load_oom_bytes_total counter
tor_relay_load_oom_bytes_total{subsys="cell"} 0
tor_relay_load_oom_bytes_total{subsys="dns"} 0
tor_relay_load_oom_bytes_total{subsys="geoip"} 0
tor_relay_load_oom_bytes_total{subsys="hsdir"} 0
# HELP tor_relay_load_global_rate_limit_reached_total Total number of global connection bucket limit reached
# TYPE tor_relay_load_global_rate_limit_reached_total counter
tor_relay_load_global_rate_limit_reached_total{side="read"} 0
tor_relay_load_global_rate_limit_reached_total{side="write"} 0
Bu satırlardan bazılarının gerçekte ne anlama geldiğini öğrenelim:
tor_relay_load_onionskins_total{type="ntor",action="dropped"} 0
Bir aktarıcı "dropped" olarak görülmeye başlandığında, genellikle bir işlemci/bellek sorunu vardır.
Tor, ne yazık ki, "onion skins" işlenmesi dışında tek işlemlidir. "Onion skins", her devrede ünlü "onion katmanları" üzerinde yapılması gereken şifreleme çalışmalarıdır.
Tor katmanları işlerken bir işlem havuzu kullanır ve tüm bu işlemler o havuza dış kaynak olarak sağlanır. Bu havuz, bellek veya işlemcinin yükünün artması nedeniyle çalışmakta zorlanabilir ve bir aşırı yüklenme durumunu tetikler.
Sunucunuzun yükü kapasitesine yakınsa, büyük olasılıkla bu durum tetiklenir.
tor_relay_exit_dns_error_total{...}
"*_dns_error_total" alanındaki herhangi bir sayaç, bir DNS sorununu gösterir.
DNS zaman aşımı sorunları yalnız çıkış aktarıcıları için geçerlidir. Tor, DNS zaman aşımları fark etmeye başlarsa, aşırı yük işaretini alırsınız. Bu işaret, aktarıcınızın kaynaklar açısından aşırı yüklendiğini değil, ağda bir sorun olduğunu gösteriyor olabilir.
Çıkış aktarıcılarındaki DNS zaman aşımları, tor kullanıcıları için büyük bir kullanıcı deneyimi sorunudur. Bu nedenle çıkış aktarıcısı işletmecilerinin ağa yardımcı olmak için bu sorunları çözmesi gerekir.
tor_relay_load_oom_bytes_total{...}
Bellek yetersiz iletisi, bir RAM bellek sorununu gösterir. Aktarcı daha fazla belleğe gerek duyuyor olabilir veya bellek sızıntısı vardır. Tor işleminin bellek sızdırdığını fark ederseniz, lütfen sorunu Tor GitLab üzerinden bildirin veya tor-relays e-posta listesine bir e-posta gönderin.
Tor kendi bellek tükendi işleyicisini kullanır ve tor tarafından uygun olduğunu düşünülen toplam belleğin %75 kadarı kullanıldığında çağrılır. Böylece örneğin, tor toplamda 2GB uygun bellek olduğunu düşünüyorsa ve 1.5GB kullanıyorsa belleği boşaltmaya başlar. Bu bir aşırı yüklenme durumu olarak kabul edilir.
Tor kullanılabilir bellek miktarını öngörmek için başlatıldığında MaxMemInQueues seçeneğine ya da bu ayarlanmamışsa sistemde var olan toplam RAM bellek miktarına bakarak bu algoritmayı uygular:
Eğer RAM >= 8GB {
memory = RAM bellek * %40
} else {
memory = RAM bellek * %75
}
/* Üst sınır. */
memory = EnAz(bellek, 8GB) -> [64bit üzerinde 8GB ve 32bit üzerinde 2GB)
/* En düşük değer. */
memory = EnFazla(250MB, bellek)
Aşırı yüklenmeden kaçınmak için, 64bit ve RAM belleği 2GB üzerinde olan bir aktarıcı işletmeniz önerilir. 4GB önerilir, ancak olabiliyorsa daha fazla RAM eklemenin zararı olmaz.
İşletim sistemi bellek tükendi işleyicisinin tor uygulamasını çağırdığını fark edebilirsiniz. Tor, başlatıldığında sistemdeki tüm belleği aldığından, sistem üzerinde RAM belleğini kullanarak çalışan başka uygulamalar varsa, çok fazla bellek kullanılır. Bu durumda işletim sistemi, tor bellek tükenmesini algılayamadan belleği tüketebilir.
tor_relay_load_socket_total
Bu satırlar, aktarıcı soketlerinin tükendiğini gösterir.
Çözüm, tor işlemi için ulimit -n
değerini artırmaktır.
tor_relay_load_tcp_exhaustion_total
Bu satırlar, aktarıcı TCP kapı numaralarının tükendiğini gösterir.
sysctl
ayarını yukarıda anlatıldığı gibi yapmayı deneyin.
tor_relay_load_global_rate_limit_reached_total
Bu sayaç kısa bir süre içinde fark edilir bir değer kadar artarsa, aktarıcının tıkanmış olduğunu gösterir. Büyük bir onion hizmeti tarafından Koruma aktarıcısı olarak veya ağda devam eden bir DDoS için kullanılıyor olabilir.
Aktarıcınız hala aşırı yüklenmişse ve nedenini bilmiyorsanız, lütfen network-report@torproject.org adresine yazın. E-postanızı şifrelemek için network-report OpenPGP anahtarını kullanabilirsiniz.