Supondo que haja um sistema operacional Linux bastante recente, existe uma maneira fácil de determinar a qual nó NUMA o slot PCIe, onde um dispositivo está conectado, pertence?
9
Supondo que haja um sistema operacional Linux bastante recente, existe uma maneira fácil de determinar a qual nó NUMA o slot PCIe, onde um dispositivo está conectado, pertence?
Você deve ir para o diretório do slot PCIe em questão, por exemplo eth0
:
cd /sys/class/net/eth0/device
onde você encontrará numa_node
, local_cpus
e local_cpulist
os três arquivos de seu interesse. Você pode apenas cat
eles e ver os dados desejados.
numa_node = -1
elocal_cpulist = 0-15
. Isso não pode estar certo, eu tenho 2 nós numa, conforme confirmado pelo hwloc.Você também pode usar o hwloc ( http://www.open-mpi.de/projects/hwloc/ ) se souber o ID do dispositivo. No entanto, se você possui 2 do mesmo dispositivo (por exemplo, GPUs), a única maneira de conhecer o nó NUMA ao qual o slot físico está associado é dar uma olhada no manual da placa-mãe.
Para o Asus Z9PE-D8 ( http://dlcdnet.asus.com/pub/ASUS/mb/LGA2011/Z9PE-D8-WS/Manual/e8726_z9pe-d8_ws.pdf ) está na página 223.
fonte
A resposta aceita funciona apenas para placas de rede, até onde eu descobri. De acordo com a resposta do GuillermoMA, o hwloc fornecerá o negócio real, mesmo que não seja tão legível.
lstopo
é encontrado no pacote hwloc (pelo menos no RHEL 7):NUMANode L # 0 é, obviamente, CPU0 e NUMANode L # 1 é CPU1. Você pode pegar seu número PCI favorito acima, por exemplo, 14e4: 16a1 e descobrir o que é, e seu endereço PCI para análises adicionais
lspci
:Em uma das minhas máquinas, uma placa Emulex Fibre Channel não apareceu na
lstopo
saída. Eu o encontrei usandolstopo --whole-io
, executando o processo de pesquisa inversa (role para a direita, se for necessário, para ver o número hexadecimal de 10df que eu espero):Remova o comando grep canalizado acima e vasculhe a saída semi-manualmente para encontrar o dispositivo em
lstopo --whole-io
tela cheia (deixado como um exercício para o leitor).fonte
lspci -nn | grep PCINUMBER
fez o meu dia. Eu tenho dois Samsung 970 Pro e esse comando me ajudou a identificá-los naltopo
saída. Obrigado.Pode-se começar a usar:
# cat /sys/bus/pci/devices/<PCI device>/numa_node
Obter o endereço do dispositivo PCI usando
# lspci -nn
fonte