| FQ_CoDel(8) | Linux | FQ_CoDel(8) |
نام (NAME)
tc-fq_codel - صفبندی عادلانه (FQ) همراه با تاخیر کنترلشده (CoDel)
خلاصه دستور (SYNOPSIS)
tc qdisc ... fq_codel [ limit PACKETS ] [ flows NUMBER ] [ target TIME ] [ interval TIME ] [ quantum BYTES ] [ ecn | noecn ] [ ce_threshold TIME ] [ ce_threshold_selector VALUE/MASK ] [ memory_limit BYTES ]
توضیحات (DESCRIPTION)
الگوریتم FQ_Codel (صفبندی عادلانه همراه با تاخیر کنترلشده یا Fair Queuing Controlled Delay) یک انضباط صفبندی است که صفبندی عادلانه (Fair Queuing) را با طرح مدیریت فعال صف CoDel (AQM) ترکیب میکند. FQ_Codel از یک مدل تصادفی برای دستهبندی بستههای ورودی به جریانهای مختلف استفاده میکند و جهت تخصیص سهمی عادلانه از پهنای باند به تمامی جریانهای استفادهکننده از صف به کار میرود. هر یک از این جریانها توسط انضباط صفبندی CoDel مدیریت میشود. با توجه به اینکه CoDel در ساختار داخلی خود از صف FIFO استفاده میکند، از تغییر ترتیب بستهها (reordering) در یک جریان جلوگیری میشود.
پارامترها (PARAMETERS)
limit
دارای معنایی مشابه با codel است و حد نهایی و سختگیرانه بر روی اندازه واقعی صف به شمار میرود. هنگامی که این حد تکمیل شود، بستههای ورودی جدید دور ریخته (drop) میشوند. مقدار پیشفرض ۱۰۲۴۰ بسته است.
memory_limit
محدودیتی بر تعداد کل بایتهایی که میتوانند در این نمونه از FQ-CoDel در صف قرار گیرند تعیین میکند. مقداری که کمتر باشد میان حد بستهای پارامتر limit و حد حافظه اعمال خواهد شد. مقدار پیشفرض ۳۲ مگابایت (32 MB) است.
flows
تعداد جریانهایی است که بستههای ورودی به آنها دستهبندی میشوند. به دلیل ماهیت تصادفی درهمسازی (hashing)، ممکن است چندین جریان در یک شیار (slot) مشترک قرار گیرند. جریانهای جدیدتر نسبت به جریانهای قدیمیتر اولویت دارند. این پارامتر فقط در زمان بارگذاری قابل تنظیم است، زیرا حافظه باید به جدول درهمسازی تخصیص یابد. مقدار پیشفرض ۱۰۲۴ است.
target
دارای معنایی مشابه با codel است و کمینه تاخیر قابلقبول صف ماندگار/دائمی (standing/persistent queue delay) است. این کمینه تاخیر با ردیابی کمترین تاخیر صف محلی که بستهها تجربه میکنند مشخص میشود. مقدار پیشفرض 5ms است.
interval
دارای معنایی مشابه با codel است و برای اطمینان از کهنه نشدن مقدار کمینه تاخیر اندازهگیریشده استفاده میشود. کمینه تاخیر باید در آخرین دوره زمانی به طول interval تجربه شده باشد. این مقدار باید در حدود بدترین حالت زمان رفت و برگشت (RTT) از گلوگاه تنظیم شود تا نقاط انتهایی فرصت کافی برای واکنش نشان دادن داشته باشند. مقدار پیشفرض 100ms است.
quantum
تعداد بایتهایی است که بهعنوان «کسری» (deficit) در الگوریتم صفبندی عادلانه استفاده میشود. مقدار پیشفرض روی ۱۵۱۴ بایت تنظیم شده است که برابر با MTU اترنت به اضافه ۱۴ بایت طول سرآیند سختافزاری است.
ecn | noecn
دارای معنایی مشابه با codel است و میتواند برای نشانهگذاری بستهها بهجای دور ریختن آنها استفاده شود. اگر ecn فعال شده باشد، میتوان از noecn برای غیرفعال کردن آن استفاده کرد و برعکس. بر خلاف codel، گزینه ecn بهطور پیشفرض فعال است.
ce_threshold
آستانهای تعیین میکند که بالاتر از آن، تمامی بستهها با علامت تجربه ازدحام ECN (Congestion Experienced) نشانهگذاری میشوند. این قابلیت برای الگوریتمهای کنترل ازدحام به سبک DCTCP که نیازمند نشانهگذاری در آستانههای صف بسیار کمعمق هستند کاربرد دارد.
ce_threshold_selector
فیلتری تعیین میکند تا قابلیت ce_threshold تنها به زیرمجموعهای از ترافیک مشاهدهشده توسط qdisc اعمال گردد. در صورت تنظیم، مقدار MASK بهصورت AND بیتی بر روی بایت diffserv/ECN سرآیند IP اعمال میشود و تنها در صورتی که نتیجه این ماسک برابر با VALUE باشد، منطق ce_threshold بر روی بسته اعمال خواهد شد.
drop_batch
حداکثر تعداد بستههایی را تعیین میکند که هنگام فراتر رفتن از حد limit یا memory_limit دور ریخته میشوند. مقدار پیشفرض ۶۴ است.
مثالها (EXAMPLES)
# tc qdisc add dev eth0 root fq_codel
# tc -s qdisc show
qdisc fq_codel 8002: dev eth0 root refcnt 2 limit 10240p flows 1024 quantum 1514
target 5.0ms interval 100.0ms ecn
Sent 428514 bytes 2269 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
maxpacket 256 drop_overlimit 0 new_flow_count 0 ecn_mark 0
new_flows_len 0 old_flows_len 0
# tc qdisc add dev eth0 root fq_codel limit 2000 target 3ms interval 40ms noecn
# tc -s qdisc show
qdisc fq_codel 8003: dev eth0 root refcnt 2 limit 2000p flows 1024 quantum 1514
target 3.0ms interval 40.0ms
Sent 2588985006 bytes 1783629 pkt (dropped 0, overlimits 0 requeues 34869)
backlog 0b 0p requeues 34869
maxpacket 65226 drop_overlimit 0 new_flow_count 73 ecn_mark 0
new_flows_len 1 old_flows_len 3
همچنین ببینید (SEE ALSO)
نویسندگان (AUTHORS)
صفبندی FQ_CoDel توسط Eric Dumazet پیادهسازی شده است. این صفحه راهنما توسط Vijay Subramanian نوشته شده است. لطفاً اصلاحات و گزارشها را به فهرست پستی شبکه لینوکس به نشانی <netdev@vger.kernel.org> ارسال فرمایید.
| 4 June 2012 | iproute2 |