Предполагая, что операционная система Linux довольно недавняя, существует ли простой способ определить, к какому узлу NUMA принадлежит слот PCIe, к которому подключено устройство?
9
Предполагая, что операционная система Linux довольно недавняя, существует ли простой способ определить, к какому узлу NUMA принадлежит слот PCIe, к которому подключено устройство?
Вы должны перейти в каталог соответствующего слота PCIe, например eth0
:
cd /sys/class/net/eth0/device
где вы найдете numa_node
, local_cpus
и local_cpulist
три файла, представляющих интерес для вас. Вы можете только cat
их, и увидеть нужные данные.
numa_node = -1
иlocal_cpulist = 0-15
. Это не может быть правдой, у меня есть 2 узла numa, что подтверждено hwloc.Вы также можете использовать hwloc ( http://www.open-mpi.de/projects/hwloc/ ), если вам известен идентификатор устройства. Однако, если у вас есть 2 одинаковых устройства (например, графические процессоры), единственный способ узнать узел NUMA, с которым связан физический слот, - это посмотреть руководство по материнской плате.
Для Asus Z9PE-D8 ( http://dlcdnet.asus.com/pub/ASUS/mb/LGA2011/Z9PE-D8-WS/Manual/e8726_z9pe-d8_ws.pdf ) это на странице 223.
источник
Принятый ответ работает только для сетевых карт, насколько я нашел. Согласно ответу GuillermoMA, hwloc даст вам реальную сделку, даже если она не так разборчива.
lstopo
находится в пакете hwloc (по крайней мере на RHEL 7):NUMANode L # 0 - это, конечно, CPU0, а NUMANode L # 1 - это CPU1. Затем вы можете взять ваш любимый номер PCI из вышеприведенного, например, 14e4: 16a1, и узнать, что это такое, и его адрес PCI для дальнейшего анализа из
lspci
:На одной из моих машин карта Emulex Fibre Channel не отображалась на
lstopo
выходе. Я нашел этоlstopo --whole-io
, выполнив процесс обратного поиска (если нужно, прокрутите вправо, чтобы увидеть шестнадцатеричное число 10df, к которому я прибегаю):Удалите приведенную выше команду piped grep и поройтесь в выходных данных полуручно, чтобы найти устройство на полном
lstopo --whole-io
экране (оставлено в качестве упражнения для читателя).источник
lspci -nn | grep PCINUMBER
сделал мой день. У меня два Samsung 970 Pro, и эта команда помогла мне идентифицировать их поltopo
выходным данным . Спасибо.Можно использовать:
# cat /sys/bus/pci/devices/<PCI device>/numa_node
Получить адрес устройства PCI, используя
# lspci -nn
источник