Как проверить, применены ли настройки NUMA в Linux

LinuxLinuxBeginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В этом лабораторном занятии вы узнаете, как проверить, применены ли настройки Неоднородного доступа к памяти (Non-Uniform Memory Access, NUMA) в Linux. Понимание NUMA является важным аспектом оптимизации производительности в многоядерных системах.

В рамках серии практических шагов вы будете использовать важные команды Linux, такие как numactl и lscpu, а также изучать файловую систему /proc/numa для проверки и изучения конфигурации NUMA на вашей системе. В результате этого лабораторного занятия вы получите практические навыки для определения узлов NUMA, связанных с ними ЦП и памяти, что позволит вам эффективно оценить настройку NUMA вашей системы.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicSystemCommandsGroup(["Basic System Commands"]) linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux(("Linux")) -.-> linux/FileandDirectoryManagementGroup(["File and Directory Management"]) linux(("Linux")) -.-> linux/PackagesandSoftwaresGroup(["Packages and Softwares"]) linux/BasicSystemCommandsGroup -.-> linux/help("Command Assistance") linux/BasicSystemCommandsGroup -.-> linux/man("Manual Access") linux/BasicFileOperationsGroup -.-> linux/ls("Content Listing") linux/BasicFileOperationsGroup -.-> linux/cat("File Concatenating") linux/FileandDirectoryManagementGroup -.-> linux/which("Command Locating") linux/PackagesandSoftwaresGroup -.-> linux/apt("Package Handling") subgraph Lab Skills linux/help -.-> lab-558800{{"Как проверить, применены ли настройки NUMA в Linux"}} linux/man -.-> lab-558800{{"Как проверить, применены ли настройки NUMA в Linux"}} linux/ls -.-> lab-558800{{"Как проверить, применены ли настройки NUMA в Linux"}} linux/cat -.-> lab-558800{{"Как проверить, применены ли настройки NUMA в Linux"}} linux/which -.-> lab-558800{{"Как проверить, применены ли настройки NUMA в Linux"}} linux/apt -.-> lab-558800{{"Как проверить, применены ли настройки NUMA в Linux"}} end

Проверка статуса NUMA с помощью команды numactl --hardware

На этом этапе мы начнем изучать архитектуру Неоднородного доступа к памяти (Non-Uniform Memory Access, NUMA) на вашей системе. NUMA представляет собой концепцию организации компьютерной памяти, используемую в многопроцессорных системах, где время доступа к памяти зависит от расположения памяти относительно процессора. Понимание NUMA может быть важным для оптимизации производительности определенных приложений.

Мы будем использовать команду numactl для проверки статуса NUMA. Команда numactl используется для управления политикой NUMA для процессов или запуска программы с определенной политикой NUMA.

Сначала проверим, доступна ли команда numactl на вашей системе. Введите следующую команду в терминале и нажмите Enter:

which numactl

Если numactl установлен, вы увидите путь к исполняемому файлу, например:

/usr/bin/numactl

Если он не установлен, вы можете увидеть пустой вывод или сообщение об ошибке. Если он не установлен, вы можете установить его с помощью apt. Поскольку у вас есть привилегии sudo без ввода пароля, вы можете выполнить следующие команды:

sudo apt update
sudo apt install numactl -y

Теперь, когда numactl доступен, используем опцию --hardware для отображения информации о узлах NUMA на вашей системе. Введите следующую команду и нажмите Enter:

numactl --hardware

Вы должны увидеть вывод, похожий на следующий, который перечисляет доступные узлы NUMA и связанные с ними ЦП и память:

available: 1 nodes (0)
node 0 cpus: 0 1
node 0 size: 1999 MB
node 0 free: 1800 MB

Этот вывод показывает, что ваша система имеет 1 узел NUMA (узел 0). Он также показывает, какие ЦП принадлежат этому узлу, а также общий объем и свободный объем памяти, доступный для него. Точный вывод может отличаться в зависимости от конфигурации виртуальной машины.

Понимание этого вывода является первым шагом при работе с системами NUMA. В следующих шагах мы рассмотрим другие способы проверки конфигурации NUMA.

Нажмите Продолжить, чтобы перейти к следующему шагу.

Проверка узлов NUMA в /proc/numa

На этом этапе мы рассмотрим файловую систему /proc для получения информации о узлах NUMA. Файловая система /proc представляет собой виртуальную файловую систему, которая предоставляет информацию о процессах и других аспектах системы. Это отличное место для поиска деталей о конфигурации и статусе вашей Linux-системы.

