pq_force_ordering

Параметр pq_force_ordering определяет, что происходит при заполнении очереди отправки:

•      Если выставлено значение 1, пакеты при переполнении очереди уничтожаются.

•      Если выставлено значени 0, пакеты все равно обрабатываются – то есть порядок отправки пакетов регулируется только в случае низкой загрузки. При установке pq_force_ordering = 0 рекомендуется выставлять маленькое значение pq_send_q_size.

Если pq_send_q_size = 0, значение pq_force_ordering не имеет смысла.

 

Пример:

Имеется 4 NUMA-узла, по 4 ядра на узел. Установим cpu_distribution=eth0,eth1,eth6,eth9:3/*.

Получим следующее распределение:

eth0 eth1 eth6 eth9

 \   |     |   /

  \  |     |  /

   \ |     | /

    \\     //

     \\   //

      \\ //  

       \|/

        *

       /|\

       QQQ

       WWW

       WWW

       WWW

       www

       w

Q – очереди/выделенные ядра прерываний,
W – рабочие нитки, запущенные на том же процессоре, что и очереди,
w – рабочие нитки, запущенные в "чужом" NUMA-узле,
линии – привязка прерываний.

То, что в примере не изображено, что нет соответствия между интерфейсом и очередью – не случайно. Если интерфейс имеет множество прерываний MSI-X, они распределяются между всеми выделенными для обработки прерываний ядрами.