.TH "xdp-monitor" "8" "DECEMBER 12, 2022" "V1.6.3" "ابزار ساده پایش XDP" .SH "نام (NAME)" xdp-monitor \- ابزار ساده پایش XDP مبتنی بر BPF .SH "خلاصه دستور (SYNOPSIS)" .B xdp-monitor [\fIگزینه‌ها\fR] .PP xdp-monitor ابزاری است که با استفاده از زیرساخت tracepointهای BPF، آمارها و رویدادهای مختلف مرتبط با XDP را با کمترین بار پردازشی (overhead) ممکن پایش می‌کند. .PP توجه داشته باشید که به طور پیش‌فرض، جمع‌آوری آمار برای رویدادهای موفق تغییر مسیر (redirect) در XDP غیرفعال است؛ زیرا این کار بار پردازشی ردگیری BPF را به ازای هر بسته اضافه می‌کند که گرچه اندک است، اما می‌تواند منجر به افت کارایی پردازش بسته‌ها شود. .PP این ابزار بر زیرساخت tracepointهای خام BPF در هسته لینوکس متکی است. .PP اطلاعات بیشتر درباره مفهوم خروجی در هر دو حالت پیش‌فرض (مختصر) و با جزئیات کامل، در بخش \fIتوضیحات قالب خروجی\fP آورده شده است. .SS "اجرای xdp-monitor" .PP نحو اجرای xdp-monitor به صورت زیر است: .RS .nf \fCxdp-monitor [options] \fP .fi .RE .PP گزینه‌های پشتیبانی‌شده عبارتند از: .SS "-i, --interval " .PP تنظیم بازه زمانی (برحسب ثانیه) برای جمع‌آوری تمامی آمارها و نمایش آن‌ها در خروجی. .SS "-s, --stats" .PP فعال‌سازی آمار برای تغییر مسیرهای موفق. این گزینه برای ثبت تمام تغییر مسیرهای موفق، بار پردازشی ردگیری به ازای هر بسته به همراه دارد. .SS "-e, --extended" .PP اجرای xdp-monitor در حالت خروجی «گسترده» (extended). در صورت عدم تعیین، برنامه در حالت «مختصر» (terse) اجرا خواهد شد. در زمان اجرای برنامه، با فشردن کلیدهای ترکیبی Ctrl+\\ می‌توان حالت خروجی را تغییر داد. همچنین به بخش \fBتوضیحات قالب خروجی\fP در زیر مراجعه کنید. .SS "-v, --verbose" .PP فعال‌سازی گزارش‌دهی پرجزئیات. با دوبار مشخص کردن این گزینه، لاگ‌های پرجزئیات از کتابخانه‌های زیرین \fIlibxdp\fP و \fIlibbpf\fP نیز نمایش داده می‌شوند. .SS "--version" .PP نمایش نسخه برنامه و خروج. .SS "-h, --help" .PP نمایش خلاصه‌ای از گزینه‌های موجود. .SH "توضیحات قالب خروجی (OUTPUT FORMAT DESCRIPTION)" .PP به طور پیش‌فرض، آمار موفقیت تغییر مسیر غیرفعال است؛ برای فعال‌سازی از \fI\-\-stats\fP استفاده کنید. حالت خروجی مختصر پیش‌فرض است؛ حالت خروجی گسترده را می‌توان با گزینه خط فرمان \fI\-\-extended\fP فعال کرد. .PP می‌توان از سیگنال SIGQUIT (کلیدهای Ctrl + \\) برای تغییر پویای حالت خروجی در زمان اجرا استفاده کرد. .PP حالت مختصر حداکثر فیلدهای زیر را نمایش می‌دهد: .RS .nf \fCrx/s تعداد بسته‌های دریافتی در هر ثانیه redir/s تعداد بسته‌های با تغییر مسیر موفق در هر ثانیه err,drop/s مجموع خطاهای رخ‌داده در هر ثانیه (شامل بسته‌های دور ریخته‌شده) xmit/s تعداد بسته‌های ارسال‌شده روی دستگاه خروجی در هر ثانیه \fP .fi .RE .PP حالت خروجی پرجزئیات حداکثر فیلدهای زیر را نمایش می‌دهد: .RS .nf \fCFIELD DESCRIPTION receive نمایش تعداد بسته‌های دریافتی و خطاهای رخ‌داده هرگاه خطا یا دور ریختن بسته رخ دهد، جزئیات آمار خطا و بسته‌های دور ریخته‌شده به ازای هر پردازنده خطی نمایش می‌یابد. pkt/s - بسته‌های دریافتی در هر ثانیه drop/s - بسته‌های دور ریخته‌شده در هر ثانیه error/s - خطاهای رخ‌داده در هر ثانیه redirect - نمایش تعداد بسته‌های با تغییر مسیر موفق خطاهای رخ‌داده ذیل فیلد redirect_err بسط داده می‌شوند توجه کنید ارسال گزینه s- برای فعال‌سازی دارای بار به ازای هر بسته است redir/s - بسته‌های موفق در تغییر مسیر در هر ثانیه redirect_err نمایش تعداد بسته‌هایی که تغییر مسیر آن‌ها ناموفق بوده است کد خطا (errno) به تفکیک هر پردازنده ذیل این فیلد نمایش می‌یابد خطاهای شناخته‌شده عبارتند از: EINVAL: تغییر مسیر نامعتبر ENETDOWN: دستگاه مقصد تغییر مسیر خاموش یا غیرفعال است EMSGSIZE: طول بسته برای دستگاه مقصد بسیار بزرگ است EOPNOTSUPP: عملیات پشتیبانی نمی‌شود ENOSPC: عدم وجود فضا در ptr_ring نخ هسته cpumap error/s - بسته‌های ناموفق در تغییر مسیر در هر ثانیه enqueue to cpu N نمایش تعداد بسته‌های صف‌بندی‌شده در صف تجمیعی پردازنده N برای نمایش آمار صف‌بندی به ازای هر پردازنده به cpu:FROM->N بسط می‌یابد بسته‌های دریافتی می‌توانند به پردازنده‌ای که برنامه تغییر مسیر بسته‌ها را به آن ارسال می‌کند مرتبط شوند. pkt/s - بسته‌های صف‌بندی‌شده در ثانیه از سایر پردازنده‌ها به پردازنده N drop/s - بسته‌های دور ریخته‌شده هنگام صف‌بندی به پردازنده N bulk-avg - میانگین تعداد بسته‌های پردازش‌شده برای هر رویداد kthread نمایش تعداد بسته‌های پردازش‌شده در نخ هسته CPUMAP به ازای هر پردازنده بسته‌های مصرف‌شده از ptr_ring در نخ هسته، و xdp_stats آن (پس از فراخوانی برنامه bpf مربوط به CPUMAP) ذیل این بخش بسط می‌یابند. pkt/s - بسته‌های مصرف‌شده در ثانیه از ptr_ring drop/s - بسته‌های دور ریخته‌شده در ثانیه در نخ هسته sched - تعداد دفعاتی که نخ هسته ()schedule را فراخوانی کرده آمار xdp_stats (به تفکیک هر پردازنده نیز بسط می‌یابد) pass/s - شمارش XDP_PASS در اجرای برنامه CPUMAP drop/s - شمارش XDP_DROP در اجرای برنامه CPUMAP redir/s - شمارش XDP_REDIRECT در اجرای برنامه CPUMAP xdp_exception نمایش رویدادهای نقطه ردگیری xdp_exception این مورد می‌تواند به دلیل خطاهای داخلی درایور، اکشن‌های ناشناخته XDP یا تحریک صریح توسط کاربر با استفاده از XDP_ABORTED رخ دهد هر اکشن به همراه شمارش آن ذیل این فیلد نمایش داده می‌شود hit/s - تعداد دفعاتی که نقطه ردگیری در ثانیه فعال شده devmap_xmit نمایش رویدادهای نقطه ردگیری devmap_xmit این نقطه ردگیری برای ارسال‌های موفق روی دستگاه خروجی فراخوانی می‌شود اما این آمارها در حالت XDP عمومی در دسترس نیستند، بنابراین در حالت SKB از خروجی حذف خواهند شد xmit/s - تعداد بسته‌های ارسال‌شده در هر ثانیه drop/s - تعداد بسته‌های ناموفق در ارسال در هر ثانیه drv_err/s - تعداد خطاهای داخلی درایور در هر ثانیه bulk-avg - میانگین تعداد بسته‌های پردازش‌شده برای هر رویداد \fP .fi .RE .SH "اشکالات (BUGS)" .PP لطفاً هرگونه باگ را در گیت‌هاب گزارش دهید: \fIhttps://github.com/xdp-project/xdp-tools/issues\fP .SH "نویسنده (AUTHOR)" .PP ابزار اصلی xdp-monitor توسط Jesper Dangaard Brouer نوشته شد. سپس برای پشتیبانی از ویژگی‌های بیشتر توسط Kumar Kartikeya Dwivedi بازنویسی گردید. این صفحه راهنما توسط Kumar Kartikeya Dwivedi نگاشته شده است.