请问麒麟系统安装tidb,内核参数需要配置哪些?

官方文档涉及到内核参数调整的很少,不知道下面这些参数需不需要在麒麟v10中设置:

net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.rmem_max= 4194304
net.core.wmem_default= 262144
net.core.wmem_max= 1048576

官方文档提供的应该是最低要求,可以满足正常运行的内核参数。
如果有自定义要求,可以自行尝试调整。

参考红帽的配置就行啊

如下链接是安装前的环境准备,只需要按照官方要求调整下系统参数即可:https://docs.pingcap.com/zh/tidb/stable/check-before-deployment/

按照官方文档推荐的配置就行了

参数主要涉及网络缓冲区和端口范围

1. net.ipv4.ip_local_port_range = 9000 65500

  • 作用 :定义 TCP/UDP 临时端口的范围。
  • 分析 :TiKV 和 TiDB Server 之间通信非常频繁(Raft heartbeats, gRPC calls)。默认的端口范围可能较小,如果连接数极高,可能会导致“端口耗尽”。
  • 建议建议修改 。但通常建议起始端口不要低于 32768(避免与一些服务端口冲突)。更推荐参考 TiDB 官方建议的 26000 65535 或者 32768 60999

2. net.core.rmem_default & net.core.rmem_max (接收缓冲区)

  • 作用 :控制套接字接收缓冲区的默认值和最大值。
  • 分析 :对于跨节点的数据复制(Replication)和大查询结果集的传输,较大的接收缓冲区可以减少丢包,提升吞吐量。
  • 建议建议设置
    • 您的值 (262144 / 4194304 ) 是合理的。
    • 特别注意 :如果您的服务器内存非常充裕(> 64G),且网络是 10Gbps 或更高,建议将 rmem_max 提高到 16777216 (16MB) 甚至更高,以适应长胖网络(BDP)。

3. net.core.wmem_default & net.core.wmem_max (发送缓冲区)

  • 作用 :控制套接字发送缓冲区的默认值和最大值。
  • 分析 :与接收缓冲区类似,影响数据写入和同步的速度。
  • 建议建议设置 。您的配置值是通用的优化值,可以采用。

https://docs.pingcap.com/zh/tidb/stable/check-before-deployment/
https://docs.pingcap.com/zh/tidb/stable/check-before-deployment/ 按照推荐手册

在麒麟 V10 是否必须设置

一般数据库服务器结论

参数 是否必须
ip_local_port_range :star: 推荐
rmem_default 可不调
rmem_max 可不调
wmem_default 可不调
wmem_max 可不调

原因:

  • 现代 Linux TCP autotuning 会自动调整缓冲区
  • 默认值已经比较合理
1 个赞

TiDB / 分布式数据库情况

你平时做 TiDB / 分布式数据库,这里有一点不同。

TiDB组件之间通信很多:

  • TiDB ↔ TiKV
  • TiDB ↔ PD
  • TiKV ↔ TiKV
  • CDC / BR

如果 网络吞吐比较高

建议设置:

net.core.rmem_max = 16777216
net.core.wmem_max = 16777216

这样可以提高 大数据同步性能

1 个赞

其实操作系统的配置,对于上层应用来说都差不多