安装部署 FAQ

    操作系统版本要求如下表:

    TiDB 作为一款开源分布式 NewSQL 数据库,可以很好的部署和运行在 Intel 架构服务器环境及主流虚拟化环境,并支持绝大多数的主流硬件网络,作为一款高性能数据库系统,TiDB 支持主流的 Linux 操作系统环境,具体可以参考 TiDB 的官方部署要求

    其中 TiDB 在 CentOS 7.3 的环境下进行大量的测试,同时也有很多这个操作系统的部署最佳实践,因此,我们推荐客户在部署 TiDB 的时候使用 CentOS 7.3+ 以上的 Linux 操作系统。

    TiDB 支持部署和运行在 Intel x86-64 架构的 64 位通用硬件服务器平台。对于开发、测试、及生产环境的服务器硬件配置有以下要求和建议:

    开发及测试环境

    生产环境

    两块网卡的目的是?万兆的目的是?

    作为一个分布式集群,TiDB 对时间的要求还是比较高的,尤其是 PD 需要分发唯一的时间戳,如果 PD 时间不统一,如果有 PD 切换,将会等待更长的时间。两块网卡可以做 bond,保证数据传输的稳定,万兆可以保证数据传输的速度,千兆网卡容易出现瓶颈,我们强烈建议使用万兆网卡。

    SSD 不做 RAID 是否可行?

    • TiDB 需要 CPU 和内存比较好的机器,参考官网配置要求,如果后期需要开启 TiDB Binlog,根据业务量的评估和 GC 时间的要求,也需要本地磁盘大一点,不要求 SSD 磁盘;
    • TiKV 对 CPU、内存、磁盘要求都比较高,一定要用 SSD 磁盘。

    详情可参考 。

    如果用于生产环境,推荐使用 TiUP TiDB 集群。

    为什么修改了 TiKV/PD 的 toml 配置文件,却没有生效?

    这种情况一般是因为没有使用 --config 参数来指定配置文件(目前只会出现在 binary 部署的场景),TiKV/PD 会按默认值来设置。如果要使用配置文件,请设置 TiKV/PD 的 --config 参数。对于 TiKV 组件,修改配置后重启服务即可;对于 PD 组件,只会在第一次启动时读取配置文件,之后可以使用 pd-ctl 的方式来修改配置,详情可参考 。

    TiDB 监控框架 Prometheus + Grafana 监控机器建议单独还是多台部署?

    监控机建议单独部署。建议 CPU 8 core,内存 16 GB 以上,硬盘 500 GB 以上。

    有一部分监控信息显示不出来?

    查看访问监控的机器时间跟集群内机器的时间差,如果比较大,更正时间后即可显示正常。

    supervise/svc/svstat 服务具体起什么作用?

    • supervise 守护进程
    • svc 启停服务
    • svstat 查看进程状态

    如何单独记录 TiDB 中的慢查询日志,如何定位慢查询 SQL?

    1. 如果出现了慢查询,可以从 Grafana 监控定位到出现慢查询的 tidb-server 以及时间点,然后在对应节点查找日志中记录的 SQL 信息。

    2. 除了日志,还可以通过 admin show slow 命令查看,详情可参考 。

    首次部署 TiDB 集群时,没有配置 tikv 的 Label 信息,在后续如何添加配置 Label?

    TiDB 的 Label 设置是与集群的部署架构相关的,是集群部署中的重要内容,是 PD 进行全局管理和调度的依据。如果集群在初期部署过程中没有设置 Label,需要在后期对部署结构进行调整,就需要手动通过 PD 的管理工具 pd-ctl 来添加 location-labels 信息,例如:(根据实际的 label 层级名字配置)。

    pd-ctl 的使用参考 。

    为什么测试磁盘的 dd 命令用 oflag=direct 这个选项?

    Direct 模式就是把写入请求直接封装成 I/O 指令发到磁盘,这样是为了绕开文件系统的缓存,可以直接测试磁盘的真实的 I/O 读写能力。

    如何用 fio 命令测试 TiKV 实例的磁盘性能?

    • 顺序写和随机读混合测试: