- How to Find Out CPU Architecture (32 bit or 64 bit) in Linux
- Determine whether a given Linux is 32 bit or 64 bit?
- Как определить архитектуру процессора ЦП в Linux
- Способ первый: likwid
- Установите likwid в Linux
- Второй метод: hwloc
- Установите hwloc в Debian, Ubuntu или Linux Mint.
- Установите hwloc в Fedora, CentOS или RHEL.
- Способ третий: numactl
- Установите numactl в Debian, Ubuntu или Linux Mint.
- Установите numactl в Fedora, CentOS или RHEL.
How to Find Out CPU Architecture (32 bit or 64 bit) in Linux
Some times it is very important to know whether the Server’s CPU Architecture is of 32-bit or 64-bit because 64-bit applications can not run on 32-bit system, whereas 32-bit application can easily be run on 64-bit system.
One can determine Linux System CPU architecture using the file /proc/cpuinfo , example is shown below :
[[email protected] ~]# cat /proc/cpuinfo | grep -i flags flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx rdtscp lm constant_tsc up rep_good pni monitor ssse3 lahf_lm
In the above output, we could either see lm , tm or rm , these flags indicates about CPU architecture.
So as per above output, Server’s CPU is of 64 bit.
Apart from /proc/cpuinfo, we can also check the CPU architecture using lscpu command, in the output look for CPU op-modes(s). We can also use lshw command to view CPU architecture, execute following command and in the output look for width parameter,
Find CPU architecture using dmidecode command
Run the beneath dmidecode command and in the output look for “Characteristics:” parameter which will show whether CPU architecture is 64-bit or 32-bit
Determine whether a given Linux is 32 bit or 64 bit?
We can find the whether installed Linux system on which we are working is 32-bit or 64-bit using commands like lscpu, ‘uname -m‘ and getconf
Output will be something like below and look for Architecture, as per output below 64-bit Linux is installed on the system,
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 4
On-line CPU(s) list: 0-3
Thread(s) per core: 2
Core(s) per socket: 2
Socket(s): 1
NUMA node(s): 1
Vendor ID: GenuineIntel
CPU family: 6
Model: 37
Stepping: 5
CPU MHz: 933.000
BogoMIPS: 4787.82
Virtualization: VT-x
L1d cache: 32K
L1i cache: 32K
L2 cache: 256K
L3 cache: 3072K
NUMA node0 CPU(s): 0-3
x86_64 –> 64-bit kernel
i686 –> 32-bit kernel
Above Command will display whether Kernel Version is 32 bit or 64 bit
with help of getconf command we can also find whether the installed Linux is of 32-bit or 64-bit
Как определить архитектуру процессора ЦП в Linux
Архитектура многоядерных процессоров становится все более популярной в настоящее время. Эта тенденция усугубляется необходимостью поддержки высокопроизводительных вычислительных приложений, аппаратной виртуализации и консолидации серверов в центрах обработки данных. Если вы являетесь администратором серверов и облачным архитектором, вы должны быть полностью осведомлены об архитектуре ЦП ваших серверов, чтобы развертываемые приложения могли в полной мере использовать возможности базового оборудования.
Тенденция к аппаратному обеспечению с высокой плотностью ядер также определяет эволюцию разработки программного обеспечения, вводя новые типы моделей параллельного программирования. Многопоточные приложения, разработанные в соответствии с этими моделями, должны иметь возможность использовать параллельное выполнение на разных ядрах, многоуровневый кэш, привязку ЦП/памяти и т. д.
В этом руководстве описывается, как определить архитектуру процессора ЦП из командной строки в Linux. Архитектура процессора ЦП характеризуется количеством физических сокетов/процессоров, количеством ядер на процессор, многоуровневым (L1/L2/L3) кешем, конфигурацией NUMA (неравномерный доступ к памяти) и т. д.
Способ первый: likwid
likwid ((Like I Knew What I’m Doing) — это набор инструментов командной строки, предназначенных для поддержки разработчиков приложений при разработке многопоточных приложений. likwid работает с Ядро Linux 2.6 и выше и регулярно обновляется для поддержки последних поколений процессоров Intel/AMD, таких как процессоры Intel Sandy, Ivy, Haswell, Broadwell, Skylake и AMD K8, K10 и Bulldozer (Interlagos).
Установите likwid в Linux
$ tar xvfvz likwid-3.0.0.tar.gz $ cd likwid-3.0.0 $ sudo make install
likwid поставляется с несколькими инструментами командной строки:
Чтобы визуализировать архитектуру процессора ЦП:
------------------------------------------------------------- CPU type: Intel Core Westmere processor ************************************************************* Hardware Thread Topology ************************************************************* Sockets: 2 Cores per socket: 4 Threads per core: 2 ------------------------------------------------------------- HWThread Thread Core Socket 0 0 0 0 1 0 0 1 2 0 10 0 3 0 10 1 4 0 1 0 5 0 1 1 6 0 9 0 7 0 9 1 8 1 0 0 9 1 0 1 10 1 10 0 11 1 10 1 12 1 1 0 13 1 1 1 14 1 9 0 15 1 9 1 ------------------------------------------------------------- Socket 0: ( 0 8 4 12 6 14 2 10 ) Socket 1: ( 1 9 5 13 7 15 3 11 ) ------------------------------------------------------------- ************************************************************* Cache Topology ************************************************************* Level: 1 Size: 32 kB Cache groups: ( 0 8 ) ( 4 12 ) ( 6 14 ) ( 2 10 ) ( 1 9 ) ( 5 13 ) ( 7 15 ) ( 3 11 ) ------------------------------------------------------------- Level: 2 Size: 256 kB Cache groups: ( 0 8 ) ( 4 12 ) ( 6 14 ) ( 2 10 ) ( 1 9 ) ( 5 13 ) ( 7 15 ) ( 3 11 ) ------------------------------------------------------------- Level: 3 Size: 12 MB Cache groups: ( 0 8 4 12 6 14 2 10 ) ( 1 9 5 13 7 15 3 11 ) ------------------------------------------------------------- ************************************************************* NUMA Topology ************************************************************* NUMA domains: 2 ------------------------------------------------------------- Domain 0: Processors: 0 2 4 6 8 10 12 14 Relative distance to nodes: 10 20 Memory: 4207.48 MB free of total 8181.75 MB ------------------------------------------------------------- Domain 1: Processors: 1 3 5 7 9 11 13 15 Relative distance to nodes: 20 10 Memory: 4020.77 MB free of total 8192 MB ------------------------------------------------------------- ************************************************************* Graphical: ************************************************************* Socket 0: +-----------------------------------------+ | +-------+ +-------+ +-------+ +-------+ | | | 0 8 | | 4 12 | | 6 14 | | 2 10 | | | +-------+ +-------+ +-------+ +-------+ | | +-------+ +-------+ +-------+ +-------+ | | | 32kB | | 32kB | | 32kB | | 32kB | | | +-------+ +-------+ +-------+ +-------+ | | +-------+ +-------+ +-------+ +-------+ | | | 256kB | | 256kB | | 256kB | | 256kB | | | +-------+ +-------+ +-------+ +-------+ | | +-------------------------------------+ | | | 12MB | | | +-------------------------------------+ | +-----------------------------------------+ Socket 1: +-----------------------------------------+ | +-------+ +-------+ +-------+ +-------+ | | | 1 9 | | 5 13 | | 7 15 | | 3 11 | | | +-------+ +-------+ +-------+ +-------+ | | +-------+ +-------+ +-------+ +-------+ | | | 32kB | | 32kB | | 32kB | | 32kB | | | +-------+ +-------+ +-------+ +-------+ | | +-------+ +-------+ +-------+ +-------+ | | | 256kB | | 256kB | | 256kB | | 256kB | | | +-------+ +-------+ +-------+ +-------+ | | +-------------------------------------+ | | | 12MB | | | +-------------------------------------+ | +-----------------------------------------+
Выше приведен пример вывода HP ProLiant DL380 G7, где показаны два физических сокета, четырехъядерный процессор с поддержкой Hyper-Threading в каждом сокете, 32 КБ кэш-памяти L1, 256 КБ кэш-памяти L2 и 12 МБ кэш-памяти L3.
Второй метод: hwloc
hwloc — это набор командной строки, который собирает различные атрибуты базовой архитектуры процессора, такие как узлы памяти NUMA, многоуровневые кэши, процессорные сокеты, процессорные ядра, устройства/мосты PCI и т. д.
Установите hwloc в Debian, Ubuntu или Linux Mint.
$ sudo apt-get install hwloc
Установите hwloc в Fedora, CentOS или RHEL.
После установки пакета hwloc вы можете использовать lstopo , чтобы показать архитектуру процессора следующим образом.
Если вы запускаете lstopo в среде рабочего стола Linux, появится всплывающее окно, которое хорошо визуализирует базовую архитектуру процессора и иерархию кэша, как показано ниже.
Если lstopo вызывается в серверной среде без рабочего стола, вывод будет отображаться в текстовом формате следующим образом.
Machine (16GB) NUMANode L#0 (P#0 8182MB) + Socket L#0 + L3 L#0 (12MB) L2 L#0 (256KB) + L1 L#0 (32KB) + Core L#0 PU L#0 (P#0) PU L#1 (P#8) L2 L#1 (256KB) + L1 L#1 (32KB) + Core L#1 PU L#2 (P#2) PU L#3 (P#10) L2 L#2 (256KB) + L1 L#2 (32KB) + Core L#2 PU L#4 (P#4) PU L#5 (P#12) L2 L#3 (256KB) + L1 L#3 (32KB) + Core L#3 PU L#6 (P#6) PU L#7 (P#14) NUMANode L#1 (P#1 8192MB) + Socket L#1 + L3 L#1 (12MB) L2 L#4 (256KB) + L1 L#4 (32KB) + Core L#4 PU L#8 (P#1) PU L#9 (P#9) L2 L#5 (256KB) + L1 L#5 (32KB) + Core L#5 PU L#10 (P#3) PU L#11 (P#11) L2 L#6 (256KB) + L1 L#6 (32KB) + Core L#6 PU L#12 (P#5) PU L#13 (P#13) L2 L#7 (256KB) + L1 L#7 (32KB) + Core L#7 PU L#14 (P#7) PU L#15 (P#15)
Вы можете позволить lstopo экспортировать визуализацию архитектуры процессора в отдельный файл изображения, указав выходной файл следующим образом.
Способ третий: numactl
numactl – это инструмент командной строки для настройки оборудования NUMA (например, для закрепления процессов или потоков за определенными физическими ядрами или узлами ccNUMA).
Установите numactl в Debian, Ubuntu или Linux Mint.
$ sudo apt-get install numactl
Установите numactl в Fedora, CentOS или RHEL.
Если вы хотите проверить доступные узлы NUMA с помощью numactl , сделайте следующее:
available: 2 nodes (0-1) node 0 cpus: 0 2 4 6 8 10 12 14 node 0 size: 8181 MB node 0 free: 4235 MB node 1 cpus: 1 3 5 7 9 11 13 15 node 1 size: 8191 MB node 1 free: 4048 MB node distances: node 0 1 0: 10 20 1: 20 10
Все права защищены. © Linux-Console.net • 2019-2023