В частности, мы рассмотрим каталог /proc/numa. Этот каталог содержит файлы, которые предоставляют детали о конфигурации NUMA.

Сначала выведем список содержимого каталога /proc/numa с помощью команды ls. Введите следующую команду в терминале и нажмите Enter:

ls /proc/numa

Вы должны увидеть вывод, похожий на следующий:

distance  nodes

Это означает, что в /proc есть два основных файла или каталога, связанных с NUMA: distance и nodes.

Теперь рассмотрим содержимое файла /proc/numa/nodes. Этот файл должен перечислять доступные узлы NUMA. Мы можем использовать команду cat для отображения содержимого этого файла. Введите следующую команду и нажмите Enter:

cat /proc/numa/nodes

Вы должны увидеть вывод, похожий на следующий:

0

Этот вывод подтверждает, что ваша система имеет по крайней мере один узел NUMA, а именно узел 0. Если бы у вашей системы было больше узлов NUMA, здесь вы увидели бы список номеров узлов (например, 0 1).

Далее рассмотрим файл /proc/numa/distance. Этот файл показывает расстояние между узлами NUMA, которое представляет собой стоимость доступа к памяти на другом узле. Для системы с одним узлом расстояние до самого себя обычно равно 10. Введите следующую команду и нажмите Enter:

cat /proc/numa/distance

Вы должны увидеть вывод, похожий на следующий:

0: 10

Этот вывод представляет матрицу расстояний. В данном случае 0: 10 означает, что расстояние от узла 0 до узла 0 равно 10. На системах с несколькими узлами NUMA вы увидите матрицу, показывающую расстояние между всеми парами узлов.

Исследование файловой системы /proc - это распространенный способ получения системной информации в Linux. Теперь вы знаете, как использовать ее для проверки узлов NUMA, обнаруженных на вашей системе.

Нажмите Продолжить, чтобы перейти к следующему шагу.

Проверка деталей NUMA с помощью lscpu

На этом последнем этапе мы используем команду lscpu для получения подробной информации об архитектуре процессора, включая конфигурацию NUMA. Команда lscpu отображает информацию о процессоре(ах) в системе и может быть очень полезна для понимания аппаратного обеспечения вашей системы.

Введите следующую команду в терминале и нажмите Enter:

lscpu

Вы увидите обширный вывод о вашем процессоре. Найдите строки, в которых упоминается "NUMA". Вывод будет различаться в зависимости от системы, но вы должны увидеть что - то похожее на следующее:

Architecture:        x86_64
...
NUMA node(s):        1
NUMA node0 CPU(s):   0,1

Разберем важные части вывода:

  • NUMA node(s): 1: Эта строка сообщает о общем количестве узлов NUMA, обнаруженных в системе. В данном случае это 1, что соответствует тому, что мы увидели с помощью numactl и при проверке /proc/numa.
  • NUMA node0 CPU(s): 0,1: Эта строка показывает, какие ядра процессора принадлежат узлу NUMA 0. Здесь это означает, что процессоры 0 и 1 являются частью узла 0.

Команда lscpu предоставляет много другой полезной информации о вашем процессоре, например, количество ядер, потоков, размеры кэша и поддерживаемые функции. Не стесняйтесь прокручивать вывод и искать другие детали.

Теперь вы успешно использовали три разных метода (numactl --hardware, /proc/numa и lscpu) для проверки конфигурации NUMA вашей системы. Понимание этих инструментов является важным для диагностики проблем с производительностью и оптимизации приложений на многопроцессорных системах.

Нажмите Продолжить, чтобы завершить этот практический урок и просмотреть свой прогресс.

Резюме

В этом практическом уроке мы научились проверять, применены ли настройки NUMA в Linux. Мы начали с использования команды numactl --hardware для отображения информации о доступных узлах NUMA, включая связанные с ними процессоры и память. Это дало базовое понимание архитектуры NUMA в системе.

Затем мы рассмотрели альтернативные методы проверки конфигурации NUMA. Это включало изучение файловой системы /proc/numa, которая предоставляет подробную информацию о узлах NUMA и их статистике памяти. Наконец, мы использовали команду lscpu для получения полного обзора архитектуры процессора, включая детали, связанные с NUMA, что дополнительно подтвердило настройку NUMA в системе.