部署启动时 tikv port is not up

为提高效率,请提供以下信息,问题描述清晰能够更快得到解决:

【TiDB 版本】
v3.0.8

【问题描述】
共三台虚拟机,混布3pd,3tidb,3tikv
部署成功后,启动的时候,tikv一直起不来,dmesg -T | grep tikv-server 看了下,tikv-server一直oom被kill。

[Mon Feb 22 10:22:03 2021] Out of memory: Kill process 15876 (tikv-server) score 878 or sacrifice child
[Mon Feb 22 10:22:03 2021] Killed process 15876 (tikv-server), UID 1001, total-vm:32413804kB, anon-rss:7016204kB, file-rss:0kB, shmem-rss:0kB

想问下这种如何解决,是因为一个机器承载太多组件的关系吗


若提问为性能优化、故障排查类问题,请下载脚本运行。终端输出的打印结果,请务必全选并复制粘贴上传。

如果是 OOM 的话是 Linux 操作系统方式内存占用过多的保护机制,这个需要看下你们的机器配置情况。

2核 8G 还需要看其他的配置吗

这个是官方推荐的开发及测试环境配置:https://docs.pingcap.com/zh/tidb/dev/hardware-and-software-requirements#开发及测试环境

因为你们是混合部署,所以对比起来看的话资源相对不足。可以参考帖子 TiKV内存占用参数修改问题,在线修改配置文件失败 修改一下 TiKV 对应内存占用参数,看是否可以。

我已经调整节点结构,共6台机器,前3台混布pd和tidb,后3台只部署tikv,而且也修改了tikv.yml中block-cache下的capacity参数为 512MB,但是启动的时候,tikv还是oom起不来。

那可以看下未启动的时候,服务器的内存占用情况,看下是什么进程导致内存占用高。oom 这个主要还是从操作系统排查。

TASK [wait until the TiDB port is up]
现在走到这里失败,查看tidb.log

[2021/02/22 16:08:03.957 +08:00] [WARN] [client_batch.go:223] [“init create streaming fail”] [target=192.168.116.49:20160] [error=“context deadline exceeded”]
[2021/02/22 16:08:03.957 +08:00] [INFO] [region_cache.go:902] [“mark store’s regions need be refill”] [store=192.168.116.49:20160]
[2021/02/22 16:08:03.957 +08:00] [INFO] [region_cache.go:401] [“switch region peer to next due to send request fail”]

tikv.log 无异常信息
tikv机器 df -h 空间足够,df -i inode也正常。

  1. 集群有没有开 binlog
  2. grep -i welcome tikv.log 以及 pd.log 看下是否有不断重启的情况