পিসিআই ডিভাইস NUMA নোড নির্ধারণ করুন


9

মোটামুটি সাম্প্রতিক লিনাক্স ওএস ধরে নিলে, কোন ডিভাইসটি প্লাগ ইন করা আছে, কোন পিসিআই স্লটটি NUMA নোডের সাথে এটি নির্ধারণ করার সহজ উপায় আছে?

উত্তর:


10

আপনার অবশ্যই প্রশ্নাবলীর পিসিআই স্লটের ফোল্ডারে যেতে হবে, উদাহরণস্বরূপ এথ0:

 cd /sys/class/net/eth0/device

যেখানে আপনি নুমা_নোড, লোকাল_সিপাস, লোকাল_কপুলিস্ট, আপনাকে তিনটি ইন্টারেয়ার ফাইল পাবেন। আপনি কেবল এগুলি বিড়াল করতে পারেন এবং পছন্দসই ডেটা দেখতে পারেন।


হু, আমি পেয়েছি numa_node = -1এবং local_cpulist = 0-15। এটি ঠিক হতে পারে না, hwloc দ্বারা নিশ্চিত হিসাবে আমার কাছে দুটি নোমা রয়েছে by
নবীন

3

আপনি যদি ডিভাইস আইডি জানেন তবে আপনি hwloc ( http://www.open-mpi.de/projects/hwloc/ ) ও ব্যবহার করতে পারেন। যাইহোক, যদি আপনার একই ডিভাইসের 2 টি (উদাহরণস্বরূপ, জিপিইউ) থাকে তবে শারীরিক স্লট যেখানে জড়িত সেই NUMA নোডকে জানার একমাত্র উপায় হ'ল মাদারবোর্ড ম্যানুয়ালটিতে নজর রাখা।

আসুস জেড 9 ইপি-ডি 8 এর জন্য ( http://dlcdnet.asus.com/pub/ASUS/mb/LGA2011/Z9PE-D8-WS/Manual/e8726_z9pe-d8_ws.pdf ) এটি পৃষ্ঠা 223 এ রয়েছে।


যদি সত্য হয় তবে এটি সম্ভবত আর্কিটেকচার নির্ভর। উদাহরণস্বরূপ, ইন্টেল জিয়ন প্রসেসরের অতীত বেশ কয়েকটি প্রজন্মের পিসিআই রুট ব্রিজটি সিপিইউ চিপেই রয়েছে। সুতরাং, কোনও ডিভাইসের পিসিআই বাস যে সিপিইউ সকেটটি জানা তা অপারেশনের জন্য একটি মূল প্রয়োজনীয়তা। এক্ষেত্রে উপরের "/ সিএস / শ্রেণি ..." উত্তর দ্বারা এটি প্রমাণিত। এই একই সিস্টেমে, বিভিন্ন সকেটের দুটি অভিন্ন সিপিইউ বিভিন্ন NUMA ডিভাইস দেখায়। সকেট 2. উপর 00,0: বিকল্প হিসাবে, সবচেয়ে সিস্টেমে, বিভিন্ন বাস ডিভাইসগুলি উল্লেখযোগ্যভাবে ভিন্ন থেকে PCIe ঠিকানা, যেমন 1A প্রয়োগ করা হবে: সকেট 1 00,0, এবং 89
পল

1

গৃহীত উত্তরটি কেবল নেটওয়ার্ক কার্ডের জন্য কাজ করে, যতদূর আমি খুঁজে পেয়েছি। গিলারমোএমএর উত্তর অনুসারে, hwloc আপনাকে আসল চুক্তি দেবে যদিও তা যথাযথ নয় ible lstopohwloc প্যাকেজে পাওয়া যায় (কমপক্ষে 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 অবশ্যই সিপিইউ 0 এবং NUMANode এল # 1 হ'ল সিপিইউ 1। তারপরে আপনি উপরের থেকে আপনার প্রিয় পিসিআই নম্বরটি নিতে পারেন, উদাহরণস্বরূপ 14e4: 16a1, এবং এটি কী এবং এটির আরও বিশ্লেষণের জন্য এর পিসিআই ঠিকানা আবিষ্কার করুন 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)

আমার একটি মেশিনে, একটি এমুলেক্স ফাইবার চ্যানেল কার্ড lstopoআউটপুটটিতে প্রদর্শিত হয়নি। lstopo --whole-ioবিপরীত অনুসন্ধান প্রক্রিয়া সম্পাদন করে আমি এটি পেয়েছি (10 ডিএফ হেক্স নম্বরটি আমি দেখতে পেয়েছি তা দেখতে ডানদিকে স্ক্রোল করুন):

# 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

উপরের পাইপযুক্ত গ্রেপ কমান্ডটি সরান, এবং সম্পূর্ণ lstopo --whole-ioডিসপ্লেতে ডিভাইসটি সন্ধানের জন্য আউটপুটটি আধা-ম্যানুয়ালি গুঞ্জন করুন (পাঠকের জন্য অনুশীলন হিসাবে ছেড়ে দেওয়া হয়েছে)।


lspci -nn | grep PCINUMBERআমার দিন তৈরি। আমার কাছে দুটি স্যামসাং 970 প্রো রয়েছে এবং সেই আদেশটি ltopoআউটপুট থেকে তাদের সনাক্ত করতে আমাকে সহায়তা করেছিল । ধন্যবাদ.
পিট্রপ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.