Бывает возникает задача организовать нарезку канала или настроить QoS. Информации на эту тему в интернете полно, но мало где рассказывается о том, как правильно рассчитать размер очереди, параметры для RED/GRED для определенной пропускной способности канала. Это и послужило написанию данной заметки. Здесь я не буду описывать, как создаются каналы, очереди, а изложу лишь только теоретическую часть вопроса.
Пропускная способность канала
Ну здесь все просто - если вы создаете одну общую трубу (например для организации QoS), то не стоит указывать пропускную способность равную заявленной провайдером. В таком случае пакеты будут уходить не забивая созданную трубу, то есть очередь пакетов будет возникать у прова, а это неправильно, ведь нам нужно чтобы очередь возникла на нашем маршрутизаторе. В такой ситуации планировщик не сможет нормально работать - ему будет казаться, что труба еще не нагружена до предела и в сети нет никакой конкуренции за него. Поэтому ширину канала для трубы желательно указывать примерно на 5% меньше заявленной провайдером.
Расчет размера очереди
Как говорит ман по ipfw, размер очереди для всех создаваемых объектов в dummynet составляет 50 слотов (так же может указываться в байтах), что является нормальным для Ethernet устройств. Чтобы получить размер очереди в байтах, нужно количество слотов умножить на MTU канала, на котором вы собираетесь нарезать скорость. Кстати, понятие размер очереди также можно трактовать как буфер для пакетов. Если указать большой размер очереди, а канал будет низкоскоростным, то пока заполнится очередь, пройдет довольно длинный промежуток времени, а это очень плохо как для планировщика (если таковой используется), так и для клиента. С такой конфигурацией пакеты очень долго будут находиться в канале, вплоть до того что клиент пославший его может не дождавшись ответа из-за таймаута подумать, что пакет где-то затерялся в пути и повторить передачу. Например, пусть размер очереди будет равным 50 слотам, а ширина канала будет составлять 128Кбит/с, то время заполнения очереди составит - (1500*8*50)/(128*1000) ~ 4,7с. Если указать слишком маленький размер очереди, то это плохо отразиться на сглаживании всплесков трафика в канале. Время, за которое заполняется очередь должно быть не более 0,5с. Приведу несколько простых формул для расчета размера очереди и др. параметров.
Обозначения:
- MTU - максимальный размер пакета в сети (байт)
- Qlen - размер очереди (слотов)
- Qsize - размер очереди (байт)
- t - время заполнения очереди (сек)
- BW - ширина канала (бит/сек)
Формула для расчета размера очереди:
Qlen = (t * BW) / (MTU * 8) (слотов)
Расчет времени заполнения очереди:
t = (Qlen * MTU * 8) / BW (сек)
Перевод слотов в байты:
Qsize = Qlen * MTU (байт)
Пример: рассчитаем все необходимые величины для канала с заявленной провом полосой пропускания 512 Кбит/с. Условимся, что MTU для канала будет составлять 1460 байт. Как было сказано выше брать ширину канала лучше меньше примерно на 1-5% поэтому мы будем работать с полосой пропускания в 486 Кбит/с.
BW = 486 * 1000 = 486000 (бит/с)
Пусть время, за которое заполняется очередь, будет равно t = 0.2 сек. Теперь у нас есть все необходимые исходные данные для расчета размера очереди:
Qlen = (t * BW) / (MTU * 8) = (0.2 * 486000) / (1460 * 8) ~ 8 (слотов)
Но такой размер очереди слишком мал - с таким значением будут плохо сглаживаться всплески трафика. Рассчитаем время заполнения очереди, например для Qlen = 12 слотов.
t = (Qlen * MTU * 8) / BW = (12 * 1460 * 8) / 486000 ~ 0.29 (сек)
Как видно из расчетов время заполнения очереди t < 0.5, то есть удовлетворяет условию, причем с запасом. Поэтому можно попробовать взять еще больший размер очереди, например в 18 слотов.
t = (Qlen * MTU * 8) / BW = (18 * 1460 * 8) / 486000 ~ 0.43 (сек)
С таким размером очереди тоже можно работать. Таким образом, данные расчеты лишь помогают выбрать приблизительно оптимальный размер очереди, а наиболее лучший выбирается методом проб и наблюдений.
Расчет параметров RED/GRED
Думаю, подробно описывать работу данных алгоритмов ни к чему, потому что данной инфы в интернете полно. Скажу лишь вкратце, что RED начинает отбрасывать пакеты с линейно возрастающей вероятностью, когда перегрузка находится между указанными порогами и отбрасывать все пакеты, когда перегрузка превышает максимальный порог. А GRED действует чуть мягче - когда перегрузка находится между максимальным порогом и удвоенным максимальным порогом, то он еще с большей линейно возрастающей вероятностью отбрасывает пакеты, а при превышении и этого порога отбрасываются все пакеты. Кто хочет более глубоких познаний в этой области, то вам на официальный сайт за документацией.
Задаваемые параметры:
- w_q - весовой фактор для расчетов средней загрузки, вещественное число в диапазоне 0..1. Наилучшим считается 0.002, поэтому его трогать не стоит.
- min_th - минимальный порог, после которого начинают отбрасываться пакеты. В зависимости от того, что вы указали в размере очереди, задается либо в слотах, либо в байтах.
- max_th - максимальный порог, после которого начинают отбрасываться все пакеты (RED) или с еще большей вероятностью (GRED). В зависимости от того, что вы указали в размере очереди, задается либо в слотах, либо в байтах.
- max_p - максимальная вероятность отбрасывания пакетов, вещественное число в диапазоне 0..1. Наилучшим считается 0.1, поэтому его трогать не стоит. При превышении порога min_th пакеты отбрасываются с линейно возрастающей вероятностью от 0 до max_p. Для GRED при превышении порога max_th пакеты отбрасываются с линейно возрастающей вероятностью от max_p до 1, пока не будет достигнут порог 2*max_th.
Из вышесказанного следует, что нам нужны только параметры min_th и max_th. Рассчитываются они просто:
RED:
min_th = (Qlen | Qsize) / 6 (слотов | байтов)
max_th = Qlen | Qsize (слотов | байтов)
GRED:
min_th = (Qlen | Qsize) / 6 (слотов | байтов)
max_th = (2..5) * min_th (слотов | байтов)
Например, для вышеприведенного примера параметры для алгоритма GRED будут такими:
min_th = Qlen / 6 = 18 / 6 = 3
max_th (2..5)* min_th = 3 * 3 = 9
Ну вот, в принципе и все, что я хотел сказать о расчетах параметров для dummynet. Если есть, что добавить, то прошу в комменты.
пн, 06/10/2025 - 13:22
https://goodnights.in
https://achalpur.goodnights.in
https://adoni.goodnights.in
https://agartala.goodnights.in
https://agra.goodnights.in
https://ahmedabad.goodnights.in
https://ahmednagar.goodnights.in
https://aizawl.goodnights.in
https://ajmer.goodnights.in
https://akola.goodnights.in
https://alappuzha.goodnights.in
https://aligarh.goodnights.in
https://alwar.goodnights.in
https://amaravati.goodnights.in
https://ambala.goodnights.in
https://ambarnath.goodnights.in
https://ambattur.goodnights.in
https://amravati.goodnights.in
https://amritsar.goodnights.in
https://amroha.goodnights.in
https://anand.goodnights.in
https://anantapur.goodnights.in
https://arrah.goodnights.in
https://asansol.goodnights.in
https://aurangabad.goodnights.in
https://avadi.goodnights.in
https://badlapur.goodnights.in
https://bagaha.goodnights.in
https://baharampur.goodnights.in
https://bahraich.goodnights.in
https://bally.goodnights.in
https://baranagar.goodnights.in
https://barasat.goodnights.in
https://bardhaman.goodnights.in
https://bareilly.goodnights.in
https://barshi.goodnights.in
https://bathinda.goodnights.in
https://beed.goodnights.in
https://begusarai.goodnights.in
https://belgaum.goodnights.in
https://bellary.goodnights.in
https://bengaluru.goodnights.in
https://berhampur.goodnights.in
https://bettiah.goodnights.in
https://bhagalpur.goodnights.in
https://bhalswa-jahangir-pur.goodnights.in
https://bharatpur.goodnights.in
https://bhatpara.goodnights.in
https://bhavnagar.goodnights.in
https://bhilai.goodnights.in
https://bhilwara.goodnights.in
https://bhimavaram.goodnights.in
https://bhind.goodnights.in
https://bhiwandi.goodnights.in
https://bhiwani.goodnights.in
https://bhopal.goodnights.in
https://bhubaneswar.goodnights.in
https://bhusawal.goodnights.in
https://bidar.goodnights.in
https://bidhan-nagar.goodnights.in
https://bihar-sharif.goodnights.in
https://bijapur.goodnights.in
https://bikaner.goodnights.in
https://bilaspur.goodnights.in
https://bokaro.goodnights.in
https://bulandshahr.goodnights.in
https://burhanpur.goodnights.in
https://buxar.goodnights.in
https://chandigarh.goodnights.in
https://chandrapur.goodnights.in
https://chapra.goodnights.in
https://chennai.goodnights.in
https://chittoor.goodnights.in
https://coimbatore.goodnights.in
https://cuttack.goodnights.in
https://daman.goodnights.in
https://danapur.goodnights.in
https://darbhanga.goodnights.in
https://davanagere.goodnights.in
https://dehradun.goodnights.in
https://dehri.goodnights.in
https://delhi.goodnights.in
https://deoghar.goodnights.in
https://dewas.goodnights.in
https://dhanbad.goodnights.in
https://dharmavaram.goodnights.in
https://dharwad.goodnights.in
https://dhule.goodnights.in
https://dibrugarh.goodnights.in
https://digha.goodnights.in
https://dindigul.goodnights.in
https://dombivli.goodnights.in
https://durg.goodnights.in
https://durgapur.goodnights.in
https://eluru.goodnights.in
https://erode.goodnights.in
https://etawah.goodnights.in
https://faridabad.goodnights.in
https://farrukhabad.goodnights.in
https://fatehpur.goodnights.in
https://firozabad.goodnights.in
https://gadag-betageri.goodnights.in
https://gandhidham.goodnights.in
https://gandhinagar.goodnights.in
https://gaya.goodnights.in
https://ghaziabad.goodnights.in
https://goa.goodnights.in
https://gondia.goodnights.in
https://gopalpur.goodnights.in
https://gorakhpur.goodnights.in
https://gudivada.goodnights.in
https://gulbarga.goodnights.in
https://guna.goodnights.in
https://guntakal.goodnights.in
https://guntur.goodnights.in
https://gurgaon.goodnights.in
https://guwahati.goodnights.in
https://gwalior.goodnights.in
https://hajipur.goodnights.in
https://haldia.goodnights.in
https://haldwani.goodnights.in
https://hapur.goodnights.in
https://haridwar.goodnights.in
https://hindupur.goodnights.in
https://hinganghat.goodnights.in
https://hospet.goodnights.in
https://howrah.goodnights.in
https://hubli.goodnights.in
https://hugli-chuchura.goodnights.in
https://hyderabad.goodnights.in
https://ichalkaranji.goodnights.in
https://imphal.goodnights.in
https://indore.goodnights.in
https://jabalpur.goodnights.in
https://jaipur.goodnights.in
https://jalandhar.goodnights.in
https://jalgaon.goodnights.in
https://jalna.goodnights.in
https://jamalpur.goodnights.in
https://jammu.goodnights.in
https://jamnagar.goodnights.in
https://jamshedpur.goodnights.in
https://jaunpur.goodnights.in
https://jehanabad.goodnights.in
https://jhansi.goodnights.in
https://jodhpur.goodnights.in
https://jorhat.goodnights.in
https://junagadh.goodnights.in
https://kadapa.goodnights.in
https://kakinada.goodnights.in
https://kalyan.goodnights.in
https://kamarhati.goodnights.in
https://kanpur.goodnights.in
https://karaikudi.goodnights.in
https://karawal-nagar.goodnights.in
https://karimnagar.goodnights.in
https://karnal.goodnights.in
https://katihar.goodnights.in
https://kavali.goodnights.in
https://khammam.goodnights.in
https://khandwa.goodnights.in
https://kharagpur.goodnights.in
https://khora.goodnights.in
https://kirari-suleman-nagar.goodnights.in
https://kishanganj.goodnights.in
https://kochi.goodnights.in
https://kolhapur.goodnights.in
https://kolkata.goodnights.in
https://kollam.goodnights.in
https://korba.goodnights.in
https://kota.goodnights.in
https://kottayam.goodnights.in
https://kozhikode.goodnights.in
https://kulti.goodnights.in
https://kupwad.goodnights.in
https://kurnool.goodnights.in
https://latur.goodnights.in
https://loni.goodnights.in
https://lucknow.goodnights.in
https://ludhiana.goodnights.in
https://machilipatnam.goodnights.in
https://madanapalle.goodnights.in
https://madhyamgram.goodnights.in
https://madurai.goodnights.in
https://mahesana.goodnights.in
https://maheshtala.goodnights.in
https://malda.goodnights.in
https://malegaon.goodnights.in
https://manali.goodnights.in
https://mangalore.goodnights.in
https://mango.goodnights.in
https://mathura.goodnights.in
https://mau.goodnights.in
https://meerut.goodnights.in
https://mira-bhayandar.goodnights.in
https://miraj.goodnights.in
https://miryalaguda.goodnights.in
https://mirzapur.goodnights.in
https://moradabad.goodnights.in
https://morena.goodnights.in
https://morvi.goodnights.in
https://motihari.goodnights.in
https://mount-abu.goodnights.in
https://mumbai.goodnights.in
https://munger.goodnights.in
https://murwara.goodnights.in
https://mussoorie.goodnights.in
https://muzaffarnagar.goodnights.in
https://muzaffarpur.goodnights.in
https://mysore.goodnights.in
https://nadiad.goodnights.in
https://nagarcoil.goodnights.in
https://nagpur.goodnights.in
https://naihati.goodnights.in
https://nainital.goodnights.in
https://nanded.goodnights.in
https://nandurbar.goodnights.in
https://nandyal.goodnights.in
https://nangloi-jat.goodnights.in
https://narasaraopet.goodnights.in
https://nashik.goodnights.in
https://navi-mumbai.goodnights.in
https://nellore.goodnights.in
https://new-delhi.goodnights.in
https://nizamabad.goodnights.in
https://noida.goodnights.in
https://north-dumdum.goodnights.in
https://ongole.goodnights.in
https://ooty.goodnights.in
https://orai.goodnights.in
https://osmanabad.goodnights.in
https://ozhukarai.goodnights.in
https://pali.goodnights.in
https://pallavaram.goodnights.in
https://panchkula.goodnights.in
https://panihati.goodnights.in
https://panipat.goodnights.in
https://panvel.goodnights.in
https://parbhani.goodnights.in
https://patiala.goodnights.in
https://patna.goodnights.in
https://pimpri-chinchwad.goodnights.in
https://prayagraj.goodnights.in
https://proddatur.goodnights.in
https://puducherry.goodnights.in
https://pune.goodnights.in
https://puri.goodnights.in
https://purnia.goodnights.in
https://rae-bareli.goodnights.in
https://raichur.goodnights.in
https://raiganj.goodnights.in
https://raipur.goodnights.in
https://rajahmundry.goodnights.in
https://rajkot.goodnights.in
https://rajpur.goodnights.in
https://ramagundam.goodnights.in
https://ramnagar.goodnights.in
https://rampur.goodnights.in
https://ranchi.goodnights.in
https://ranikhet.goodnights.in
https://ratlam.goodnights.in
https://raurkela.goodnights.in
https://rewa.goodnights.in
https://rishikesh.goodnights.in
https://rohtak.goodnights.in
https://roorkee.goodnights.in
https://rourkela.goodnights.in
https://rudrapur.goodnights.in
https://sagar.goodnights.in
https://saharanpur.goodnights.in
https://saharsa.goodnights.in
https://salem.goodnights.in
https://sambalpur.goodnights.in
https://sambhal.goodnights.in
https://sangli.goodnights.in
https://sasaram.goodnights.in
https://satara.goodnights.in
https://satna.goodnights.in
https://secunderabad.goodnights.in
https://serampore.goodnights.in
https://shahjahanpur.goodnights.in
https://shimla.goodnights.in
https://shirdi.goodnights.in
https://shivamogga.goodnights.in
https://shivpuri.goodnights.in
https://sikar.goodnights.in
https://silchar.goodnights.in
https://siliguri.goodnights.in
https://silvassa.goodnights.in
https://singrauli.goodnights.in
https://sirsa.goodnights.in
https://siwan.goodnights.in
https://solapur.goodnights.in
https://sonarpur.goodnights.in
https://sonipat.goodnights.in
https://south-dumdum.goodnights.in
https://sri-ganganagar.goodnights.in
https://srikakulam.goodnights.in
https://srinagar.goodnights.in
https://sultan-pur-majra.goodnights.in
https://surat.goodnights.in
https://surendranagar-dudhrej.goodnights.in
https://suryapet.goodnights.in
https://tadepalligudem.goodnights.in
https://tadipatri.goodnights.in
https://tenali.goodnights.in
https://tezpur.goodnights.in
https://thane.goodnights.in
https://thanjavur.goodnights.in
https://thiruvananthapuram.goodnights.in
https://thoothukudi.goodnights.in
https://thrissur.goodnights.in
https://tinsukia.goodnights.in
https://tiruchirappalli.goodnights.in
https://tirunelveli.goodnights.in
https://tirupati.goodnights.in
https://tiruppur.goodnights.in
https://tiruvottiyur.goodnights.in
https://tumkur.goodnights.in
https://udaipur.goodnights.in
https://udgir.goodnights.in
https://ujjain.goodnights.in
https://ulhasnagar.goodnights.in
https://uluberia.goodnights.in
https://unnao.goodnights.in
https://vadodara.goodnights.in
https://varanasi.goodnights.in
https://vasai.goodnights.in
https://vellore.goodnights.in
https://vijayanagaram.goodnights.in
https://vijayawada.goodnights.in
https://virar.goodnights.in
https://visakhapatnam.goodnights.in
https://vrindavan.goodnights.in
https://warangal.goodnights.in
https://wardha.goodnights.in
https://yamunanagar.goodnights.in
https://yavatmal.goodnights.in
https://south-goa.goodnights.in
https://north-goa.goodnights.in
my web site India Call Girls
Добавить комментарий