暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

内存延迟与带宽的学习

济南小老虎 2024-08-24
70

背景

昨天早上看了一个小时IT知识刺客的文章.
看到了numa节点的信息.

突然发现, 我们这边的一个一体机的项目其实内存插的有问题.
不同numa节点的内存不一致.

按照我的朴素理解. 这种情况下,服务器的性能和延迟就会出现不平衡的现象.
早上突然想测量一下.

想到intel的mlc工具
因为CPU海光的 7380 也是x86 架构
所以就直接拿来用了.


下载

https://www.intel.cn/content/www/cn/zh/download/736633/intel-memory-latency-checker-intel-mlc.html

需要说明 windows 系统也可以观测
这一点还是非常好的..


TLDR 先说简要测试结果

Intel 6342 是测试结论最好的. 
socket时延 75ns. 带宽 163GB/S
socket时延 133ns 带宽 55GB/S

四路的 Intel 6150测试结果也不错.
socket时延 78ns. 带宽 50GB/S
socket时延 145ns 带宽 17GB/S

海光在1T内存关闭numa交织的情况下:
时延 183ns 带宽 100GB/S

关于海光7380 内存分配不均衡时
同一个numa节点内时延最低: 150ns,
同一个socket内不同numa节点: 200ns,
如果是跨CPU之间的时延最高: 300ns.
2根内存的情况下
同numa节点最高 30GB/S
相同socket 时是 20GB/S
socket 时是 15GB/S

1根内存的情况下
同numa节点时 17GB
相同socket 时是 14GB/S
socket 时是 9GB/S


Intel 6342的监测数据

先说总结数据: 
总结: CPU内的延迟是 73ns CPU之间的延迟翻倍到 133ns
CPU内的带宽是 163GB/S CPU之间的带框降低到 55GB/S

CPU时: 延迟高一倍, 带宽只有三分之一

想系信息为:

NUMA node0 CPU(s): 0-23,48-71
NUMA node1 CPU(s): 24-47,72-95

node distances:
node 0 1
0: 10 20
1: 20 10

node 0 size: 514989 MB
node 1 size: 515059 MB

测试延迟和带宽信息

延迟:
./mlc --latency_matrix
Measuring idle latencies for sequential access (in ns)...
Numa node
Numa node 0 1
0 73.5 133.1
1 132.6 72.5

带宽
./mlc --bandwidth_matrix
Bandwidths are in MB/sec (1 MB/sec = 1,000,000 Bytes/sec)
Using all the threads from each core if Hyper-threading is enabled

Numa node
Numa node 0 1
0 163387.5 55164.9
1 55198.3 156303.0



HG 7380

先说总结数据
同一个numa节点内, 时延最低 150ns, 跟Intel 6342的跨CPU接近.
同一个socket内的时延200ns, 跨CPU之间 是300ns. AMD 时延大的问题更加严重
关于带宽
2根内存的情况下
同numa节点最高 30GB/S
相同socket 时是 20GB/S
跨socket 时是 15GB/S

如果是一跟内存的情况
同numa节点时 17GB
相同socket 时是 14GB/S
跨socket 时是 9GB/S

海光的时延和带宽差距明显.

因为内存不满配, 所以没有查内存的numa节点无法测量.
效果为:
node 0 size: 0 MB
node 1 size: 63774 MB
node 2 size: 0 MB
node 3 size: 128978 MB
node 4 size: 0 MB
node 5 size: 129020 MB
node 6 size: 0 MB
node 7 size: 64477 MB

关于海光CPU的总结:

Numa node
Numa node 0 1 2 3 4 5 6 7
0 - 204.1 - 202.5 - 300.7 - 303.0
1 - 158.8 - 193.7 - 294.2 - 248.4
2 - 191.9 - 197.3 - 297.1 - 286.9
3 - 192.7 - 149.0 - 251.9 - 294.9
4 - 294.9 - 290.3 - 198.3 - 192.8
5 - 290.8 - 248.7 - 147.1 - 190.8
6 - 294.7 - 285.7 - 194.3 - 194.8
7 - 247.8 - 286.1 - 193.5 - 143.4


Using all the threads from each core if Hyper-threading is enabled
Using Read-only traffic type
Numa node
Numa node 0 1 2 3 4 5 6 7
0 - 14130.5 - 20394.3 - 15166.7 - 7899.8
1 - 17650.2 - 20452.4 - 15083.4 - 9015.7
2 - 14560.7 - 20358.0 - 14967.9 - 7832.9
3 - 14542.6 - 30780.5 - 15016.4 - 9351.6
4 - 9808.7 - 14847.5 - 20403.9 - 12716.8
5 - 9262.8 - 14958.9 - 30750.7 - 12788.7
6 - 9953.4 - 15073.5 - 20416.2 - 13135.2
7 - 11756.3 - 14941.1 - 20464.6 - 16408.1


关于关闭numa 交织的测试结果

HG7280  1T内存
Measuring idle latencies for random access (in ns)...
Numa node
Numa node 0
0 183.5
Bandwidths are in MB/sec (1 MB/sec = 1,000,000 Bytes/sec)
Numa node
Numa node 0
0 103556.2


Intel 四路服务器的情况 Golden 6150

Measuring idle latencies for sequential access (in ns)...
Numa node
Numa node 0 1 2 3
0 78.6 140.9 145.3 140.5
1 139.8 77.6 139.3 145.3
2 144.9 140.1 78.4 141.1
3 138.8 145.6 139.6 78.2

Bandwidths are in MB/sec (1 MB/sec = 1,000,000 Bytes/sec)
Numa node
Numa node 0 1 2 3
0 56459.2 17190.0 17209.3 17204.6
1 17241.2 43536.2 17190.8 17213.9
2 17175.3 17138.1 46320.8 17237.5
3 17202.9 17185.2 17228.9 52170.0


文章转载自济南小老虎,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论