.TH tcptop.bt 8 "2018-11-24" "USER COMMANDS" .SH "نام (NAME)" tcptop.bt \- خلاصه‌سازی توان عملیاتی ارسال/دریافت TCP بر پایه میزبان. برنامه top برای TCP. با استفاده از bpftrace/eBPF در لینوکس .SH "خلاصه دستور (SYNOPSIS)" .B tcptop.bt .SH "توضیحات (DESCRIPTION)" این ابزار مانند دستور top برای نشست‌های TCP عمل می‌کند. .PP این ابزار کیلوبایت‌های ارسال/دریافت TCP را بر پایه میزبان خلاصه‌سازی کرده و خلاصه‌ای را به همراه سایر معیارهای کل سیستم به‌صورت تازه‌شونده چاپ می‌کند. .PP این ابزار از ردیابی پویای توابع ارسال/دریافت TCP هسته استفاده می‌کند و برای سازگاری با تغییرات هسته نیازمند به‌روزرسانی خواهد بود. .PP توابع ردیابی‌شده TCP معمولاً با نرخی کمتر از توابع به ازای هر بسته فراخوانی می‌شوند و بنابراین بار پردازشی کمتری دارند. داده‌های ردیابی‌شده درون هسته و با استفاده از یک نگاشت BPF خلاصه‌سازی می‌شوند تا بار پردازشی بیشتر کاهش یابد. در نرخ‌های بسیار بالای رویدادهای TCP، بار پردازشی همچنان ممکن است قابل سنجش باشد. برای جزئیات بیشتر بخش «بار پردازشی (OVERHEAD)» را ببینید. .PP از آنجا که این ابزار از BPF استفاده می‌کند، تنها کاربر ریشه (root) می‌تواند از آن استفاده کند. .SH "پیش‌نیازها (REQUIREMENTS)" CONFIG_BPF و bpftrace. .SH "مثال‌ها (EXAMPLES)" .TP خلاصه‌سازی توان عملیاتی TCP بر پایه نشست‌های فعال، با بازه تازه‌سازی ۱ ثانیه: # .B tcptop.bt .SH "فیلدها (FIELDS)" .TP loadavg: محتویات /proc/loadavg .TP PID شناسه فرآیند. .TP COMM نام فرآیند. .TP LADDR نشانی محلی (IPv4) و درگاه TCP .TP RADDR نشانی دوردست (IPv4) و درگاه TCP .TP LADDR6 نشانی مبدأ (IPv6) و درگاه TCP .TP RADDR6 نشانی مقصد (IPv6) و درگاه TCP .TP RX_KB کیلوبایت دریافتی .TP TX_KB کیلوبایت ارسالی .SH "بار پردازشی (OVERHEAD)" این ابزار تمام ارسال‌ها/دریافت‌ها در TCP را در لایه‌های بالایی پشته TCP/IP (نزدیک به برنامه کاربردی) ردیابی می‌کند که معمولاً با نرخی کمتر از توابع به ازای هر بسته فراخوانی می‌شوند و بار پردازشی را کاهش می‌دهند. این ابزار همچنین داده‌ها را درون هسته خلاصه‌سازی می‌کند تا بار پردازشی بیش از پیش کاهش یابد. این تکنیک‌ها کمک‌کننده‌اند، اما در نرخ‌های بالای ارسال/دریافت، برای نمونه حدود ۱۳٪ از یک هسته CPU در ۱۰۰ هزار رویداد در ثانیه، بار پردازشی ممکن است قابل سنجش باشد. برای پیدا کردن این نرخ، از funccount جهت شمارش kprobeهای موجود در ابزار استفاده کنید، چرا که بار پردازشی متناسب با این نرخ است. در برخی سرورهای عملیاتی نمونه مورد آزمایش، کل نرخ رویدادهای TCP بین ۴ تا ۱۵ هزار رویداد در ثانیه و بار پردازشی CPU در این نرخ‌ها بین ۰٫۵٪ تا ۲٫۰٪ از یک CPU متغیر بود. اگر نرخ ارسال/دریافت شما پایین است (مثلاً کمتر از ۱۰۰۰ در ثانیه)، انتظار می‌رود بار پردازشی ناچیز باشد؛ ابتدا در یک محیط آزمایشی بررسی کنید. .SH "منبع (SOURCE)" این ابزار برگرفته از bpftrace است. .IP https://github.com/bpftrace/bpftrace .PP همچنین در توزیع bpftrace به پرونده همراه _examples.txt که شامل نمونه نحوه استفاده، خروجی و توضیحات این ابزار است مراجعه کنید. .PP این یک نسخه bpftrace از ابزار bcc با همین نام است. ابزار bcc ممکن است گزینه‌ها و قابلیت‌های سفارشی‌سازی بیشتری ارائه دهد. .IP https://github.com/iovisor/bcc .SH "الهام‌گرفته از (INSPIRATION)" top(1) اثر William LeFebvre .SH "سیستم‌عامل (OS)" Linux .SH "پایداری (STABILITY)" ناپایدار \- در حال توسعه. .SH "نویسنده (AUTHOR)" Brendan Gregg .SH "همچنین ببینید (SEE ALSO)" tcpconnect.bt(8), tcpaccept.bt(8)