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