اطلاعیه

بستن
هنوز اعلام نشده است.

نحوه تست کردن ظرفیت شبکه با استفاده از ابزار iperf3 در لینوکس

بستن
X
  • فیلتر کردن
  • زمان
  • نمایش
پاک کردن همه
پست های جدید

  • نحوه تست کردن ظرفیت شبکه با استفاده از ابزار iperf3 در لینوکس

    iperf3 یک برنامه رایگان open source، چند پلتفرمه و کامند لاینی میباشد و برای اندازه گیری real time ظرفیت شبکه در لینوکس مورد استفاده قرار میگیرد. این ابزار یکی از ابزارهای قدرتمند برای تست ماکزیمم پهنای باندی که در شبکه های ip (از IPv4 و IPv6 پشتیبانی میکند) بتوان به دست آورد، مورد استفاده قرار میگیرد.

    با استفاده از iperf شما میتوانید چندین پارامتر مربوط به timing، buffer و پرتکل هایی همچون TCP, UDP, SCTP را کنترل و تنظیم کنید. این ابزار برای عملیات tune کردن کارایی شبکه بسیار پرکاربرد است.

    به منظور دریافت حداکثر کارایی شبکه، شما به افزایش throughput (ظرفیت) و latency (تاخیر) ظرفیت های دریافت و ارسال شبکه تان نیاز دارید. به هر حال قبل از اینکه شما بتوانید tuning واقعی را انجام دهید نیاز به انجام یکسری تست برای جمع آوری آمارهای کارایی کلی شبکه که شما را در پروسه tune کردن راهنمایی خواهد کرد، نیاز خواهید داشت.

    نتایج این دستور شامل فواصل زمانی به ثانیه، دیتای انتقال یافته، پهنای باند (سرعت انتقال)، از دست رفتن دیتا (پکت لاست) و دیگر پارامترهای مفید در کارایی شبکه میباشد. این ابزار به صورت اساسی برای کمک در tune کردن ارتباطات TCP از بستر یک مسیر خاص طراحی شده و این علتی است که ما در این پست روی آن تمرکز خواهیم کرد.


    تجهیزات مورد نیاز :
    • دو کامپیوتر شبکه بندی شده که روی هر دو iperf3 نصب است.


    نحوه نصب iperf3 در سیستم عامل های Linux

    قبل از هر کاری شما باید روی هر دو ماشین مورد نظر iperf3 را نصب کنید. با توجه به اینکه iperf3 در ریپازیتوری های رسمی در اکثر توزیع های لینوکسی رایج موجود هستند نصب این پکیج کاری آسان است، و تنها با استفاده از یک پکیج منیجر همانند زیر آنرا نصب کرد.
    کد PHP:
    sudo apt install iperf3    #Debian/Ubuntu
    sudo yum install iperf3    #RHEL/CentOS
    sudo dnf install iperf3    #Fedora 22+ 
    به محض اینکه شما iperf3 را روی هر دو ماشین نصب کردید، میتوانید کار تست throughput شبکه را شروع کنید.



    نحوه تست Throughput شبکه بین سرورهای Linux

    ابتدا به ماشین ریموتی که به عنوان سرور از آن استفاده خواهید کرد متصل شده و iperf3 را با استفاده از آپشن -s در مد سرور اجرا کنید. این ابزار به صورت پیش فرض روی پورت 5201 در حال listen میباشد.

    شما میتوانید برای گزارشات از فرمت دلخواه خود (k, m, g برای Kbits, Mbits, Gbits یا K, M, G برای KBytes, Mbytes, Gbytes) با استفاده از آپشن -f همانند زیر استفاده کنید.
    کد PHP:
    iperf3 --f K 
    اگر پورت 5201 توسط برنامه دیگری روی سرور استفاده میشود شما میتوانید پورت متفاوتی را (مثلا 3000) با استفاده از آپشن -p همانند زیر استفاده کنید.
    کد PHP:
    iperf3 --p 3000 
    به صورت دلخواه شما میتوانید سرور را به عنوان یک سرویس با استفاده از آپشن -D اجرا کنید و پیغام های سرور را روی یک log فایل همانند زیر ذخیره کنید.
    کد PHP:
    iperf3 --iperf3log 
    سپس روی ماشین لوکال تان که میخواهید به عنوان client از آن استفاده کنید (که در حقیقت معیار سنجش واقعی توسط این سرور صورت میگیرد) دستور iperf را در مد client با استفاده از آپشن -c اجرا کنید و آدرس هاستی که سرور روی آن در حال اجراست را مشخص نمایید (که میتوانید ip آدرس، دامین یا host name آنرا استفاده کنید).
    کد PHP:
    iperf3 -c 192.168.10.1 -f K 
    بعد از حدود 18 تا 20 ثانیه، کلاینت باید به کار خود خاتمه دهد و نتایجی شامل میانگین throughput را برای تست و سنجش همانند تصویر زیر ایجاد کند.
    برای دیدن سایز بزرگ روی عکس کلیک کنید  نام: Test-Network-Throughput-Servers-1.png مشاهده: 1 حجم: 33.0 کیلو بایت


    برای دیدن سایز بزرگ روی عکس کلیک کنید  نام: Test-Network-Throughput-Client-2.png مشاهده: 1 حجم: 33.6 کیلو بایت




    نکته : از نتایج فراهم آمده همانطور که در تصویر بالا میبینید، تنوعی از مقادیر از server و client موجود است اما شما همیشه باید نتایج به دست آمده از iperf ماشین client در هر تستی که انجام میدهید بررسی و استفاده کنید.



    نحوه اجرا کردن تست پیشرفته Throughput در Linux

    یکسری گزینه های خاص کلاینت وجود دارند که میتوان با استفاده از آنها همانند آنچه که در زیر توضیح داده شده میتوان تست های پیشرفته را پیاده سازی کرد. یکی از فاکتورهای مهم که میزان دیتای در شبکه روی مدت زمان داده شده را مشخص میکند، سایز TCP میباشد، که در tune کردن ارتباطات TCP مهم است. شما میتوانید سایز آن/سایز بافر سوکت را با استفاده از آپشن -w همانند زیر تعریف کنید.
    کد PHP:
    iperf3 -c 192.168.10.1 -f K -w 500K 
    برای اجرا کردن آن در مد reverse که سرور ارسال میکند و کلاینت دریافت میکند میتوانید از آپشن -R همانند زیر استفاده کنید.
    کد PHP:
    iperf3 -c 192.168.10.1 -f K -w 500K -
    برای اجرا کردن یک تست دوطرفه، به این معنا که شما پهنای باند را در هر دو جهت به صورت همزمان اندازه گیری کنید، باید از آپشن -d استفاده کنید.
    کد PHP:
    iperf3 -c 192.168.10.1 -f K -w 500K -
    اگر شما بخواهید که نتایج سرور را در خروجی کلاینت دریافت کنید باید از آپشن --get-server-output استفاده کنید.
    کد PHP:
    iperf3 -c 192.168.10.1 -f K -w 500K ---get-server-output 
    برای دیدن سایز بزرگ روی عکس کلیک کنید  نام: get-server-results-in-client-output-1.png مشاهده: 1 حجم: 35.4 کیلو بایت




    برای دیدن سایز بزرگ روی عکس کلیک کنید  نام: get-server-results-in-client-output-2.png مشاهده: 1 حجم: 34.8 کیلو بایت



    همچنین امکان تعریف تعداد stream های به صورت موازی برای کلاینت (در این مثال 2) وجود دارد که همزمان و با استفاده از آپشن -P انجام میشود.
    کد PHP:
    iperf3 -c 192.168.10.1 -f K -w 500K -P 2 
    برای اطلاعات بیشتر صفحه راهنمای iperf3 را مشاهده نمایید.
    کد PHP:
    man iperf3 
    iperf3 Homepage : https://iperf.fr




    به خاطر داشته باشید که همیشه قبل از اینکه اقدام به tune کردن واقعی شبکه خود داشته باشید، تست های کارایی network را پیاده سازی کنید. iperf3 یک ابزار قدرتمند میباشد که برای اجرا کردن تست های throughput شبکه بسیار مفید است. در صورتی که درباره این ابزار ترفندی میشناسید و یا با توجه به مباحث مطرح شده در پست بالا سوال یا نظری دارید آنرا با ما به اشتراک بگذارید.
    ویرایش توسط Habili : http://linux-zone.org/forums/member/5-habili در ساعت 10-09-2018, 12:49 PM
پردازش ...
X
کانال تلگرام منطقه لینوکسی ها