Estou configurando um servidor de nuvem para usar o RPS e o RFS.
Eu tenho SSH: ed na máquina usando SSH sem senha.
Eu quero configurar minha pilha de rede na máquina para use um conjunto específico de CPUs.
Para isso eu emito os comandos:
sudo bash -c "echo 3800,e0000 > /sys/class/net/eth_dev/queues/rx-0/rps_cpus"
sudo bash -c "echo 3800,e0000 > /sys/class/net/eth_dev/queues/rx-1/rps_cpus"
sudo bash -c "echo 3800,e0000 > /sys/class/net/eth_dev/queues/rx-2/rps_cpus"
sudo bash -c "echo 3800,e0000 > /sys/class/net/eth_dev/queues/rx-3/rps_cpus"
sudo bash -c "echo 32768 > /proc/sys/net/core/rps_sock_flow_entries"
sudo bash -c "echo 8192 > /sys/class/net/eth_dev/queues/rx-0/rps_flow_cnt"
sudo bash -c "echo 8192 > /sys/class/net/eth_dev/queues/rx-1/rps_flow_cnt"
sudo bash -c "echo 8192 > /sys/class/net/eth_dev/queues/rx-2/rps_flow_cnt"
sudo bash -c "echo 8192 > /sys/class/net/eth_dev/queues/rx-3/rps_flow_cnt"
onde eth_dev
é substituído pelo nome do dispositivo Ethernet.
A máquina foi configurada com 4 filas de recebimento.
Se eu apenas definir o rps_cpus
, tudo funcionará bem. Mas quando eu começo
definindo rps_flow_cnt
coisas estranhas começam a acontecer. Depois de
definindo o rx-2
não é mais possível para o SSH no
máquina novamente.
Eu também vi ls -la
pendurado no diretório .ssh
. Eventualmente
a conexão SSH atualmente usada também é perdida.
Tags networking linux