draveness / blog-comments

面向信仰编程
https://draveness.me
140 stars 6 forks source link

为什么 NUMA 影响程序的延迟 - 面向信仰编程 #222

Closed draveness closed 2 years ago

draveness commented 3 years ago

https://draveness.me/whys-the-design-numa-performance/

leafduo commented 3 years ago

感觉 Kubernetes 这一层应该解决一部分问题,不过好像 Kubernetes 的 NUMA 支持还在比较早期的阶段

draveness commented 3 years ago

@leafduo 感觉 Kubernetes 这一层应该解决一部分问题,不过好像 Kubernetes 的 NUMA 支持还在比较早期的阶段

是的,Kuberentes 不支持 NUMA 感知调度,只是在 Kubelet 层面支持几种 NUMA 策略

leafduo commented 3 years ago

@draveness

@leafduo 感觉 Kubernetes 这一层应该解决一部分问题,不过好像 Kubernetes 的 NUMA 支持还在比较早期的阶段

是的,Kuberentes 不支持 NUMA 感知调度,只是在 Kubelet 层面支持几种 NUMA 策略

意思是只有在一个 node 的范围中调度,不能在集群的范围中调度?

draveness commented 3 years ago

@leafduo

@draveness

@leafduo 感觉 Kubernetes 这一层应该解决一部分问题,不过好像 Kubernetes 的 NUMA 支持还在比较早期的阶段

是的,Kuberentes 不支持 NUMA 感知调度,只是在 Kubelet 层面支持几种 NUMA 策略

意思是只有在一个 node 的范围中调度,不能在集群的范围中调度?

是的,只有 kubelet 才能决定是不是运行在 NUMA 上,但是如果 node 不支持或者无法把 Pod 分配到 NUMA 上, kubelet 会在 pod admission phase 报错或者运行在不同 NUMA 节点上

DSNNET commented 3 years ago

“能够页面频繁换入换出的可能性”这句感觉不太通顺,是不是少了一个“降低“?


2020-10-26 UPDATES: 已修复

index 2fc82c6..ccd34d4 100644
--- a/insight/content/post/2020-10-23-whys-the-design-numa-performance.md
+++ b/insight/content/post/2020-10-23-whys-the-design-numa-performance.md
@@ -103,7 +103,7 @@

-想要解决该问题,我们需要使用上一节提到的 `numactl` 将内存的分配策略改为 `interleave`,使用该内存分配策略会使得 MySQL 的内存均匀地分配到不同的 NUMA 节点上,能够页面频繁换入换出的可能性。
+想要解决该问题,我们需要使用上一节提到的 `numactl` 将内存的分配策略改为 `interleave`,使用该内存分配策略会使得 MySQL 的内存均匀地分配到不同的 NUMA 节点上,能够降低页面频繁换入换出的可能性。

 ![even-memory-node](https://img.draveness.me/2020-10-24-16035525564395/even-memory-node.png)
npuichigo commented 3 years ago

"将缓存池中的数据按照块或者索引只能地分配到不同节点上;"是笔误吗


2021-03-01 UPDATES: 已修复

plantegg commented 3 years ago

好文章, 文中提到的 Jeremy Cole 的文章应该搞错了一些事情:https://plantegg.github.io/2021/05/14/%E5%8D%81%E5%B9%B4%E5%90%8E%E6%95%B0%E6%8D%AE%E5%BA%93%E8%BF%98%E6%98%AF%E4%B8%8D%E6%95%A2%E6%8B%A5%E6%8A%B1NUMA/

dirtysalt commented 2 years ago

@plantegg 好文章, 文中提到的 Jeremy Cole 的文章应该搞错了一些事情:https://plantegg.github.io/2021/05/14/%E5%8D%81%E5%B9%B4%E5%90%8E%E6%95%B0%E6%8D%AE%E5%BA%93%E8%BF%98%E6%98%AF%E4%B8%8D%E6%95%A2%E6%8B%A5%E6%8A%B1NUMA/

好文章,所以现在linux在numa上默认配置大部分时候都是够用的了,特定情况下需要绑定或者是自己做numa分配。