21.3. Configuração de pesquisas de opinião pública ocupadas
Se a análise revelar alta latência, seu sistema pode se beneficiar do recebimento de pacotes baseado em pesquisas e não em interrupções.
A pesquisa ocupada ajuda a reduzir a latência no caminho de recepção da rede, permitindo que o código da camada do soquete faça a pesquisa da fila de recepção de um dispositivo de rede, e desativa as interrupções da rede. Isto elimina os atrasos causados pela interrupção e a mudança de contexto resultante. Entretanto, também aumenta a utilização da CPU. A pesquisa ocupada também impede a CPU de dormir, o que pode acarretar consumo adicional de energia. O comportamento de pesquisas ocupadas é suportado por todos os drivers do dispositivo.
21.3.1. Possibilitando pesquisas de opinião pública ocupadas Copiar o linkLink copiado para a área de transferência!
Por padrão, a votação ocupada está desativada. Este procedimento descreve como habilitar as pesquisas de opinião pública ocupadas.
Procedimento
Certifique-se de que a opção de compilação CONFIG_NET_RX_BUSY_POLL esteja habilitada:
cat /boot/config-$(uname -r) | grep CONFIG_NET_RX_BUSY_POLL CONFIG_NET_RX_BUSY_POLL=y
# cat /boot/config-$(uname -r) | grep CONFIG_NET_RX_BUSY_POLL CONFIG_NET_RX_BUSY_POLL=yCopy to Clipboard Copied! Toggle word wrap Toggle overflow Possibilitar pesquisas de opinião pública ocupadas
Para permitir uma votação ocupada em tomadas específicas, defina o valor do kernel
sysctl.net.core.busy_pollpara um valor diferente de0:echo "net.core.busy_poll=50" > /etc/sysctl.d/95-enable-busy-polling-for-sockets.conf sysctl -p /etc/sysctl.d/95-enable-busy-polling-for-sockets.conf
# echo "net.core.busy_poll=50" > /etc/sysctl.d/95-enable-busy-polling-for-sockets.conf # sysctl -p /etc/sysctl.d/95-enable-busy-polling-for-sockets.confCopy to Clipboard Copied! Toggle word wrap Toggle overflow Este parâmetro controla o número de microssegundos para esperar por pacotes na sondagem do soquete e selecionar
syscalls. A Red Hat recomenda um valor de50.-
Adicione a opção de soquete
SO_BUSY_POLLao soquete. Para permitir pesquisas de opinião em todo o mundo, defina o
sysctl.net.core.busy_readpara um valor diferente de0:echo "net.core.busy_read=50" > /etc/sysctl.d/95-enable-busy-polling-globally.conf sysctl -p /etc/sysctl.d/95-enable-busy-polling-globally.conf
# echo "net.core.busy_read=50" > /etc/sysctl.d/95-enable-busy-polling-globally.conf # sysctl -p /etc/sysctl.d/95-enable-busy-polling-globally.confCopy to Clipboard Copied! Toggle word wrap Toggle overflow O parâmetro
net.core.busy_readcontrola o número de microssegundos para esperar por pacotes na fila do dispositivo para leituras de soquetes. Ele também define o valor padrão doSO_BUSY_POLL option. A Red Hat recomenda um valor de50para um pequeno número de soquetes, e um valor de100para um grande número de soquetes. Para números extremamente grandes de soquetes, por exemplo, mais de várias centenas, use ao invés disso a chamada ao sistemaepoll.
Etapas de verificação
Verificar se a pesquisa está habilitada
ethtool -k device | grep "busy-poll" busy-poll: on [fixed] cat /proc/sys/net/core/busy_read 50
# ethtool -k device | grep "busy-poll" busy-poll: on [fixed] # cat /proc/sys/net/core/busy_read 50Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Recursos adicionais
-
Para mais informações, consulte as páginas man
ethtool,socket,sysctl, esysctl.conf. - Configuração de recursos de descarga de etool usando a seçãoNetworkManager.