The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Интерактивная система просмотра системных руководств (man-ов)

 ТемаНаборКатегория 
 
 [Cписок руководств | Печать]

tc-prio ()
  • >> tc-prio (8) ( Русские man: Команды системного администрирования )
  • tc-prio (8) ( Linux man: Команды системного администрирования )
  •  

    ИМЯ

    PRIO - приоритетная очередь  

    СИНТАКСИС

    tc qdisc ... dev УСТРОЙСТВО ( parent classid | root) [ handle major: ] prio [ bands bands ] [ priomap band,band,band... ] [ estimator interval timeconstant ]

     

    ОПИСАНИЕ

    Очередь PRIO - простая реализация постановки в очередь, которая поддерживает классы, и содержит опредёленное число классов с различным приоритетом. Очереди классов освобождаются в порядке снижения приоритета. PRIO - планировщик,который никогда не задерживает пакеты - это работа внутренних очередей.

    Очень полезно использовать PRIO для снижения задержки в случае, когда нет необходимости замедлять трафик.

     

    АЛГОРИТМ

    При создании с помощью 'tc qdisc add', создается фиксированное число полос. Каждая полоса является классом, хотя для PRIO невозможно добавлять классы вручную при помощи 'tc qdisc add', вместо этого число создаваемых полос должно быть указано в командной строке, добавляющей PRIO к вышестоящей очереди.

    При освобождении пакета из очереди вначале происходит попытка использовать полосу 0 и в случае, если она не доставила пакет, PRIO будет пытаться использовать полосу 1, и так далее. Соответственно, пакеты с максимальной надёжностью должны быть отправлены на полосу 0, с минимальной задержкой - на полосу 1, и все оставшиеся - на полосу 2.

    Так как очередь PRIO сама по себе будет иметь дополнительный (minor) номер равный 0, полоса 0 на самом деле major:1, полоса 1 является major:2, и т.д. Вместо major, подставьте основной номер, назначенный очереди в момент её создания при помощи 'tc qdisc add" с параметром handle.

     

    КЛАССИФИКАЦИЯ

    Три метода доступны в PRIO для определения, в какую полосу будет помещён пакет.
    Из пользовательского пространства (userspace)
    Процесс с достаточными привилегиями может указать требуемый класс напрямую при помощи SO_PRIORITY, см. tc(7).
    С tc-фильтром
    tc-фильтр, добавленный к корневой очереди, может указывать класс напрямую.
    С использованием priomap
    Основываясь на приоритете пакета, который, в свою очередь, получается из типа услуги, назначенного пакету.
     Для этого типа очереди специфичен только priomap. 
     

    ПАРАМЕТРЫ

    bands
    Число полос, если отличается от используемых трёх по умолчанию. priomap также должен быть обновлен.
    priomap
    priomap назначает класс в зависимости от приоритета пакета. Приоритет может быть или напрямую установлен из пользовательского пространства или быть определён на основе типа услуги.

    Определяет, каким образом приоритеты пакета, назначенные ядром, влияют на выбор полосы. Выбор основывается на TOS-октете пакета, который выглядит приблизительно так:

    0   1   2   3   4   5   6   7
    +---+---+---+---+---+---+---+---+
    |           |               |   |
    |СТАРШИНСТВО|      TOS      |MBZ|
    |           |               |   |
    +---+---+---+---+---+---+---+---+
    

    Четыре бита поля TOS определены как:

    Двоичный Десятичный Значение
    ---------------------------------------------------------------
    1000     8          Минимизировать задержку (minimize delay - md)
    0100     4          Максимизировать пропускную способность (maximize
                        thorughput - mt)
    0010     2          Максимальная надежность (maximal reliability - mr)
    0001     1          Минимизировать денежную стоимость (minimize monetary
                        cost - mmc)
    0000     0          Обычное обслуживание (normal service)
    

    Так как справа от этих полей находится 1 бит, действительное значение TOS вдвое больше значение битов TOS. Tcpdump -v -v показывает значение всего поля TOS, а не только четырех битов. Это значение, которые вы видите в первом столбце следующей таблицы:

    TOS     Биты  Значение                 Linux Приоритет   Полоса
    ---------------------------------------------------------------
    0x0     0     Обычное обслуживание     0     Best Effort     1
    0x2     1     Минимизировать затраты   1     Filler          2
    0x4     2     Макс. надежность         0     Best Effort     1
    0x6     3     mmc+mr                   0     Best Effort     1
    0x8     4     Макс. пропускн. способн. 2     Bulk            2
    0xa     5     mmc+mt                   2     Bulk            2
    0xc     6     mr+mt                    2     Bulk            2
    0xe     7     mmc+mr+mt                2     Bulk            2
    0x10    8     Минимизировать задержку  6     Interactive     0
    0x12    9     mmc+md                   6     Interactive     0
    0x14    10    mr+md                    6     Interactive     0
    0x16    11    mmc+mr+md                6     Interactive     0
    0x18    12    mt+md                    4     Int. Bulk       1
    0x1a    13    mmc+mt+md                4     Int. Bulk       1
    0x1c    14    mr+mt+md                 4     Int. Bulk       1
    0x1e    15    mmc+mr+mt+md             4     Int. Bulk       1
    

    Второй столбец содержит значение соответствующих четырех битов TOS, за которыми следует их расшифрованное значение. К примеру, 15 обозначает пакет, которые требует минимальные денежные затраты, максимальную надежность, максимальную скорость прохождения и минимальную задержку.

    Четвертый столбец перечисляет, каким образом ядро Linux интерпретирует биты TOS, и показывает, какие приоритеты ставятся им в соответствие.

    Последний столбец показывает используемый по умолчанию priomap. В командной строке, priomap по умолчанию выглядит так:


        1, 2, 2, 2, 1, 2, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1

    Это означает, что приоритету 4, например, будет поставлена в соответствие полоса номер 1. priomap также разрешает использовать более высокие приоритеты (>7), которые не соответствуют значениям TOS, но устанавливаются другими способами.

    Эта таблица из RFC 1349 (обратитесь к RFC за дополнительной информацией) объясняет, как приложения могут устанавливать свои биты TOS:

    TELNET                   1000           (минимальная задержка)
    FTP
            Control          1000           (минимизировать задержку)
            Data             0100           (макс. пропускн. способность)
    
    TFTP                     1000           (минимизировать задержку)
    
    SMTP 
            Command phase    1000           (минимальная задержка)
            DATA phase       0100           (макс. пропускн. способность)
    
    Domain Name Service
            UDP Query        1000           (минимальная задержка)
            TCP Query        0000
            Zone Transfer    0100           (макс. пропускн. способность)
    
    NNTP                     0001           (минимальные денежные затраты)
    
    ICMP
            Errors           0000
            Requests         0000 (как правило)
            Responses        <такой же, как и в Request> (как правило)
    

     

    КЛАССЫ

    Классы PRIO не могут настраиваться - они автоматически создаются, при добавлении очереди PRIO. Тем не менее, каждый класс может содержать ещё одну очередь.

     

    ОШИБКИ

    Большие объемы трафика в младших полосах могут вызывать "голод" в старших полосах. Это может быть предотвращено добавлением ограничения скорости (например, shaper, tc-tbf(8) ) к этим полосам, чтобы быть уверенным, что они не захватят соединение полностью.

     

    АВТОРЫ

    Алексей Н. Кузнецов <kuznet@ms2.inr.ac.ru>, J Hadi Salim <hadi@cyberus.ca>. Эта страница руководства поддерживается Бертом Хубертом (Bert Hubert) <ahu@ds9a.nl>

     

    ПЕРЕВОД

    Перевод с английского Виктор Ерёмин <ErV2005@rambler.ru> 2007.


     

    Index

    ИМЯ
    СИНТАКСИС
    ОПИСАНИЕ
    АЛГОРИТМ
    КЛАССИФИКАЦИЯ
    ПАРАМЕТРЫ
    КЛАССЫ
    ОШИБКИ
    АВТОРЫ
    ПЕРЕВОД


    Поиск по тексту MAN-ов: 




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру