# Understanding "overloaded" status and how to diagnose it

در بخش جستجوی رله، هنگامی که رله در حالت اضافه‌بار است، یک نقطهٔ کهربایی در کنار نام مستعار رله نشان می‌دهیم. این بدان معناست که یک یا چند مورد از معیارهای بار زیر فعال شده‌اند:

- هرگونه فراخوانی Tor OOM به دلیل فشار به حافظه
- هر onionskins از نوع ntor حذف می‌شود
- اشباع درگاه TCP

توجه داشته باشید که اگر یک رله به حالت اضافه‌بار برسد، آن را ۷۲ ساعت پس از آن‌که رله بازیابی شد، نشان می‌دهیم.

اگر متوجه شدید که رلهٔ شما بیش از حد بارگذاری شده است لطفاً:

1. https://status.torproject.org/ را برای مشکل‌های شناخته‌شده در دسته‌بندی «Tor Network» بررسی کنید.
2. میزان‌کردن`sysctl` را برای سامانهٔ خود‏ به‌منظور بارگذاری شبکه، حافظه و CPU در نظر بگیرید.
3. فعال کردن `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 گزارش شبکه رمزگذاری کنید.