Практикум по серверной топологии
Приёмка PCIe-карты: скорость, ширина и NUMA
Курс учит проверять PCIe-карту после установки: отдельно смотреть максимальные возможности и текущие скорость и ширину линии, а неизвестную NUMA-привязку не принимать за подтверждённую локальность.
Что вы сможете сделать
- Отделять максимальные параметры PCIe-устройства от текущего состояния линии.
- Проверять текущие скорость и ширину как два независимых параметра.
- Читать NUMA-привязку PCIe-устройства и не принимать запасной список local_cpulist за подтверждённую локальность.
1. Сначала запишите максимум устройства
Максимальные параметры отвечают на вопрос, что устройство умеет заявить системе. Это ещё не фактический режим линии после установки.
Linux 6.12 публикует max_link_speed через pcie_get_speed_cap() и max_link_width через pcie_get_width_cap().
Максимальные и текущие параметры находятся в разных sysfs-атрибутах, поэтому одно значение нельзя подставлять вместо другого.
Проверить тезис: Возможности линии PCIe 03
Наличие максимального значения не доказывает, что линия сейчас работает именно так.
Проверить тезис: Возможности линии PCIe 05
Атрибуты max_link_speed и max_link_width Linux показывает только для устройств, распознанных как PCI Express.
Проверить тезис: Возможности линии PCIe 04
2. Проверьте текущую линию
После установки смотрите не только возможности карты, но и тот режим, который ядро видит сейчас.
current_link_speed в Linux 6.12 берётся из поля текущей скорости PCI Express Link Status.
Проверить тезис: Текущее состояние линии PCIe 01
current_link_width берётся из Negotiated Link Width того же Link Status.
Проверить тезис: Текущее состояние линии PCIe 02
Скорость и ширина опубликованы отдельно, поэтому проверяйте обе величины.
Проверить тезис: Текущее состояние линии PCIe 03
Текущие значения и max_link_* — разные проверки; расхождение само по себе ещё не называет причину.
Проверить тезис: Текущее состояние линии PCIe 05
Текущие speed и width относятся к группе PCIe-атрибутов и доступны для устройств, которые ядро распознаёт как PCI Express.
Проверить тезис: Текущее состояние линии PCIe 04
3. Проверьте NUMA-привязку
Для серверной карты важно знать не только PCIe-режим, но и то, к какому NUMA-узлу система относит устройство.
numa_node показывает NUMA-узел PCI-устройства; -1 означает, что узел неизвестен.
Проверить тезис: NUMA-привязка PCIe-устройства 01
Начальное значение NUMA-узла приходит из ACPI _PXM или аналогичного источника прошивки.
Проверить тезис: NUMA-привязка PCIe-устройства 02
При известном узле local_cpus/local_cpulist используют маску CPU этого NUMA-узла.
Проверить тезис: NUMA-привязка PCIe-устройства 04
При неизвестном узле Linux 6.12 показывает в local_cpus/local_cpulist все online CPU — это fallback, а не найденная локальная группа.
Проверить тезис: NUMA-привязка PCIe-устройства 05
4. Соберите короткий протокол приёмки
Результат полезен, когда в нём отдельно сохранены возможности карты, текущая линия и NUMA-привязка.
Для одной PCIe-карты сохраните max_link_speed/max_link_width и current_link_speed/current_link_width как две пары разных смыслов.
Проверить тезис: Возможности линии PCIe 03 · Текущее состояние линии PCIe 05
Сохраните numa_node; если он равен -1, так и укажите, не заменяя неизвестность удобным предположением.
Не переписывайте numa_node как обычную настройку производительности: ABI Linux считает это обходом ошибки прошивки и помечает ядро.
Проверить тезис: NUMA-привязка PCIe-устройства 03
Проверьте инженерное мышление
Вопросы проверяют не память на аббревиатуры, а умение не делать лишних выводов.
В каталоге
- Платформы и режим линий PCIe — Курс учит сверять текущие скорость и ширину линии карты с возможностями платформы.
- Материнские платы: проверка слотов PCIe — Неудачный слот даёт карте меньше линий — курс показывает, как это заметить при приёмке.
Источники курса
Полные сведения о первоисточниках приведены один раз для всего курса. Под тезисами — ссылки на соответствующие утверждения Архивариума.
- Официальная документация
Linux v6.12 — drivers/pci/pci-sysfs.c
Linux kernel maintainers / torvalds/linux · исходный код ядра Linux, тег v6.12, drivers/pci/pci-sysfs.c, страница открыта 7 сентября 2026 года
Открыт редактором 7 сентября 2026 года, файл по тегу v6.12 сверен. Официальная реализация, не ABI-файл.
Открыть первоисточник - Официальная документация
ABI testing symbols: sysfs-bus-pci
The Linux Kernel documentation · документация ABI ядра Linux (sysfs-bus-pci), страница открыта 7 сентября 2026 года
Открыт редактором 7 сентября 2026 года, заголовок документа сверен.
Открыть первоисточник