نحوه ی محدود کردن پهنای بانداستفاده شده توسط برنامه ها در لینوکس با Trickle
آیا تا به حال با شرایطی مواجه شده اید که یک برنامه که پهنای باند شبکه ی شما را تحت سلطه ی خود بگیرد. اگر شما با این شرایط مواجه شده اید، پس شما برنامه هایی را برای پهنای باند چک کرده اید.همچنین شما اگر یک ادمین سیستم یا فقط یک کاربر لینوکس باشید، نیاز دارید که سرعت دانلود و آپلود برنامه ها را بررسی کنید و مطمئن شوید که پهنای باند شبکه شما توسط یک برنامه ی تنها اشغال نشده است.
Trickle چیست؟
Trickle یک شیپر پهنای باند است که اجازه ی مدیریت سرعت آپلود و دانلود برنامه ها را می دهد و از اشغال شدن پهنای باند توسط یک برنامه جلوگیری می کند. در چند کلمه trickle به شما اجازه ی کنترل نرخ ترافیک هر برنامه را می دهد، برخلاف کنترل هر کاربر،که نمونه ای از شیپ کردن پهنای باند در یک محیط کلاینت سرور است.
Trickle چگونه کار می کند؟
علاوه براین Trickleبه ما کمک می کند که خصوصیاتی را روی هر برنامه تعریف کنیم،به طوری که هنگامیکه محدودیت کلی برای سیستم تعریف شده است،برنامه های با اولویت به ترتیب پهنای باند را به صورت خودکار دریافت می کنند.برای انجام این کار،trickle محدودیت پهنای باند را ست می کند، به روشی که داده ها از طریق سوکت ها با استفاده از ارتباط tcp ، ارسال و دریافت می شوند.
Trickleچه کاری انجام می دهد؟
تنها محدودیت،همانطور که صحبت کردیم،trickle با برنامه های کاربردی استاتیک و باینری هایی که SUID وSGID ست شده اند، کار نمی کند. Trickle بین این دو برنامه به عنوان یک پروکسی کار می کند.
ازاین رو trickle به دسترسی سوپر یوزر برای اجرا شدن نیاز ندارد، کاربران نیز می توانند ترافیک خودشان را محدود کنند. پس این ممکن است مطلوب نباشد، ما تمام محدودیت هایی را که کاربران سیستم نتوانند از آن تجاوز کنند را محدود خواهیم کرد.به عبارت دیگر کاربران هنوز قادر خواهند بود نرخ ترافیک خود را مدیریت کنند اما همیشه مرز ادمین سیستم حفظ خواهد شد.
در این مقاله در مورد محدود کردن پهنای باند شبکه با استفاده از برنامه های روی سرور لینوکس با trickle بحث خواهیم کرد.برای بوجود آوردن ترافیک لازم ، ما از ncftpput و ncftpget برروی کلاینت استفاده خواهیم کرد. و از vsftpd برروی سرور استفاده خواهیم کرد.
پیش نیازها
1.برای RHEL/Centos 7/6ریپوزیتوری epel را فعال کنید. پکیج های اضافی برای لینوکس که یک ریپوزیتوری رایگان و متن باز است که همراه با پروژه ی فدورا تعریف شده است،هردو پکیج trickle و ncftp در این ریپوزیتوری موجود هستند.
2.ncftp را به صورت زیر نصب کنید.
3.یک Ftp سرور را در یک سرور جداگانه پیاده کنید. لطفا توجه کنید که ذاتا ناامن است،آن به طور گسترده در مواردی که امنیت برای آپلود و دانلود نیازی نیست استفاده می شود.ما در این مقاله آنرا برای نشان دادن خصوصیات trickle استفاده می کنیم به دلیل اینکه آن نرخ انتقال داده را در stdout بروی کلاینت نشان می دهد، و ما در جای دیگری از آن استفاده نخواهیم کرد.
حالا فایل /etc/vsftpd/vsftpd.conf را ادیت خواهیم کرد:
سپس اطمینان حاصل کنید که vsftpd استارت شده باشد و آنرا فعال کنیدکه در زمان بوت بالا بیاید.
4.اگر شما ftpسرور را برروی RHEL/Centos با ssh key برای دسترسی ریموت تنظیم کردید،شما به یک اکانت دارای پسورد با دایرکتوری مناسب و پرمیشن فایل ها برای آپلود .و دانلود محتوای دایرکتوری home کاربر روت OUTSID نیاز خواهید داشت.
سپس با وارد کردن url در مرورگر می توانید به دایرکتوری home خود بروید،یک پنجره ی لاگین برای شما باز خواهد شد و که کاربرو پسورد سرور ftp تان را می خواهد.
پس از احراز هویت شما محتوای دایرکتوری home خود را خواهید دید. بعدا شما قادر خواهید بود که صفحه را ریفرش کرده و فایل های آپلود شده ای را که بعدا در دایرکتوری home خود قرار خواهید داد را ببینید.
نحوه ی نصب Trickle در لینوکس
1.trickle را با استفاده از yum و یا aptitude نصب کنید.
برای اطمینان از نصب، توجه کنید که پکیج ها آپدیت شده باشند.
2.بررسی کنید که trickle را باینری مورد نظر کار می کند.
همانطور که توضیح دادیم، trickle با باینری ها با استفاده از داینامیک و یا لایبرری ها ی شیرشده کار خواهد کرد.برای بررسی اینکه این ابزار چگونه با یک برنامه کار میکند،می توانیم از ابزار ldd استفاده کنیم،که ldd مخفف list dynamic dependencyاست. بخصوص، ما باید glibc را در لیست ldd داشته باشیم، برای اینکه آن دقیقا همان لایبرری ای است که کال های سیستم مربوط به ارتباطات از طریق سوکت ها را تعریف میکند.
دستور زیر را اجرا کنید.
خروجی
رشته ی بین براکت ها در خروجی ممکن است از سیستمی به سیستم دیگر و یا با اجرای هر دستور تغییر کند، چراکه آن آدرس حافظه را لود می کند.
اگر دستور بالا هیچ خروجی ای بر نگرداند، به این معنی است که باینری ای که اجرا شده است از libc استفاده نکرده است، و برای شیپ کردن پهنای باند در برخی موارد دچار مشکل خواهد شد.
آموزش نحوه ی استفاده ی trickle
بیشترین مورد استفاده ی trickle در مد standalone است. با استفاده از این روش، trickle به طور صریح برای تعریف سرعت دانلود و آپلود توسط برنامه ها استفاده می شود.همانطور که ما قبلا توضیح دادیم، ما همان برنامه را برای تست آپلود و دانلود استفاده خواهیم کرد.
اجراکردن Trickle در مد standalone
ما می خواهیم سرعت آپلود و دانلود را ببا trickle و بدون استفاده از آن مقایسه کنیم.گزینه ی –d به سرعت دانلود اشاره کرده و گزینه ی –u به آپلود اشاره دارد،علاوه بر این ما پرچم –s را برای اینکه trickle در مد standalone پیاده شود استفاده کنیم.
الگوی اولیه برای اجرا کردن trickle در مد standalone به صورت زیر است:
به منظور اجرای مثال های زیر مطمئن شوید که trickle و ncftp برروی کلاینت شما نصب شده است.
مثال 1:آپلود کردن فایل 2MB با tickle و بدون آن
ما از یک فایل pdf برای این کار استفاده می کنیم،شما ابتدا باید این فایل را با دستور زیر دانلود کنید:
الگوی آپلود کردن فایل به سرورFTP بدون trickle به صورت زیر است:
به طوریکه مسیر /remote_directoryمسیر آپلود دایرکتوری home کاربر است،و local_filename یک فایل در دایرکتوری جاری شما است.
بدون trickle ما یک پیک سرعت آپلودی برابر با 52.0MB/s می گیریم:
خروجی:
با استفاده از trickle،ما نرخ انتقال آپلود را به 5KB/s محدود می کنیم.قبل از اینکه فایل را آپلود کنیم،ما نیاز داریم که آنرا از دایرکتوری مقصد پاک کنیم،در غیر این صورت ncfp فرض خواهد کرد که فایل واقع در دایرکتوری همان فایلی است که ما می خواهیم و انتقال را انجام نخواهد داد:
سپس
خروجی
در مثال بالا ما می توانیم ببینیم که متوسط آپلود 5kB/s است.
مثال 2:دانلود کردن همان فایل 2MB ی با و بدون trickle
ابتدا باید به یاد داشته باشیم که فایل را پاک کنیم.
لطفا توجه داشته باشید که مثال زیر دانلود از سرور ریموت به دایرکتوری جاری کاربر می باشد.که در حقیقت با ‘.’ نشان داده شده است.
بدون trickle
خروجی
با trickle و محدودیت دانلودی برابر با 20KB/s:
خروجی
اجرا کردن trickle در مد سوپروایز شده یا مدیریت نشده
Trickle همچنین می تواند در مد مدیریت نشده پیاده شود،در زیر یک سری پارامترهای تعریف شده در /etc/trickled.conf می باشد.این فایل نحوه ی رفتار و مدیریت دیمون trickle را تعریف می کند.
علاوه براین،اگر ما می خواهیم تنظیمات کلی را استفاده کنیم، نیاز به استفاده از دستور trickled برای تمام اپلیکیشن ها داریم. این دستور دیمون را اجرا کرده و اجازه ی استفاده ی برنامه برای محدود کردن آپلود و دانلود را می دهد، بدون نیاز به اینکه هر بار آن تنظیمات را انجام دهیم.
به عنوان مثال:
ما نشان خواهیم داد که سرعت اپلود و دانلود هر برنامه ای به 30KB/s و 10KB/s محدود شود.
توجه داشته باشید که شما می توانید هر زمان ، اجرای دیمون trickled را به صورت زیر بررسی کنید.
خروجی
مثال 3:آپلود کردن فایل mp4 با حجم 19 MBبه سرور ftp با و بدون trickle
در این مثال ما می خواهیم یک ویدئو را دانلود کنیم،با استفاده از دستور زیر این فایل را دانلود خواهیم کرد.
در ابتدا ما trickle را با استفاده از دستور زیر استارت می کنیم.
بدون trickle
خروجی
با استفاده از trickle
خروجی
مثال 4:دانلود کردن همان فایل با و بدون trickle
همانند مثال 2 ما فایل را داخل دایرکتوری جاری دانلود خواهیم کرد.
بدون trickle
خروجی
با trickle
خروجی
نکته:توجه داشته باشید که دیمون استارت شده باشد. هیچ نیازی به ست کردن محدودیت اینتوال برای هر برنامه ندارید.
همانطور که پیشتر اشاره شد، می توانید با استفاده از فایل trickled.confآنرا به صورت سفارشی تنظیم کنید،یک بخش معمول در این فایل به این صورت است.
به طوریکه
[service]نام برنامه ای است که از پهنای باند استفاده می کند می باشد.
Priority اجازه می دهد که ما یک سرویس را با اولویت بالاتر نسبت به دیگری مشخص کنیم،بنابراین به یک برنامه تنها اجازه نمی دهد که کل پهنای باند را اشغال کند.
Time-Smoothing(به ثانیه) مدت اینتروال ای که trickled برای انتقال و دریافت داده به برنامه اجازه داده شده است را تعریف می کند. کوچکترین مقدارها(زیر 1 معمولا 0.1) مربوط به برنامه های interactive است و نتیجه به صورت جلسه ی پیوسته خواهد بود و بزرگترین مقدار ها (1-10)بهتر است برای برنامه هایی که نیاز به انتقال بالک دارد استفاده شود.اگر هیچ مقداری ست نشود به صورت پیش فرض 5 خواهد بود.
Length_Smoothing(به KB) به نظر شبیه time-smoothing می باشد، اما براساس طول عملیات I/O می باشد.به طور پیش فرض نیز 10KB است.
در زیر نمونه ای از فایل کانفیگ trickled در centos7 می باشد.
با استفاده از این تنظیمات trickled برای سرویس ها ی ftp و ssh برای انتقال فایل ها اولویت بندی خواهد کرد. نکته اینجاست که یک برنامه ی interactive مثل ssh از یک time-smoothing با مقدار کمتر از 1 استفاده می کند ، و سرویسی که انتقال فایل ها را به صورت بالک انجام می دهد مقدار 1 دارد.
آیا تا به حال با شرایطی مواجه شده اید که یک برنامه که پهنای باند شبکه ی شما را تحت سلطه ی خود بگیرد. اگر شما با این شرایط مواجه شده اید، پس شما برنامه هایی را برای پهنای باند چک کرده اید.همچنین شما اگر یک ادمین سیستم یا فقط یک کاربر لینوکس باشید، نیاز دارید که سرعت دانلود و آپلود برنامه ها را بررسی کنید و مطمئن شوید که پهنای باند شبکه شما توسط یک برنامه ی تنها اشغال نشده است.
Trickle چیست؟
Trickle یک شیپر پهنای باند است که اجازه ی مدیریت سرعت آپلود و دانلود برنامه ها را می دهد و از اشغال شدن پهنای باند توسط یک برنامه جلوگیری می کند. در چند کلمه trickle به شما اجازه ی کنترل نرخ ترافیک هر برنامه را می دهد، برخلاف کنترل هر کاربر،که نمونه ای از شیپ کردن پهنای باند در یک محیط کلاینت سرور است.
Trickle چگونه کار می کند؟
علاوه براین Trickleبه ما کمک می کند که خصوصیاتی را روی هر برنامه تعریف کنیم،به طوری که هنگامیکه محدودیت کلی برای سیستم تعریف شده است،برنامه های با اولویت به ترتیب پهنای باند را به صورت خودکار دریافت می کنند.برای انجام این کار،trickle محدودیت پهنای باند را ست می کند، به روشی که داده ها از طریق سوکت ها با استفاده از ارتباط tcp ، ارسال و دریافت می شوند.
Trickleچه کاری انجام می دهد؟
تنها محدودیت،همانطور که صحبت کردیم،trickle با برنامه های کاربردی استاتیک و باینری هایی که SUID وSGID ست شده اند، کار نمی کند. Trickle بین این دو برنامه به عنوان یک پروکسی کار می کند.
ازاین رو trickle به دسترسی سوپر یوزر برای اجرا شدن نیاز ندارد، کاربران نیز می توانند ترافیک خودشان را محدود کنند. پس این ممکن است مطلوب نباشد، ما تمام محدودیت هایی را که کاربران سیستم نتوانند از آن تجاوز کنند را محدود خواهیم کرد.به عبارت دیگر کاربران هنوز قادر خواهند بود نرخ ترافیک خود را مدیریت کنند اما همیشه مرز ادمین سیستم حفظ خواهد شد.
در این مقاله در مورد محدود کردن پهنای باند شبکه با استفاده از برنامه های روی سرور لینوکس با trickle بحث خواهیم کرد.برای بوجود آوردن ترافیک لازم ، ما از ncftpput و ncftpget برروی کلاینت استفاده خواهیم کرد. و از vsftpd برروی سرور استفاده خواهیم کرد.
پیش نیازها
1.برای RHEL/Centos 7/6ریپوزیتوری epel را فعال کنید. پکیج های اضافی برای لینوکس که یک ریپوزیتوری رایگان و متن باز است که همراه با پروژه ی فدورا تعریف شده است،هردو پکیج trickle و ncftp در این ریپوزیتوری موجود هستند.
2.ncftp را به صورت زیر نصب کنید.
کد:
[LEFT] # yum update && sudo yum install ncftp [On RedHat based systems] # aptitude update && aptitude install ncftp [On Debian based systems] [/LEFT]
کد:
[LEFT] [/LEFT] # yum update && yum install vsftpd [On RedHat based systems] # aptitude update && aptitude install vsftpd [On Debian based systems]
کد:
[LEFT] [/LEFT] anonymous_enable=NO local_enable=YES chroot_local_user=YES allow_writeable_chroot=YES
کد:
کد:
# systemctl start vsftpd [For systemd-based systems] # systemctl enable vsftpd # service vsftpd start [For init-based systems] # chkconfig vsftpd on
4.اگر شما ftpسرور را برروی RHEL/Centos با ssh key برای دسترسی ریموت تنظیم کردید،شما به یک اکانت دارای پسورد با دایرکتوری مناسب و پرمیشن فایل ها برای آپلود .و دانلود محتوای دایرکتوری home کاربر روت OUTSID نیاز خواهید داشت.
سپس با وارد کردن url در مرورگر می توانید به دایرکتوری home خود بروید،یک پنجره ی لاگین برای شما باز خواهد شد و که کاربرو پسورد سرور ftp تان را می خواهد.
کد:
ftp://192.168.0.15
پس از احراز هویت شما محتوای دایرکتوری home خود را خواهید دید. بعدا شما قادر خواهید بود که صفحه را ریفرش کرده و فایل های آپلود شده ای را که بعدا در دایرکتوری home خود قرار خواهید داد را ببینید.
نحوه ی نصب Trickle در لینوکس
1.trickle را با استفاده از yum و یا aptitude نصب کنید.
برای اطمینان از نصب، توجه کنید که پکیج ها آپدیت شده باشند.
کد:
# yum -y update && yum install trickle [On RedHat based systems] # aptitude -y update && aptitude install trickle [On Debian based systems]
همانطور که توضیح دادیم، trickle با باینری ها با استفاده از داینامیک و یا لایبرری ها ی شیرشده کار خواهد کرد.برای بررسی اینکه این ابزار چگونه با یک برنامه کار میکند،می توانیم از ابزار ldd استفاده کنیم،که ldd مخفف list dynamic dependencyاست. بخصوص، ما باید glibc را در لیست ldd داشته باشیم، برای اینکه آن دقیقا همان لایبرری ای است که کال های سیستم مربوط به ارتباطات از طریق سوکت ها را تعریف میکند.
دستور زیر را اجرا کنید.
کد:
# ldd $(which [binary]) | grep libc.so[LEFT] [/LEFT] # ldd $(which ncftp) | grep libc.so
کد:
# libc.so.6 => /lib64/libc.so.6 (0x00007efff2e6c000)
رشته ی بین براکت ها در خروجی ممکن است از سیستمی به سیستم دیگر و یا با اجرای هر دستور تغییر کند، چراکه آن آدرس حافظه را لود می کند.
اگر دستور بالا هیچ خروجی ای بر نگرداند، به این معنی است که باینری ای که اجرا شده است از libc استفاده نکرده است، و برای شیپ کردن پهنای باند در برخی موارد دچار مشکل خواهد شد.
آموزش نحوه ی استفاده ی trickle
بیشترین مورد استفاده ی trickle در مد standalone است. با استفاده از این روش، trickle به طور صریح برای تعریف سرعت دانلود و آپلود توسط برنامه ها استفاده می شود.همانطور که ما قبلا توضیح دادیم، ما همان برنامه را برای تست آپلود و دانلود استفاده خواهیم کرد.
اجراکردن Trickle در مد standalone
ما می خواهیم سرعت آپلود و دانلود را ببا trickle و بدون استفاده از آن مقایسه کنیم.گزینه ی –d به سرعت دانلود اشاره کرده و گزینه ی –u به آپلود اشاره دارد،علاوه بر این ما پرچم –s را برای اینکه trickle در مد standalone پیاده شود استفاده کنیم.
الگوی اولیه برای اجرا کردن trickle در مد standalone به صورت زیر است:
کد:
# trickle -s -d [download rate in KB/s] -u [upload rate in KB/s]
به منظور اجرای مثال های زیر مطمئن شوید که trickle و ncftp برروی کلاینت شما نصب شده است.
مثال 1:آپلود کردن فایل 2MB با tickle و بدون آن
ما از یک فایل pdf برای این کار استفاده می کنیم،شما ابتدا باید این فایل را با دستور زیر دانلود کنید:
کد:
# wget http://linux-training.be/files/books/LinuxFun.pdf
الگوی آپلود کردن فایل به سرورFTP بدون trickle به صورت زیر است:
کد:
# ncftpput -u username -p password 192.168.0.15 /remote_directory local-filename
به طوریکه مسیر /remote_directoryمسیر آپلود دایرکتوری home کاربر است،و local_filename یک فایل در دایرکتوری جاری شما است.
بدون trickle ما یک پیک سرعت آپلودی برابر با 52.0MB/s می گیریم:
کد:
# ncftpput -u username -p password 192.168.0.15 /testdir LinuxFun.pdf
خروجی:
کد:
LinuxFun.pdf: 2.79 MB 52.02 MB/s
با استفاده از trickle،ما نرخ انتقال آپلود را به 5KB/s محدود می کنیم.قبل از اینکه فایل را آپلود کنیم،ما نیاز داریم که آنرا از دایرکتوری مقصد پاک کنیم،در غیر این صورت ncfp فرض خواهد کرد که فایل واقع در دایرکتوری همان فایلی است که ما می خواهیم و انتقال را انجام نخواهد داد:
کد:
# rm /absolute/path/to/destination/directory/LinuxFun.pdf
سپس
کد:
# trickle -s -u 5 ncftpput -u username -p password 111.111.111.111 /testdir LinuxFun.pdf
خروجی
کد:
LinuxFun.pdf: 2.79 MB 4.94 kB/s
در مثال بالا ما می توانیم ببینیم که متوسط آپلود 5kB/s است.
مثال 2:دانلود کردن همان فایل 2MB ی با و بدون trickle
ابتدا باید به یاد داشته باشیم که فایل را پاک کنیم.
کد:
# rm /absolute/path/to/source/directory/LinuxFun.pdf
لطفا توجه داشته باشید که مثال زیر دانلود از سرور ریموت به دایرکتوری جاری کاربر می باشد.که در حقیقت با ‘.’ نشان داده شده است.
بدون trickle
کد:
# ncftpget -u username -p password 111.111.111.111 . /testdir/LinuxFun.pdf
خروجی
کد:
LinuxFun.pdf: 2.79 MB 260.53 MB/s
با trickle و محدودیت دانلودی برابر با 20KB/s:
کد:
# trickle -s -d 30 ncftpget -u username -p password 111.111.111.111 . /testdir/LinuxFun.pdf
خروجی
کد:
LinuxFun.pdf: 2.79 MB 17.76 kB/s
اجرا کردن trickle در مد سوپروایز شده یا مدیریت نشده
Trickle همچنین می تواند در مد مدیریت نشده پیاده شود،در زیر یک سری پارامترهای تعریف شده در /etc/trickled.conf می باشد.این فایل نحوه ی رفتار و مدیریت دیمون trickle را تعریف می کند.
علاوه براین،اگر ما می خواهیم تنظیمات کلی را استفاده کنیم، نیاز به استفاده از دستور trickled برای تمام اپلیکیشن ها داریم. این دستور دیمون را اجرا کرده و اجازه ی استفاده ی برنامه برای محدود کردن آپلود و دانلود را می دهد، بدون نیاز به اینکه هر بار آن تنظیمات را انجام دهیم.
به عنوان مثال:
کد:
# trickled -d 50 -u 10
ما نشان خواهیم داد که سرعت اپلود و دانلود هر برنامه ای به 30KB/s و 10KB/s محدود شود.
توجه داشته باشید که شما می توانید هر زمان ، اجرای دیمون trickled را به صورت زیر بررسی کنید.
کد:
# ps -ef | grep trickled | grep -v grep
خروجی
کد:
root 16475 1 0 Dec24 ? 00:00:04 trickled -d 50 -u 10
مثال 3:آپلود کردن فایل mp4 با حجم 19 MBبه سرور ftp با و بدون trickle
در این مثال ما می خواهیم یک ویدئو را دانلود کنیم،با استفاده از دستور زیر این فایل را دانلود خواهیم کرد.
کد:
# wget http://media2.ldscdn.org/assets/missionary/our-people-2014/2014-00-1460-he-is-the-gift-360p-eng.mp4
در ابتدا ما trickle را با استفاده از دستور زیر استارت می کنیم.
کد:
# trickled -d 30 -u 10
بدون trickle
کد:
# ncftpput -u username -p password 192.168.0.15 /testdir 2014-00-1460-he-is-the-gift-360p-eng.mp4
خروجی
کد:
2014-00-1460-he-is-the-gift-360p-eng.mp4: 18.53 MB 36.31 MB/s
با استفاده از trickle
کد:
# trickle ncftpput -u username -p password 192.168.0.15 /testdir 2014-00-1460-he-is-the-gift-360p-eng.mp4
خروجی
کد:
2014-00-1460-he-is-the-gift-360p-eng.mp4: 18.53 MB 9.51 kB/s
مثال 4:دانلود کردن همان فایل با و بدون trickle
همانند مثال 2 ما فایل را داخل دایرکتوری جاری دانلود خواهیم کرد.
بدون trickle
کد:
# ncftpget -u username -p password 192.168.0.15 . /testdir/2014-00-1460-he-is-the-gift-360p-eng.mp4
خروجی
کد:
2014-00-1460-he-is-the-gift-360p-eng.mp4: 18.53 MB 108.34 MB/s
با trickle
کد:
# trickle ncftpget -u username -p password 111.111.111.111 . /testdir/2014-00-1460-he-is-the-gift-360p-eng.mp4
خروجی
کد:
2014-00-1460-he-is-the-gift-360p-eng.mp4: 18.53 MB 29.28 kB/s
نکته:توجه داشته باشید که دیمون استارت شده باشد. هیچ نیازی به ست کردن محدودیت اینتوال برای هر برنامه ندارید.
همانطور که پیشتر اشاره شد، می توانید با استفاده از فایل trickled.confآنرا به صورت سفارشی تنظیم کنید،یک بخش معمول در این فایل به این صورت است.
کد:
[LEFT] [/LEFT] [service] Priority = <value> Time-Smoothing = <value> Length-Smoothing = <value>
[service]نام برنامه ای است که از پهنای باند استفاده می کند می باشد.
Priority اجازه می دهد که ما یک سرویس را با اولویت بالاتر نسبت به دیگری مشخص کنیم،بنابراین به یک برنامه تنها اجازه نمی دهد که کل پهنای باند را اشغال کند.
Time-Smoothing(به ثانیه) مدت اینتروال ای که trickled برای انتقال و دریافت داده به برنامه اجازه داده شده است را تعریف می کند. کوچکترین مقدارها(زیر 1 معمولا 0.1) مربوط به برنامه های interactive است و نتیجه به صورت جلسه ی پیوسته خواهد بود و بزرگترین مقدار ها (1-10)بهتر است برای برنامه هایی که نیاز به انتقال بالک دارد استفاده شود.اگر هیچ مقداری ست نشود به صورت پیش فرض 5 خواهد بود.
Length_Smoothing(به KB) به نظر شبیه time-smoothing می باشد، اما براساس طول عملیات I/O می باشد.به طور پیش فرض نیز 10KB است.
در زیر نمونه ای از فایل کانفیگ trickled در centos7 می باشد.
کد:
[ssh] Priority = 1 Time-Smoothing = 0.1 Length-Smoothing = 2 [ftp] Priority = 2 Time-Smoothing = 1 Length-Smoothing = 3