En supposant un système d'exploitation Linux assez récent, existe-t-il un moyen facile de déterminer à quel nœud NUMA l'emplacement PCIe, où un périphérique est branché, appartient?
9
En supposant un système d'exploitation Linux assez récent, existe-t-il un moyen facile de déterminer à quel nœud NUMA l'emplacement PCIe, où un périphérique est branché, appartient?
Vous devez vous rendre dans le répertoire de l'emplacement PCIe en question, par exemple eth0
:
cd /sys/class/net/eth0/device
où vous trouverez numa_node
, local_cpus
et local_cpulist
, les trois dossiers d'intérêt pour vous. Vous pouvez juste cat
les voir et voir les données souhaitées.
numa_node = -1
etlocal_cpulist = 0-15
. Cela ne peut pas être vrai, j'ai 2 nœuds numa comme confirmé par hwloc.Vous pouvez également utiliser hwloc ( http://www.open-mpi.de/projects/hwloc/ ) si vous connaissez l'ID de l'appareil. Cependant, si vous avez 2 du même périphérique (par exemple, des GPU), la seule façon de connaître le nœud NUMA auquel l'emplacement physique est associé est de consulter le manuel de la carte mère.
Pour l'Asus Z9PE-D8 ( http://dlcdnet.asus.com/pub/ASUS/mb/LGA2011/Z9PE-D8-WS/Manual/e8726_z9pe-d8_ws.pdf ), c'est à la page 223.
la source
La réponse acceptée ne fonctionne que pour les cartes réseau, pour autant que je sache. Selon la réponse de GuillermoMA, hwloc vous donnera la vraie affaire même si elle n'est pas aussi lisible.
lstopo
se trouve dans le paquet hwloc (au moins sur RHEL 7):NUMANode L # 0 est, bien sûr, CPU0 et NUMANode L # 1 est CPU1. Vous pouvez ensuite prendre votre numéro PCI préféré à partir de ce qui précède, par exemple 14e4: 16a1, et découvrir de quoi il s'agit, et son adresse PCI pour une analyse plus approfondie à partir de
lspci
:Sur une de mes machines, une carte Emulex Fibre Channel n'apparaissait pas dans la
lstopo
sortie. Je l'ai trouvé en utilisantlstopo --whole-io
, en effectuant le processus de recherche inversée (faites défiler vers la droite si vous le devez, pour voir le numéro hexadécimal 10df que je convoite):Supprimez la commande piped grep ci-dessus et fouillez la sortie semi-manuellement pour trouver le périphérique en plein
lstopo --whole-io
écran (à gauche comme exercice pour le lecteur).la source
lspci -nn | grep PCINUMBER
fait ma journée. J'ai deux Samsung 970 Pro et cette commande m'a aidé à les identifier à partir de laltopo
sortie. Je vous remercie.On peut utiliser:
# cat /sys/bus/pci/devices/<PCI device>/numa_node
Obtenez l'adresse du périphérique PCI à l'aide
# lspci -nn
la source