tcptop.bt(8) System Manager's Manual tcptop.bt(8)

tcptop.bt - خلاصه‌سازی توان عملیاتی ارسال/دریافت TCP بر پایه میزبان. برنامه top برای TCP. با استفاده از bpftrace/eBPF در لینوکس

tcptop.bt

این ابزار مانند دستور top برای نشست‌های TCP عمل می‌کند.

این ابزار کیلوبایت‌های ارسال/دریافت TCP را بر پایه میزبان خلاصه‌سازی کرده و خلاصه‌ای را به همراه سایر معیارهای کل سیستم به‌صورت تازه‌شونده چاپ می‌کند.

این ابزار از ردیابی پویای توابع ارسال/دریافت TCP هسته استفاده می‌کند و برای سازگاری با تغییرات هسته نیازمند به‌روزرسانی خواهد بود.

توابع ردیابی‌شده TCP معمولاً با نرخی کمتر از توابع به ازای هر بسته فراخوانی می‌شوند و بنابراین بار پردازشی کمتری دارند. داده‌های ردیابی‌شده درون هسته و با استفاده از یک نگاشت BPF خلاصه‌سازی می‌شوند تا بار پردازشی بیشتر کاهش یابد. در نرخ‌های بسیار بالای رویدادهای TCP، بار پردازشی همچنان ممکن است قابل سنجش باشد. برای جزئیات بیشتر بخش «بار پردازشی (OVERHEAD)» را ببینید.

از آنجا که این ابزار از BPF استفاده می‌کند، تنها کاربر ریشه (root) می‌تواند از آن استفاده کند.

CONFIG_BPF و bpftrace.

خلاصه‌سازی توان عملیاتی TCP بر پایه نشست‌های فعال، با بازه تازه‌سازی ۱ ثانیه:
# tcptop.bt

محتویات /proc/loadavg
شناسه فرآیند.
نام فرآیند.
نشانی محلی (IPv4) و درگاه TCP
نشانی دوردست (IPv4) و درگاه TCP
نشانی مبدأ (IPv6) و درگاه TCP
نشانی مقصد (IPv6) و درگاه TCP
کیلوبایت دریافتی
کیلوبایت ارسالی

این ابزار تمام ارسال‌ها/دریافت‌ها در TCP را در لایه‌های بالایی پشته TCP/IP (نزدیک به برنامه کاربردی) ردیابی می‌کند که معمولاً با نرخی کمتر از توابع به ازای هر بسته فراخوانی می‌شوند و بار پردازشی را کاهش می‌دهند. این ابزار همچنین داده‌ها را درون هسته خلاصه‌سازی می‌کند تا بار پردازشی بیش از پیش کاهش یابد. این تکنیک‌ها کمک‌کننده‌اند، اما در نرخ‌های بالای ارسال/دریافت، برای نمونه حدود ۱۳٪ از یک هسته CPU در ۱۰۰ هزار رویداد در ثانیه، بار پردازشی ممکن است قابل سنجش باشد. برای پیدا کردن این نرخ، از funccount جهت شمارش kprobeهای موجود در ابزار استفاده کنید، چرا که بار پردازشی متناسب با این نرخ است. در برخی سرورهای عملیاتی نمونه مورد آزمایش، کل نرخ رویدادهای TCP بین ۴ تا ۱۵ هزار رویداد در ثانیه و بار پردازشی CPU در این نرخ‌ها بین ۰٫۵٪ تا ۲٫۰٪ از یک CPU متغیر بود. اگر نرخ ارسال/دریافت شما پایین است (مثلاً کمتر از ۱۰۰۰ در ثانیه)، انتظار می‌رود بار پردازشی ناچیز باشد؛ ابتدا در یک محیط آزمایشی بررسی کنید.

این ابزار برگرفته از bpftrace است.

https://github.com/bpftrace/bpftrace

همچنین در توزیع bpftrace به پرونده همراه _examples.txt که شامل نمونه نحوه استفاده، خروجی و توضیحات این ابزار است مراجعه کنید.

این یک نسخه bpftrace از ابزار bcc با همین نام است. ابزار bcc ممکن است گزینه‌ها و قابلیت‌های سفارشی‌سازی بیشتری ارائه دهد.

https://github.com/iovisor/bcc

top(1) اثر William LeFebvre

Linux

ناپایدار - در حال توسعه.

Brendan Gregg

tcpconnect.bt(8), tcpaccept.bt(8)

2018-11-24 USER COMMANDS