不需要了解大量的硬件参数,只是希望你可以理解各个部件之间的关系

1. 怎么了解

不需要特意了解具体产品型号、协议细节和所有命令参数,先知道一台服务器由什么组成,各个部件怎样连接。

可以使用大语言模型或 Agent 辅助理解概念、解释命令输出和整理资料,但不要直接把其回答直接当作最终结论。

涉及具体型号、兼容性、固件设置和硬件参数时,建议结合当前机器的实际输出、对应设备的官方手册和项目官方文档。

2. 服务器基础架构

2.1 为什么要了解

服务器强调持续运行、可维护性和扩展能力,个人 PC 更强调成本与交互体验。HPC 的性能不只由 CPU 型号决定,还与内存通道是否均衡、数据是否跨 NUMA、设备经过哪条 PCIe 路径有关。

2.2 需要理解什么

2.3 可以做什么

在 Linux 系统中执行:

 lscpu
 lscpu -e
 numactl -H
 numastat
 lspci
 lspci -tv

安装了 hwloc 后还可以执行:

 lstopo

尝试回答:

  1. 机器有几个 Socket?
  2. 每个 Socket 有多少物理核心?
  3. 每个核心有几个硬件线程?
  4. 有几个 NUMA Node?
  5. 每个 NUMA Node 包含哪些 CPU 和内存?
  6. GPU、HCA 和 NVMe 大致位于哪个 CPU 或 NUMA Node 下?

3. BIOS、UEFI 与固件

3.1 为什么要了解

BIOS 和 UEFI 在操作系统启动前初始化 CPU、内存和 PCIe 设备。一些设备识别、虚拟化、驱动加载和性能问题可能与固件设置有关。

不同厂商和平台的菜单名称与行为可能不同,不应把某一台服务器的设置当成所有平台的统一答案。

3.2 需要理解什么

3.3 可以做什么

可以尝试执行:

 test -d /sys/firmware/efi && echo UEFI
 efibootmgr -v
 mokutil --sb-state
 lscpu
 dmidecode -t bios
 dmesg | grep -Ei 'iommu|dmar|amd-vi|secure boot|pcie'

如果你没有 Linux 物理机,也可以直接看看 Windows 计算机的 BIOS 信息

按下 Win + R,输入:

 msinfo32

可以重点查看:

也可以在 PowerShell 中执行:

 Get-CimInstance Win32_BIOS |
     Format-List Manufacturer, SMBIOSBIOSVersion, ReleaseDate
 
 Get-ComputerInfo |
     Select-Object BiosFirmwareType, BiosVersion, BiosReleaseDate,
                   CsManufacturer, CsModel

Windows 任务管理器的CPU页面会显示虚拟化是否启用

如果想观察 BIOS/UEFI 菜单,可以在自己的计算机上进入固件设置界面,看看启动顺序、Secure Boot、虚拟化和性能模式等项目在哪里

试着回答:

  1. 当前计算机使用的是 UEFI 还是传统 BIOS 启动?
  2. Secure Boot 是否开启?它主要解决什么问题?
  3. CPU虚拟化功能是否开启?它与VT-x或AMD-V有什么关系?
  4. 在BIOS/UEFI菜单中能否找到启动顺序、Secure Boot 和虚拟化相关设置?
  5. 能否找到 SMT、性能模式、IOMMU 或 PCIe 拆分等设置?
  6. BIOS 固件、BMC 固件、网卡固件和 SSD 固件是否是同一个东西?

4. GPU 与异构计算硬件

4.1 为什么要了解

GPU 适合大量相似计算并行执行,但并不是所有程序都适合 GPU。GPU 的实际表现还会受到显存、PCIe、CPU、数据读取和多卡通信的影响。

4.2 需要理解什么

4.3 可以做什么

  1. 如果使用 Windows,可以打开:

    如果使用 Linux,可以尝试执行:

     lspci | grep -Ei 'vga|3d|display'
    

    电脑安装了 NVIDIA 驱动,还可以尝试:

     nvidia-smi
    

    尝试回答:

    1. 自己的电脑使用的是集成显卡、独立显卡,还是两者都有?
    2. 操作系统中显示的 GPU 型号是什么?
    3. 你安装的是哪种图形驱动,版本号是多少?
    4. 任务管理器中的专用 GPU内存和共享 GPU内存有什么区别?
    5. 为什么操作系统能显示GPU,不代表某个计算程序一定会使用它?

5. InfiniBand、RDMA 与集群网络

5.1 为什么要了解

集群中可能同时存在管理网络、业务网络、计算网络和存储网络,并行程序使用哪一张网卡、走 TCP 还是 RDMA,这些都会影响通信延迟和带宽

端口表面显示为active或能够ping通,只能说明网络的某一部分正常,不能证明我们正在跑的应用使用了预期的高速通信路径。

5.2 需要理解什么