请问生产环境开启NUMA,还需要单独在yaml 配置文件中设置NUMA_NODE绑核?
看官方文档只是说安装NUMA,具体还需要怎么配置没有提及。
在生产环境中只安装 NUMA 工具是不够的,是否需要在 YAML(例如 TiUP 的 topology.yaml)里配置 NUMA_NODE 绑核,取决于你的部署方式和是否希望强制绑定 CPU/内存节点。官方文档只提“安装 NUMA”,主要是因为 TiDB/TiKV 默认不会主动做 NUMA 绑定,但很多生产环境为了性能稳定会额外配置。
这样绑numa:
tidb_servers:
- host: 10.1.1.10
port: 4000
status_port: 10080
deploy_dir: "/tidb-data2/tidb-deploy/tidb-4000"
log_dir: "/tidb-data2/tidb-deploy/tidb-4000/log"
numa_node: 2,3
服务器有4个numa节点:
NUMA node0 CPU(s): 0-9,40-49
NUMA node1 CPU(s): 10-19,50-59
NUMA node2 CPU(s): 20-29,60-69
NUMA node3 CPU(s): 30-39,70-79
不明白这样分配有没有什么隐患,这台服务器安装tikv和tidb各一个,那numa_node把0,1分配给tikv, 2,3分配给tidb吗?
还是说0,1,2,3都分配给tikv和tidb呢?假如有一个numa node保留不分配,那一个numa node会不会不会被tikv,tidb使用?
我们都是这样做的:numa_node把0,1分配给tikv, 2,3分配给tidb
tidb用不了那么多CPU实际上使用CPU最多的是tikv, 那么问题来了,tikv和tidb只能使用整个CPU的一半资源了啊,在tikv CPU不够的时候,不能使用tidb的绑定的CPU了啊
是arm的numa吗?是的话,建议找下服务器工程师调下优(特别是网络 ![]()
就是麒麟的arm啊,不会这么坑吧?还要搞网络,官方文档内核参数里也没有要求调网络参数的啊,这怎么搞?
是taishan系列服务器吗?kunpeng 920
我打算放弃numa,不绑核,正常的干活,绑核CPU就会瓜分了,不够的情况下又不能去借。
arm不绑numa 或 把numa关了,性能会非常差;当初我们测cockroachdb,绑和不绑性能有5倍差距
服务器4个numa node, 服务器混合部署要安装tikv,tidb,pd,prometheus,grafara
这4个也不够用啊…关键这还是个vmware虚拟机
只有一台裸金属?
VMware 没开启 vNUMA 透传,看到的numa拓扑可能是假的
老破小的旧物理机然后加了内存和硬盘,装成vmware集群,在vmware里安装3台虚拟机安装tidb
你们是商业用户吗?是的话装敏捷版
(敏捷版的tidbserver、pd、tikv是合在一起的)
不是商业用户。
虚拟机的话,应该不存在numa,直接建cvm装组件
在 TiDB 生产环境中,仅开启硬件 NUMA(BIOS 启用)是远不够的,必须进行 NUMA 绑定(CPU + 内存)
绑定numa只是为了防止节点之间争抢资源,你也可以光给tidb绑定numa,限制他只能用1一个node,但是tikv不限制啊。。。可以防止tidb抢tikv的资源,但是不限制tikv抢tidb的资源。。。