IFPPS(8) netsniff-ng toolkit IFPPS(8)

ifpps - آمار شبکه و سیستم به سبک ابزار top

ifpps { [options] | [device] }

ابزار ifpps ابزار کمکی کوچکی است که به صورت دوره‌ای آمار شبکه و سیستم را به سبک برنامه top از کرنل استخراج و ارائه می‌کند. ifpps داده‌های خود را مستقیماً از فایل‌های procfs جمع‌آوری می‌کند و از هیچ کتابخانه پایش در فضای کاربری (user space) که ممکن است آمار را تحت بار ترافیکی سنگین تحریف کنند، استفاده نمی‌نماید.

برای نمونه، سناریوی زیر را در نظر بگیرید: دو رایانه لینوکسی که مستقیماً به یکدیگر متصل شده‌اند با پردازنده‌های Intel Core 2 Quad Q6600 2.40GHz، ۴ گیگابایت حافظه رم و یک کارت شبکه اترنت گیگابیتی Intel 82566DC-2 برای ارزیابی عملکرد به کار گرفته می‌شوند. یک ماشین بسته‌های شبکه ۶۴ بایتی را با استفاده از مولد بسته در فضای کرنل (pktgen) با حداکثر نرخ بسته ممکن تولید می‌کند. ماشین دیگر آمار بسته‌های شبکه ورودی را با استفاده از ۱) iptraf(8) و ۲) ifpps نمایش می‌دهد.

ابزار iptraf که بر پایه pcap(3) است، میانگین نرخ بسته ۲۴۶٬۰۰۰ بسته بر ثانیه (pps) را نشان می‌دهد در حالی که ifpps میانگین نرخ ۱٬۳۷۸٬۰۰۰ بسته بر ثانیه را نشان می‌دهد. بنابراین، به دلیل کپی‌های بسته و واگذاری محاسبه آمار به فضای کاربر، خطای اندازه‌گیری تقریباً ۴۶۰ درصدی رخ می‌دهد. ابزارهایی مانند iptraf ممکن است اطلاعات بیشتری مانند آمار TCP به ازای هر جریان (flow) نمایش دهند (علت استفاده از کتابخانه pcap). این قابلیت در ifpps امکان‌پذیر نیست زیرا تمرکز آن بر آمار کلی شبکه است؛ آماری که حتی تحت بار بسته بسیار سنگین نیز کاملاً قابل اتکا باشد.

ابزار ifpps همچنین به طور دوره‌ای بار پردازنده (CPU load)، وقفه‌ها و داده‌های وقفه نرم‌افزاری را به ازای هر بازه نمونه‌برداری و همچنین وقفه‌های کل را برای هر پردازنده نمایش می‌دهد. در صورتی که تعداد CPUها از ۵ بیشتر باشد یا بیشتر از تعداد مشخص‌شده توسط کاربر با گزینه خط فرمان -n باشد، ifpps تنها این تعداد از پربارترین پردازنده‌ها (top heavy hitters) را نشان می‌دهد. پرمصرف‌ترین CPU با علامت «+» مشخص می‌شود. کم‌مصرف‌ترین پردازنده همیشه نمایش داده می‌شود و با علامت «-» علامت‌گذاری می‌گردد. علاوه بر این، میانگین همه داده‌های فوق به ازای هر CPU نشان داده می‌شود. به صورت اختیاری می‌توان مقادیر میانه (median) را با استفاده از گزینه -m خط فرمان مشاهده کرد.

ابزار ifpps همچنین مستقیماً از قالب نمونه داده gnuplot(1) پشتیبانی می‌کند. این ویژگی رسم نمودارهای gnuplot از سری‌های زمانی ifpps را بسیار ساده می‌سازد.

دستگاه شبکه جهت دریافت آمار از آن، برای مثال eth0، wlan0.
تنظیم حداکثر تعداد پردازنده‌های پربار (از نظر زمان صرف‌شده در حالت سیستم/کاربر) برای نمایش در حالت ncurses؛ پیش‌فرض 10 است.
بازه به‌روزرسانی آمار بر حسب میلی‌ثانیه؛ پیش‌فرض 1000ms است.
ارسال (یک‌باره) داده‌های ncurses به ترمینال به عنوان داده‌های آماده برای gnuplot(1).
خروجی مداوم داده‌های ترمینال پس از هر بازه نوسازی. این گزینه تنها در صورتی فعال است که گزینه -c مشخص شده باشد. برای -l معمولاً پیشنهاد می‌شود که خروجی به فایلی هدایت شود که بعداً با gnuplot(1) پردازش گردد.
نمایش مقادیر میانه (median) در میان تمامی پردازنده‌ها برای بار CPU، وقفه‌ها (در هر بازه و به صورت مطلق) و وقفه‌های نرم‌افزاری.
صرف‌نظر کردن از چاپ هدر CSV. این گزینه تنها در صورت ارائه -c در دسترس است.
فعال‌سازی حالت بی‌قید یا شنود ناشناس (promiscuous mode) برای دستگاه شبکه مشخص‌شده.
نمایش درصد توان عملیاتی فعلی در مقایسه با نرخ اسمی و نظری خط شبکه.
نادیده گرفتن و جلوگیری از هشدارهای احتمالی در خروجی ncurses، برای مثال درباره بازه نمونه‌برداری بسیار کوتاه که می‌تواند باعث افت کارایی شود.
نمایش اطلاعات نسخه برنامه.
نمایش راهنمای کاربری.

خروجی پیش‌فرض ncurses برای دستگاه eth0.
خروجی ncurses برای دستگاه eth0 در حالت promiscuous.
خروجی مداوم ترمینال برای دستگاه wlan0 در حالت promiscuous.

روی کارت‌های شبکه 10Gbit/s یا بالاتر، آمار دریافت و ارسال معمولاً در بازه‌های طولانی‌تر از ۱ ثانیه تجمیع می‌شوند. بنابراین برای چنین کارت‌هایی شاید توصیه شود بازه تجمیع بالاتری تنظیم گردد.

ابزار ifpps تحت مجوز GNU GPL نسخه 2.0 منتشر شده است.

ابزار ifpps در ابتدا برای مجموعه ابزار netsniff-ng توسط Daniel Borkmann نوشته شد. نگهداری آن در حال حاضر توسط Tobias Klauser <tklauser@distanz.ch> و Daniel Borkmann <dborkma@tik.ee.ethz.ch> انجام می‌شود.

netsniff-ng(8), trafgen(8), mausezahn(8), bpfc(8), flowtop(8), astraceroute(8), curvetun(8)

صفحه راهنما توسط Daniel Borkmann نوشته شده است.

این صفحه بخشی از پروژه مجموعه ابزارهای netsniff-ng لینوکس است. توضیحات مربوط به پروژه و اطلاعات گزارش خطا را می‌توان در http://netsniff-ng.org یافت.

03 March 2013 Linux