远程测试CentOS7 HPC计算节点单条内存性能的方案求助
单条RAM性能检测解决方案(CentOS7 HPC集群)
一、Intel官方工具进阶用法
1. Intel MLC 绑定NUMA/内存通道测试
HPC节点的12条RAM通常按NUMA节点或内存通道分组,可通过绑定CPU与NUMA节点,实现对特定组内存的性能测试,间接定位单条异常RAM:
- 查看NUMA节点与内存映射:
输出会显示每个NUMA节点关联的内存容量、CPU核心列表。numactl --hardware - 定位单条RAM的物理位置:
找到每条RAM的dmidecode -t memoryLocator字段(如ChannelA-DIMM0),对应到NUMA节点或内存通道。 - 绑定NUMA节点运行MLC测试:
替换numactl --cpunodebind=0 --membind=0 ./mlc --latency_matrix0为目标NUMA节点编号,测试该节点关联内存的延迟;使用--bandwidth_matrix可测试带宽。若某NUMA节点性能异常,再结合BIOS通道信息缩小到单条RAM。
2. Intel Memory and Storage Tool (Intel MAS)
Intel MAS是轻量官方工具,无需安装,支持单条RAM的健康检测与性能测试:
- 解压工具包后,先扫描所有内存设备:
输出会列出每条RAM的ID、健康状态、错误计数,直接标记异常内存。./IntelMAS_CLI diagnose -device all - 指定单条RAM进行性能测试:
替换./IntelMAS_CLI perf -device <device-id><device-id>为目标RAM的ID(从diagnose结果中获取),可得到该条RAM的带宽、延迟数据。
二、CentOS7原生工具组合方案
若集群限制严格,用系统自带工具结合NUMA绑定实现测试:
- 测试NUMA节点内存带宽:
对比不同NUMA节点的写入速度,差异过大的节点对应内存组存在异常。numactl --membind=0 dd if=/dev/zero of=/tmp/test_ram bs=1G count=1 oflag=direct - 测试内存延迟:
编写简单的内存访问循环程序(如C语言),绑定到目标NUMA节点的CPU核心执行:
或用numactl --cpunodebind=0 ./memory_latency_testperf统计内存访问事件:numactl --cpunodebind=0 perf stat -e mem_load_uops_retired.miss ./test_program
三、内核级内存异常定位
- 使用
edac-utils(多数CentOS7集群已预装,或可申请管理员安装):
查看ECC错误计数,输出会明确标记异常RAM所在的通道与DIMM槽位。edac-ctl --status - 检查内核日志:
内核会记录内存错误信息,直接提示故障DIMM的物理位置。dmesg | grep -i memory
注意事项
- 测试前需停止节点上的非必要任务,避免性能干扰。
- 若无法直接隔离单条RAM,先通过NUMA/通道缩小范围,再结合集群IPMI硬件日志确认DIMM状态。
内容的提问来源于stack exchange,提问作者박영준
相关产品推荐
相关产品推荐

