Eu cheguei ao fundo disso (mais ou menos). Foi a maneira incomum que eu estava lançando iperf de ansible. Originalmente, eu não tinha visto que o iperf tinha um modo daemon ( -D
), então eu estava iniciando manualmente o iperf com daemon
. Eu esqueci sobre isso e não consegui mudar isso.
Estranhamente, se eu iniciar o iperf usando esse método, ele parece gerar imediatamente alguns encadeamentos extras. Observe que não estou falando dos processos filho que daemon
precisa iniciar para separar corretamente o processo filho corretamente (ou seja, certifique-se de que ele não seja um líder de grupo de processos, filho de init
etc.). O próprio processo iperf, uma vez iniciado, está iniciando alguns tópicos extras (a menos que isso realmente seja uma faceta da execução de daemon
- mas eles realmente parecem ser encadeamentos de acordo com htop
).
Eu estava taskset
-tingendo tanto o processo daemon quanto o processo iperf, mas acho que isso não ocorreu nos threads filhos (veja aqui uma discussão sobre isso: Definindo a afinidade do processo em execução com o conjunto de tarefas falha ). Não estou convencido de que esta é a história completa, já que não vejo o processo iperf principal sendo executado no processador correto, então algo suspeito está acontecendo. Tenho certeza que isso pode ser explicado por uma melhor investigação do comportamento de daemon
, mas eu não tenho tempo para investigar isso agora, então vou deixar por aqui.