در بخش جستجوی رله، هنگامی که رله در حالت اضافهبار است، یک نقطهٔ کهربایی در کنار نام مستعار رله نشان میدهیم.
این بدان معناست که یک یا چند مورد از معیارهای بار زیر فعال شدهاند:
توجه داشته باشید که اگر یک رله به حالت اضافهبار برسد، آن را ۷۲ ساعت پس از آنکه رله بازیابی شد، نشان میدهیم.
اگر متوجه شدید که رلهٔ شما بیش از حد بارگذاری شده است لطفاً:
https://status.torproject.org/ را برای مشکلهای شناختهشده در دستهبندی «Tor Network» بررسی کنید.
میزانکردنsysctl
را برای سامانهٔ خود بهمنظور بارگذاری شبکه، حافظه و CPU در نظر بگیرید.
فعال کردن MetricsPort
را برای درک آنچه اتفاق میافتد در نظر بگیرید.
میزانسازی sysctl
برای بارگذاری شبکه، حافظه و CPU
اشباع درگاه TCP
اگر درحال تجربهٔ اشباع درگاه TCP هستید، گسترش بازهٔ درگاه محلی خود را در نظر بگیرید.
شما قادر به انجامش هستید از طریق
# sysctl -w net.ipv4.ip_local_port_range="15000 64000"
يا
# echo 15000 64000 > /proc/sys/net/ipv4/ip_local_port_range
به خاطر داشته باشید همانطور که توضیح داده شد، میزانسازی sysctl
دائمی نیست و با راهاندازی مجدد از بین میرود.
شما باید پیکربندی را به /etc/sysctl.conf
یا به فایلی در /etc/sysctl.d/
اضافه کنید تا آن را دائمی کنید.
MetricsPort
برای اطلاع از سلامتی رلههای Tor و شبکهٔ Tor، ارائهدادن و داشتن دسترسی به متریکهای رله حیاتی است.
اطلاعات اضافهبار رله از زمان نسخههای +0.4.6 به توصیفگرهای رله اضافه شده است، اما از زمان Tor >= 0.4.7.1-alpha بود که یک رابط اختصاصی برای معیارهای رله در دسترس قرار گرفت، یعنی: درگاه معیارها.
فعالسازی MetricsPort
Tor دسترسی به درگاه متریکها را از طریق یک گزینهٔ پیکربندی torrc موسوم به MetricsPort
فراهم میکند.
دانستن این نکته مهم است که عرضهٔ عمومی MetricsPort برای کاربران شبکهٔ Tor، خطرناک است، بههمیندلیل است که آن درگاه بهصورت پیشفرض فعال نیست و دسترسی به آن باید با یک سیاست دسترسی کنترل شود.
لطفاً هنگام بازکردن این درگاه احتیاط بیشتری به خرج دهید، و پس از پایان اشکالزدایی آن را ببندید.
بیایید فرض کنیم شما روی سرور تنها کاربری هستید که رلهٔ Tor را اجرا میکند.
میتوانید با افزودن این موارد به فایل torrc خود، درگاه معیارها را فعال کنید:
MetricsPort 127.0.0.1:9035
MetricsPortPolicy accept 127.0.0.1
سپس قادر خواهید بود بهراحتی متریکها را با این فرمان دریافت کنید:
# curl http://127.0.0.1:9035/metrics
که بهطور پیشفرض در قالب Prometheus هستند.
توجه: هر کاربر روی آن سرور میتواند به متریکهای رله در مثال بالا دسترسی داشته باشد.
بهطور کلی، با MetricsPortPolicy
یک سیاست دسترسی بسیار دقیق تنظیم کردهاید و استفاده از ویژگیهای فایروال سیستمعامل خود را برای ایجاد لایههای دفاعی عمیقتر در نظر بگیرید.
برای توضیح دقیقتر دربارهٔ MetricsPort
و MetricsPortPolicy
صفحهٔ راهنمای Tor را ببینید.
خروجی MetricsPort
اینجا یک نمونه از آنچه فعالسازی خروجی MetricsPort
تولید خواهد کرد آمده است (ما هر معیاری مربوط به کنترل تراکم را حذف کردیم چراکه همچنان نیاز به پایدارسازی آن رابط داریم):
# HELP tor_relay_connections Total number of opened connections
# TYPE tor_relay_connections gauge
tor_relay_connections{type="OR listener",direction="initiated",state="opened",family="ipv4"} 0
tor_relay_connections{type="OR listener",direction="initiated",state="opened",family="ipv6"} 0
tor_relay_connections{type="OR listener",direction="received",state="opened",family="ipv4"} 0
tor_relay_connections{type="OR listener",direction="received",state="opened",family="ipv6"} 0
tor_relay_connections{type="OR",direction="initiated",state="opened",family="ipv4"} 0
tor_relay_connections{type="OR",direction="initiated",state="opened",family="ipv6"} 0
tor_relay_connections{type="OR",direction="received",state="opened",family="ipv4"} 0
tor_relay_connections{type="OR",direction="received",state="opened",family="ipv6"} 0
tor_relay_connections{type="Exit",direction="initiated",state="opened",family="ipv4"} 0
tor_relay_connections{type="Exit",direction="initiated",state="opened",family="ipv6"} 0
tor_relay_connections{type="Exit",direction="received",state="opened",family="ipv4"} 0
tor_relay_connections{type="Exit",direction="received",state="opened",family="ipv6"} 0
tor_relay_connections{type="Socks listener",direction="initiated",state="opened",family="ipv4"} 0
tor_relay_connections{type="Socks listener",direction="initiated",state="opened",family="ipv6"} 0
tor_relay_connections{type="Socks listener",direction="received",state="opened",family="ipv4"} 0
tor_relay_connections{type="Socks listener",direction="received",state="opened",family="ipv6"} 0
tor_relay_connections{type="Socks",direction="initiated",state="opened",family="ipv4"} 0
tor_relay_connections{type="Socks",direction="initiated",state="opened",family="ipv6"} 0
tor_relay_connections{type="Socks",direction="received",state="opened",family="ipv4"} 0
tor_relay_connections{type="Socks",direction="received",state="opened",family="ipv6"} 0
tor_relay_connections{type="Directory listener",direction="initiated",state="opened",family="ipv4"} 0
tor_relay_connections{type="Directory listener",direction="initiated",state="opened",family="ipv6"} 0
tor_relay_connections{type="Directory listener",direction="received",state="opened",family="ipv4"} 0
tor_relay_connections{type="Directory listener",direction="received",state="opened",family="ipv6"} 0
tor_relay_connections{type="Directory",direction="initiated",state="opened",family="ipv4"} 0
tor_relay_connections{type="Directory",direction="initiated",state="opened",family="ipv6"} 0
tor_relay_connections{type="Directory",direction="received",state="opened",family="ipv4"} 0
tor_relay_connections{type="Directory",direction="received",state="opened",family="ipv6"} 0
tor_relay_connections{type="Control listener",direction="initiated",state="opened",family="ipv4"} 0
tor_relay_connections{type="Control listener",direction="initiated",state="opened",family="ipv6"} 0
tor_relay_connections{type="Control listener",direction="received",state="opened",family="ipv4"} 0
tor_relay_connections{type="Control listener",direction="received",state="opened",family="ipv6"} 0
tor_relay_connections{type="Control",direction="initiated",state="opened",family="ipv4"} 0
tor_relay_connections{type="Control",direction="initiated",state="opened",family="ipv6"} 0
tor_relay_connections{type="Control",direction="received",state="opened",family="ipv4"} 0
tor_relay_connections{type="Control",direction="received",state="opened",family="ipv6"} 0
tor_relay_connections{type="Transparent pf/netfilter listener",direction="initiated",state="opened",family="ipv4"} 0
tor_relay_connections{type="Transparent pf/netfilter listener",direction="initiated",state="opened",family="ipv6"} 0
tor_relay_connections{type="Transparent pf/netfilter listener",direction="received",state="opened",family="ipv4"} 0
tor_relay_connections{type="Transparent pf/netfilter listener",direction="received",state="opened",family="ipv6"} 0
tor_relay_connections{type="Transparent natd listener",direction="initiated",state="opened",family="ipv4"} 0
tor_relay_connections{type="Transparent natd listener",direction="initiated",state="opened",family="ipv6"} 0
tor_relay_connections{type="Transparent natd listener",direction="received",state="opened",family="ipv4"} 0
tor_relay_connections{type="Transparent natd listener",direction="received",state="opened",family="ipv6"} 0
tor_relay_connections{type="DNS listener",direction="initiated",state="opened",family="ipv4"} 0
tor_relay_connections{type="DNS listener",direction="initiated",state="opened",family="ipv6"} 0
tor_relay_connections{type="DNS listener",direction="received",state="opened",family="ipv4"} 0
tor_relay_connections{type="DNS listener",direction="received",state="opened",family="ipv6"} 0
tor_relay_connections{type="Extended OR",direction="initiated",state="opened",family="ipv4"} 0
tor_relay_connections{type="Extended OR",direction="initiated",state="opened",family="ipv6"} 0
tor_relay_connections{type="Extended OR",direction="received",state="opened",family="ipv4"} 0
tor_relay_connections{type="Extended OR",direction="received",state="opened",family="ipv6"} 0
tor_relay_connections{type="Extended OR listener",direction="initiated",state="opened",family="ipv4"} 0
tor_relay_connections{type="Extended OR listener",direction="initiated",state="opened",family="ipv6"} 0
tor_relay_connections{type="Extended OR listener",direction="received",state="opened",family="ipv4"} 0
tor_relay_connections{type="Extended OR listener",direction="received",state="opened",family="ipv6"} 0
tor_relay_connections{type="HTTP tunnel listener",direction="initiated",state="opened",family="ipv4"} 0
tor_relay_connections{type="HTTP tunnel listener",direction="initiated",state="opened",family="ipv6"} 0
tor_relay_connections{type="HTTP tunnel listener",direction="received",state="opened",family="ipv4"} 0
tor_relay_connections{type="HTTP tunnel listener",direction="received",state="opened",family="ipv6"} 0
tor_relay_connections{type="Metrics listener",direction="initiated",state="opened",family="ipv4"} 0
tor_relay_connections{type="Metrics listener",direction="initiated",state="opened",family="ipv6"} 0
tor_relay_connections{type="Metrics listener",direction="received",state="opened",family="ipv4"} 0
tor_relay_connections{type="Metrics listener",direction="received",state="opened",family="ipv6"} 0
tor_relay_connections{type="Metrics",direction="initiated",state="opened",family="ipv4"} 0
tor_relay_connections{type="Metrics",direction="initiated",state="opened",family="ipv6"} 0
tor_relay_connections{type="Metrics",direction="received",state="opened",family="ipv4"} 0
tor_relay_connections{type="Metrics",direction="received",state="opened",family="ipv6"} 0
# HELP tor_relay_connections_total Total number of created/rejected connections
# TYPE tor_relay_connections_total counter
tor_relay_connections_total{type="OR listener",direction="initiated",state="created",family="ipv4"} 0
tor_relay_connections_total{type="OR listener",direction="initiated",state="created",family="ipv6"} 0
tor_relay_connections_total{type="OR listener",direction="received",state="created",family="ipv4"} 0
tor_relay_connections_total{type="OR listener",direction="received",state="created",family="ipv6"} 0
tor_relay_connections_total{type="OR listener",direction="received",state="rejected",family="ipv4"} 0
tor_relay_connections_total{type="OR listener",direction="received",state="rejected",family="ipv6"} 0
tor_relay_connections_total{type="OR",direction="initiated",state="created",family="ipv4"} 0
tor_relay_connections_total{type="OR",direction="initiated",state="created",family="ipv6"} 0
tor_relay_connections_total{type="OR",direction="received",state="created",family="ipv4"} 0
tor_relay_connections_total{type="OR",direction="received",state="created",family="ipv6"} 0
tor_relay_connections_total{type="OR",direction="received",state="rejected",family="ipv4"} 0
tor_relay_connections_total{type="OR",direction="received",state="rejected",family="ipv6"} 0
tor_relay_connections_total{type="Exit",direction="initiated",state="created",family="ipv4"} 0
tor_relay_connections_total{type="Exit",direction="initiated",state="created",family="ipv6"} 0
tor_relay_connections_total{type="Exit",direction="received",state="created",family="ipv4"} 0
tor_relay_connections_total{type="Exit",direction="received",state="created",family="ipv6"} 0
tor_relay_connections_total{type="Exit",direction="received",state="rejected",family="ipv4"} 0
tor_relay_connections_total{type="Exit",direction="received",state="rejected",family="ipv6"} 0
tor_relay_connections_total{type="Socks listener",direction="initiated",state="created",family="ipv4"} 0
tor_relay_connections_total{type="Socks listener",direction="initiated",state="created",family="ipv6"} 0
tor_relay_connections_total{type="Socks listener",direction="received",state="created",family="ipv4"} 0
tor_relay_connections_total{type="Socks listener",direction="received",state="created",family="ipv6"} 0
tor_relay_connections_total{type="Socks listener",direction="received",state="rejected",family="ipv4"} 0
tor_relay_connections_total{type="Socks listener",direction="received",state="rejected",family="ipv6"} 0
tor_relay_connections_total{type="Socks",direction="initiated",state="created",family="ipv4"} 0
tor_relay_connections_total{type="Socks",direction="initiated",state="created",family="ipv6"} 0
tor_relay_connections_total{type="Socks",direction="received",state="created",family="ipv4"} 0
tor_relay_connections_total{type="Socks",direction="received",state="created",family="ipv6"} 0
tor_relay_connections_total{type="Socks",direction="received",state="rejected",family="ipv4"} 0
tor_relay_connections_total{type="Socks",direction="received",state="rejected",family="ipv6"} 0
tor_relay_connections_total{type="Directory listener",direction="initiated",state="created",family="ipv4"} 0
tor_relay_connections_total{type="Directory listener",direction="initiated",state="created",family="ipv6"} 0
tor_relay_connections_total{type="Directory listener",direction="received",state="created",family="ipv4"} 0
tor_relay_connections_total{type="Directory listener",direction="received",state="created",family="ipv6"} 0
tor_relay_connections_total{type="Directory listener",direction="received",state="rejected",family="ipv4"} 0
tor_relay_connections_total{type="Directory listener",direction="received",state="rejected",family="ipv6"} 0
tor_relay_connections_total{type="Directory",direction="initiated",state="created",family="ipv4"} 0
tor_relay_connections_total{type="Directory",direction="initiated",state="created",family="ipv6"} 0
tor_relay_connections_total{type="Directory",direction="received",state="created",family="ipv4"} 0
tor_relay_connections_total{type="Directory",direction="received",state="created",family="ipv6"} 0
tor_relay_connections_total{type="Directory",direction="received",state="rejected",family="ipv4"} 0
tor_relay_connections_total{type="Directory",direction="received",state="rejected",family="ipv6"} 0
tor_relay_connections_total{type="Control listener",direction="initiated",state="created",family="ipv4"} 0
tor_relay_connections_total{type="Control listener",direction="initiated",state="created",family="ipv6"} 0
tor_relay_connections_total{type="Control listener",direction="received",state="created",family="ipv4"} 0
tor_relay_connections_total{type="Control listener",direction="received",state="created",family="ipv6"} 0
tor_relay_connections_total{type="Control listener",direction="received",state="rejected",family="ipv4"} 0
tor_relay_connections_total{type="Control listener",direction="received",state="rejected",family="ipv6"} 0
tor_relay_connections_total{type="Control",direction="initiated",state="created",family="ipv4"} 0
tor_relay_connections_total{type="Control",direction="initiated",state="created",family="ipv6"} 0
tor_relay_connections_total{type="Control",direction="received",state="created",family="ipv4"} 0
tor_relay_connections_total{type="Control",direction="received",state="created",family="ipv6"} 0
tor_relay_connections_total{type="Control",direction="received",state="rejected",family="ipv4"} 0
tor_relay_connections_total{type="Control",direction="received",state="rejected",family="ipv6"} 0
tor_relay_connections_total{type="Transparent pf/netfilter listener",direction="initiated",state="created",family="ipv4"} 0
tor_relay_connections_total{type="Transparent pf/netfilter listener",direction="initiated",state="created",family="ipv6"} 0
tor_relay_connections_total{type="Transparent pf/netfilter listener",direction="received",state="created",family="ipv4"} 0
tor_relay_connections_total{type="Transparent pf/netfilter listener",direction="received",state="created",family="ipv6"} 0
tor_relay_connections_total{type="Transparent pf/netfilter listener",direction="received",state="rejected",family="ipv4"} 0
tor_relay_connections_total{type="Transparent pf/netfilter listener",direction="received",state="rejected",family="ipv6"} 0
tor_relay_connections_total{type="Transparent natd listener",direction="initiated",state="created",family="ipv4"} 0
tor_relay_connections_total{type="Transparent natd listener",direction="initiated",state="created",family="ipv6"} 0
tor_relay_connections_total{type="Transparent natd listener",direction="received",state="created",family="ipv4"} 0
tor_relay_connections_total{type="Transparent natd listener",direction="received",state="created",family="ipv6"} 0
tor_relay_connections_total{type="Transparent natd listener",direction="received",state="rejected",family="ipv4"} 0
tor_relay_connections_total{type="Transparent natd listener",direction="received",state="rejected",family="ipv6"} 0
tor_relay_connections_total{type="DNS listener",direction="initiated",state="created",family="ipv4"} 0
tor_relay_connections_total{type="DNS listener",direction="initiated",state="created",family="ipv6"} 0
tor_relay_connections_total{type="DNS listener",direction="received",state="created",family="ipv4"} 0
tor_relay_connections_total{type="DNS listener",direction="received",state="created",family="ipv6"} 0
tor_relay_connections_total{type="DNS listener",direction="received",state="rejected",family="ipv4"} 0
tor_relay_connections_total{type="DNS listener",direction="received",state="rejected",family="ipv6"} 0
tor_relay_connections_total{type="Extended OR",direction="initiated",state="created",family="ipv4"} 0
tor_relay_connections_total{type="Extended OR",direction="initiated",state="created",family="ipv6"} 0
tor_relay_connections_total{type="Extended OR",direction="received",state="created",family="ipv4"} 0
tor_relay_connections_total{type="Extended OR",direction="received",state="created",family="ipv6"} 0
tor_relay_connections_total{type="Extended OR",direction="received",state="rejected",family="ipv4"} 0
tor_relay_connections_total{type="Extended OR",direction="received",state="rejected",family="ipv6"} 0
tor_relay_connections_total{type="Extended OR listener",direction="initiated",state="created",family="ipv4"} 0
tor_relay_connections_total{type="Extended OR listener",direction="initiated",state="created",family="ipv6"} 0
tor_relay_connections_total{type="Extended OR listener",direction="received",state="created",family="ipv4"} 0
tor_relay_connections_total{type="Extended OR listener",direction="received",state="created",family="ipv6"} 0
tor_relay_connections_total{type="Extended OR listener",direction="received",state="rejected",family="ipv4"} 0
tor_relay_connections_total{type="Extended OR listener",direction="received",state="rejected",family="ipv6"} 0
tor_relay_connections_total{type="HTTP tunnel listener",direction="initiated",state="created",family="ipv4"} 0
tor_relay_connections_total{type="HTTP tunnel listener",direction="initiated",state="created",family="ipv6"} 0
tor_relay_connections_total{type="HTTP tunnel listener",direction="received",state="created",family="ipv4"} 0
tor_relay_connections_total{type="HTTP tunnel listener",direction="received",state="created",family="ipv6"} 0
tor_relay_connections_total{type="HTTP tunnel listener",direction="received",state="rejected",family="ipv4"} 0
tor_relay_connections_total{type="HTTP tunnel listener",direction="received",state="rejected",family="ipv6"} 0
tor_relay_connections_total{type="Metrics listener",direction="initiated",state="created",family="ipv4"} 0
tor_relay_connections_total{type="Metrics listener",direction="initiated",state="created",family="ipv6"} 0
tor_relay_connections_total{type="Metrics listener",direction="received",state="created",family="ipv4"} 0
tor_relay_connections_total{type="Metrics listener",direction="received",state="created",family="ipv6"} 0
tor_relay_connections_total{type="Metrics listener",direction="received",state="rejected",family="ipv4"} 0
tor_relay_connections_total{type="Metrics listener",direction="received",state="rejected",family="ipv6"} 0
tor_relay_connections_total{type="Metrics",direction="initiated",state="created",family="ipv4"} 0
tor_relay_connections_total{type="Metrics",direction="initiated",state="created",family="ipv6"} 0
tor_relay_connections_total{type="Metrics",direction="received",state="created",family="ipv4"} 0
tor_relay_connections_total{type="Metrics",direction="received",state="created",family="ipv6"} 0
tor_relay_connections_total{type="Metrics",direction="received",state="rejected",family="ipv4"} 0
tor_relay_connections_total{type="Metrics",direction="received",state="rejected",family="ipv6"} 0
# HELP tor_relay_flag Relay flags from consensus
# TYPE tor_relay_flag gauge
tor_relay_flag{type="Fast"} 0
tor_relay_flag{type="Exit"} 0
tor_relay_flag{type="Authority"} 0
tor_relay_flag{type="Stable"} 0
tor_relay_flag{type="HSDir"} 0
tor_relay_flag{type="Running"} 0
tor_relay_flag{type="V2Dir"} 0
tor_relay_flag{type="Sybil"} 0
tor_relay_flag{type="Guard"} 0
# HELP tor_relay_circuits_total Total number of circuits
# TYPE tor_relay_circuits_total gauge
tor_relay_circuits_total{state="opened"} 0
# HELP tor_relay_streams_total Total number of streams
# TYPE tor_relay_streams_total counter
tor_relay_streams_total{type="BEGIN"} 0
tor_relay_streams_total{type="BEGIN_DIR"} 0
tor_relay_streams_total{type="RESOLVE"} 0
# HELP tor_relay_traffic_bytes Traffic related counters
# TYPE tor_relay_traffic_bytes counter
tor_relay_traffic_bytes{direction="read"} 0
tor_relay_traffic_bytes{direction="written"} 0
# HELP tor_relay_dos_total Denial of Service defenses related counters
# TYPE tor_relay_dos_total counter
tor_relay_dos_total{type="circuit_rejected"} 0
tor_relay_dos_total{type="circuit_killed_max_cell"} 0
tor_relay_dos_total{type="circuit_killed_max_cell_outq"} 0
tor_relay_dos_total{type="marked_address"} 0
tor_relay_dos_total{type="marked_address_maxq"} 0
tor_relay_dos_total{type="conn_rejected"} 0
tor_relay_dos_total{type="concurrent_conn_rejected"} 0
tor_relay_dos_total{type="single_hop_refused"} 0
tor_relay_dos_total{type="introduce2_rejected"} 0
# 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
tor_relay_load_onionskins_total{type="ntor_v3",action="processed"} 0
tor_relay_load_onionskins_total{type="ntor_v3",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 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{reason="success"} 0
tor_relay_exit_dns_error_total{reason="format"} 0
tor_relay_exit_dns_error_total{reason="serverfailed"} 0
tor_relay_exit_dns_error_total{reason="notexist"} 0
tor_relay_exit_dns_error_total{reason="notimpl"} 0
tor_relay_exit_dns_error_total{reason="refused"} 0
tor_relay_exit_dns_error_total{reason="truncated"} 0
tor_relay_exit_dns_error_total{reason="unknown"} 0
tor_relay_exit_dns_error_total{reason="tor_timeout"} 0
tor_relay_exit_dns_error_total{reason="shutdown"} 0
tor_relay_exit_dns_error_total{reason="cancel"} 0
tor_relay_exit_dns_error_total{reason="nodata"} 0
# 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_socket_total Total number of sockets
# TYPE tor_relay_load_socket_total gauge
tor_relay_load_socket_total{state="opened"} 0
tor_relay_load_socket_total 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_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
بیایید پی ببریم که برخی از این خطوط در واقع چه معنایی دارند:
tor_relay_load_onionskins_total{type="ntor",action="dropped"} 0
هنگامی که رلهای شروع به مشاهدهٔ «dropped» میکند، معمولاً مشکل از CPU/RAM است.
متأسفانه Tor تکرشتهای است به استثنای زمانی که «onion skins» پردازش شوند.
«onion skins» یک عملیات رمزنگاری است که باید روی «لایههای onion» معروف در هر مدار انجام شود.
وقتی tor لایهها را پردازش میکند، از یک استخر thread استفاده میکنیم و همه آن کار را به همان استخر رله برونسپاری میکنیم.
ممکن است این استخر بهدلیل فشار به حافظه یا CPU شروع به از قلم انداختن وظایف کند، و این موضوع حالت اضافهبار را فعال خواهد کرد.
اگر سرور شما با تمام ظرفیت درحال کار است، احتمالاً این مورد رخ خواهد داد.
tor_relay_exit_dns_error_total{...}
هر شمارندهای در قلمرو «*_dns_error_total» (جدا از مورد برای پرسمانهای موفق) حاکی از یک مشکل بالقوهٔ مرتبط با DNS است.
با این حال، در طول چرخهٔ انتشار 0.4.7 متوجه شدیم که خطاهای DNS بسیار پرآشوب هستند و حاوی مقادیر بسیار زیادی خطای مثبت کاذباند که برای اهداف گزارشدهی اضافهبار مفید نخواهند بود.
بنابراین، از نسخههای 0.4.6.9 و 0.4.7.4-alpha به بعد، دیگر از آنها برای این منظور استفاده نمیکنیم. با این حال، ما هنوز معیارهای DNS را نزدیک نگه میداریم تا به گردانندگان رله بینشی دربارهٔ آنچه در رلهٔشان میگذرد، ارائه دهیم.
مشکلات و خطاهای DNS timeout تنها مربوط به گرههای خروجی هستند.
tor_relay_load_oom_bytes_total{...}
فراخوانی Out-Of-Memory نشانگر مشکل RAM است.
رله ممکن است به RAM بیشتری نیاز داشته باشد یا در حال نشت حافظه است.
اگر متوجه شدید که پردازهٔ Tor درحال نشت حافظه است، لطفاً مشکل را یا از طریق Tor gitLab یا با ارسال ایمیل به فهرست ایمیل tor-relays گزارش دهید.
Tor رسیدگیکنندهٔ OOM خود را دارد و زمانی فراخوانی میشود که ٪۷۵ از کل حافظهای که tor فکر میکند در دسترس است، پر شود.
Thus, let's say tor thinks it can use 2GB in total then at 1.5GB of memory usage, it will start freeing memory.
این یک وضعیت اضافهبار محسوب میشود .
To estimate the amount of memory it has available, when tor starts, it will use MaxMemInQueues
or, if not set, will look at the total RAM available on the system and apply this algorithm:
if RAM >= 8GB {
memory = RAM * 40%
} else {
memory = RAM * 75%
}
/* Capped. */
memory = min(memory, 8GB) -> [8GB on 64bit and 2GB on 32bit)
/* Minimum value. */
memory = max(250MB, memory)
برای جلوگیری از بارگذاری بیش از حد، توصیه میکنیم یک رله با حافظهٔ رم بالای۲ گیگابایت روی ۶۴ بیت اجرا کنید.
۴ گیگابایت توصیه میشود، هرچند درصورتی که بتوانید، اضافهکردن حافظهٔ رم بیشتر ضرری ندارد.
توجه: اگر یک سرور قدرتمند با مقدار زیادی RAM اجرا میکنید، ممکن است بهدلیل محدودیت پیشفرض صف ۸ گیگابایتی، با اینکه هنوز مقدار زیادی RAM بلااستفاده دارید، دچار وضعیت بارگذاری بیشازحد شوید. در این صورت، یک مقدار مناسب برای MaxMemInQueues
در فایل پیکربندی torrc
وارد کنید.
ممکن است ببینید که Tor میتواند از سوی خود رسیدگیکنندهٔ OOM سیستمعامل فراخوانی شود.
از آنجا که Tor هنگام شروع، حافظهٔ کل سیستم را از آن خود میکند، اگر سیستم در مجموع برنامههای زیاد دیگری را در حال اجرا و استفاده از RAM داشته باشد، در نهایت مقدار زیادی از حافظه را مصرف خواهد کرد.
در این مورد، سیستمعامل میتواند مدیریت تمامشدن حافظه (OOM) را برای tor انجام دهد، بدون اینکه tor متوجه فشار روی حافظه شود.
tor_relay_load_socket_total
اگر تعداد سوکتهای بازشده نزدیک یا برابر با تمام سوکتهای موجود باشد، در آن صورت این نشان میدهد که رله درحال تمامکردن سوکت است.
راهحل این است که ulimit -n
را برای پردازهٔ Tor افزایش دهید.
tor_relay_load_tcp_exhaustion_total
این سطور نشان میدهند که درگاههای TCP رله در حال تمامشدن هستند.
سعی کنید sysctl
را همانطور که در بالا توضیح داده شد تنظیم کنید.
tor_relay_load_global_rate_limit_reached_total
اگر این شمارنده در مدت کوتاهی به مقدار قابلتوجهی افزایش پیدا کند، رله مزدحم میشود.
احتمالاً بهعنوان یک محافظ توسط یک سرویس Onion بزرگ، یا در جریان یک حملهٔ DDoS در شبکه، استفاده میشود.
اگر رلهٔ شما هنوز در حالت اضافهبار است و دلیل آن را نمیدانید، لطفاً با network-report@torproject.org تماس بگیرید.
میتوانید ایمیل خود را با استفاده از کلید OpenPGP گزارش شبکه رمزگذاری کنید.