Параметр 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, они распределяются между всеми выделенными для обработки прерываний ядрами.