DNSTCPBENCH(1) PowerDNS Authoritative Server DNSTCPBENCH(1)

dnstcpbench - ابزاری برای ارزیابی کارایی TCP در کارگزارهای نام

dnstcpbench [OPTION]... REMOTE-ADDRESS [REMOTE-PORT]

دستور dnstcpbench پرس‌وجوهای DNS را (به‌طور پیش‌فرض از ورودی استاندارد) خوانده و آن‌ها را به‌صورت موازی به یک کارگزار نام دوردست ارسال می‌کند. به‌طور پیش‌فرض TCP/IP استفاده می‌شود، اما به‌صورت اختیاری، ابتدا UDP آزمایش می‌شود که امکان سنجش کارایی عقب‌نشینی (fallback) به TCP/IP را فراهم می‌سازد.

این برنامه مقادیر میانگین و میانه را برای پرس‌وجو بر ثانیه و همچنین تأخیر UDP و TCP گزارش می‌دهد. هر پرس‌وجو تنها یک‌بار شمرده می‌شود، حتی اگر ابتدا از طریق UDP آزمایش شده باشد. این امر در عمل بدان معناست که ارسال گزینهٔ '-u' می‌تواند در صورت ارجاع بسیاری از پرس‌وجوها به TCP، نرخ پرس‌وجو را کاهش دهد.

قالب ورودی به‌صورت یک پرس‌وجو در هر خط است: qname تک-فاصله qtype. یک مثال:

www.powerdns.com ANY

هنگام سنجش کارایی در اجراهای طولانی‌مدت، ممکن است فعال‌سازی بازیافت TIME_WAIT ضروری باشد، زیرا در غیر این صورت ممکن است تاپل‌های پورت TCP/IP تمام شوند. در لینوکس این کار با اجرای دستور زیر انجام می‌شود:

echo 1 > /proc/sys/net/ipv4/tcp_tw_recycle

معادل این مورد برای IPv6 شناخته‌شده نیست.

آدرس IPv4 یا IPv6 مقصد برای ارزیابی.
پورت مقصد برای ارزیابی؛ پیش‌فرض 53 است.
مسیر FILENAME برای خواندن پرس‌وجوها از آن. در صورت عدم تعیین، به‌طور پیش‌فرض از ورودی استاندارد خوانده می‌شود.
نمایش پیام راهنما.
مدت‌زمان انتظار برای پاسخ بر حسب میلی‌ثانیه (MSEC).
تلاش برای تحلیل دامنه ابتدا از طریق UDP؛ استفاده از TCP تنها در صورتی که پاسخی ناقص یا بریده‌شده (truncated) دریافت شود.
ارائه توضیحات تفصیلی در مورد اقدامات برنامه.
استفاده از NUM ریسه (thread) کارگر موازی.

در حال حاضر کد مربوط به مهلت زمانی (timeout) در عمل اتصالات یا نوشتن‌های غیرمسدودکننده (non-blocking) انجام نمی‌دهد. بنابراین یک اتصال کند یا نوشتن‌های کند همچنان موجب کاهش کارایی و بروز تأخیر خواهند شد.

آمار میانهٔ پرس‌وجو بر ثانیه برای اجراهای کمتر از یک ثانیه، 0 گزارش می‌شود.

PowerDNS.COM BV

PowerDNS.COM BV

August 5, 2026