GNU/Linux >> Belajar Linux >  >> Linux

Tentukan node NUMA perangkat PCIe

Anda harus masuk ke direktori slot PCIe yang dimaksud, misalnya eth0 :

 cd /sys/class/net/eth0/device

di mana Anda akan menemukan numa_node , local_cpus , dan local_cpulist , tiga file yang menarik bagi Anda. Anda cukup cat mereka, dan lihat data yang diinginkan.


Anda juga dapat menggunakan hwloc (http://www.open-mpi.de/projects/hwloc/) jika Anda mengetahui id perangkatnya. Namun, jika Anda memiliki 2 perangkat yang sama (misalnya, GPU), satu-satunya cara untuk mengetahui node NUMA tempat slot fisik dikaitkan adalah dengan melihat manual motherboard.

Untuk Asus Z9PE-D8 (http://dlcdnet.asus.com/pub/ASUS/mb/LGA2011/Z9PE-D8-WS/Manual/e8726_z9pe-d8_ws.pdf) ada di halaman 223.


Jawaban yang diterima hanya berfungsi untuk kartu jaringan, sejauh yang saya temukan. Per jawaban GuillermoMA, hwloc akan memberi Anda real deal meskipun tidak terbaca. lstopo ditemukan di paket hwloc (setidaknya di RHEL 7):

# lstopo
Machine (256GB)
  NUMANode L#0 (P#0 128GB)
    Socket L#0 + L3 L#0 (20MB)
      L2 L#0 (256KB) + L1d L#0 (32KB) + L1i L#0 (32KB) + Core L#0 + PU L#0 (P#0)
      L2 L#1 (256KB) + L1d L#1 (32KB) + L1i L#1 (32KB) + Core L#1 + PU L#1 (P#2)
      L2 L#2 (256KB) + L1d L#2 (32KB) + L1i L#2 (32KB) + Core L#2 + PU L#2 (P#4)
      L2 L#3 (256KB) + L1d L#3 (32KB) + L1i L#3 (32KB) + Core L#3 + PU L#3 (P#6)
      L2 L#4 (256KB) + L1d L#4 (32KB) + L1i L#4 (32KB) + Core L#4 + PU L#4 (P#8)
      L2 L#5 (256KB) + L1d L#5 (32KB) + L1i L#5 (32KB) + Core L#5 + PU L#5 (P#10)
      L2 L#6 (256KB) + L1d L#6 (32KB) + L1i L#6 (32KB) + Core L#6 + PU L#6 (P#12)
      L2 L#7 (256KB) + L1d L#7 (32KB) + L1i L#7 (32KB) + Core L#7 + PU L#7 (P#14)
    HostBridge L#0
      PCIBridge
        PCI 1000:005d
          Block L#0 "sda"
      PCIBridge
        PCI 14e4:16a1
          Net L#1 "eth0"
        PCI 14e4:16a1
          Net L#2 "eth1"
        PCI 14e4:16a1
          Net L#3 "eth2"
        PCI 14e4:16a1
          Net L#4 "eth3"
      PCI 8086:8d62
      PCIBridge
        PCIBridge
          PCIBridge
            PCIBridge
              PCI 102b:0534
      PCI 8086:8d02
        Block L#5 "sr0"
  NUMANode L#1 (P#1 128GB)
    Socket L#1 + L3 L#1 (20MB)
      L2 L#8 (256KB) + L1d L#8 (32KB) + L1i L#8 (32KB) + Core L#8 + PU L#8 (P#1)
      L2 L#9 (256KB) + L1d L#9 (32KB) + L1i L#9 (32KB) + Core L#9 + PU L#9 (P#3)
      L2 L#10 (256KB) + L1d L#10 (32KB) + L1i L#10 (32KB) + Core L#10 + PU L#10 (P#5)
      L2 L#11 (256KB) + L1d L#11 (32KB) + L1i L#11 (32KB) + Core L#11 + PU L#11 (P#7)
      L2 L#12 (256KB) + L1d L#12 (32KB) + L1i L#12 (32KB) + Core L#12 + PU L#12 (P#9)
      L2 L#13 (256KB) + L1d L#13 (32KB) + L1i L#13 (32KB) + Core L#13 + PU L#13 (P#11)
      L2 L#14 (256KB) + L1d L#14 (32KB) + L1i L#14 (32KB) + Core L#14 + PU L#14 (P#13)
      L2 L#15 (256KB) + L1d L#15 (32KB) + L1i L#15 (32KB) + Core L#15 + PU L#15 (P#15)
    HostBridge L#7
      PCIBridge
        PCI 15b3:1003
          Net L#6 "eth4"
          Net L#7 "eth5"

NUMANode L#0 tentu saja adalah CPU0 dan NUMANode L#1 adalah CPU1. Anda kemudian dapat mengambil nomor PCI favorit Anda dari atas, misalnya 14e4:16a1, dan temukan apa itu, dan alamat PCI-nya untuk analisis lebih lanjut dari lspci :

# lspci -nn | grep 14e4:16a1
01:00.0 Ethernet controller [0200]: Broadcom Corporation BCM57840 NetXtreme II 10 Gigabit Ethernet [14e4:16a1] (rev 11)
01:00.1 Ethernet controller [0200]: Broadcom Corporation BCM57840 NetXtreme II 10 Gigabit Ethernet [14e4:16a1] (rev 11)
01:00.2 Ethernet controller [0200]: Broadcom Corporation BCM57840 NetXtreme II 10 Gigabit Ethernet [14e4:16a1] (rev 11)
01:00.3 Ethernet controller [0200]: Broadcom Corporation BCM57840 NetXtreme II 10 Gigabit Ethernet [14e4:16a1] (rev 11)

Di salah satu mesin saya, kartu Emulex Fibre Channel tidak muncul di lstopo keluaran. Saya menemukannya menggunakan lstopo --whole-io , dengan melakukan proses pencarian balik (gulir ke kanan jika perlu, untuk melihat nomor hex 10df yang saya ambil):

# lspci -nn | grep -i emulex
03:00.0 Fibre Channel [0c04]: Emulex Corporation Saturn-X: LightPulse Fibre Channel Host Adapter [10df:f100] (rev 03)
03:00.1 Fibre Channel [0c04]: Emulex Corporation Saturn-X: LightPulse Fibre Channel Host Adapter [10df:f100] (rev 03)
# lstopo --whole-io | grep 10df   
        PCI 10df:f100
        PCI 10df:f100

Hapus perintah grep yang disalurkan, di atas, dan jelajahi output secara semi-manual untuk menemukan perangkat dalam lstopo --whole-io lengkap display (dibiarkan sebagai latihan untuk pembaca).


Linux
  1. Bagaimana cara mengetahui apakah konfigurasi NUMA diaktifkan atau dinonaktifkan?

  2. Cara membuat perangkat blok virtual (perangkat loop/sistem file) di Linux

  3. Bagaimana saya tahu jika server saya memiliki NUMA?

  1. Tidak ada ruang tersisa di perangkat

  2. Tentukan ukuran perangkat blok

  3. Aturan Udev untuk mencocokkan beberapa perangkat USB node

  1. Perintah Untuk Menentukan Port Perangkat (seperti /dev/ttyusb0)?

  2. PCI-stub Vs Vfio-pci?

  3. Bagaimana saya bisa menentukan apakah perangkat iscsi adalah sistem file Linux yang terpasang?