tidb4.0.0如何定位tidb-server重启原因

你这个服务器内存剩余变化较大啊,是不是 tidb server 服务器上有其他服务再跑啊。理论上 mem quota query 设置服务器内存的 40% 左右就不会出现 oom 的问题。

/proc/meminfo
看下 oom 的阈值多少

tmp 下 file 也是 0 是吗

正常来说我这个参数mem-qutio-size:设置成1G;oom-use-tmp-storage = true 就应该触发,但是就没有触发不知道是哪里出了问题。

准备一台可以访问集群的机器

我们为 TiDB 集群创建的是内网 LoadBalancer。我们可在集群 VPC 内创建一台堡垒机访问数据库。

Copy

gcloud compute instances create bastion \
  --machine-type=n1-standard-4 \
  --image-project=centos-cloud \
  --image-family=centos-7 \
  --zone=<your-region>-a

注意:

<your-region>-a 为集群所在的区域的 a 可用区,比如 us-central1-a。也可在同区域下的其他可用区创建堡垒机。

安装 MySQL 客户端并连接

待创建好堡垒机后,我们可以通过 SSH 远程连接到堡垒机,再通过 MySQL 客户端来访问 TiDB 集群。

  1. 用 SSH 连接到堡垒机:Copy
gcloud compute ssh tidb@bastion
  1. 安装 MySQL 客户端:Copy
sudo yum install mysql -y
  1. 连接到 TiDB 集群:Copy
mysql -h <tidb-nlb-dnsname> -P 4000 -u root

这个由于信息安全问题不能开放出去,我再直接安装一个tidb4.0版本,看看这几个参数是否可用.
如果可用,那就是3.0升级到4.0后出现的问题。还有其他方式可以查询问题么?

1、之前的版本是从3.0.11使用tiup升级到4.0.5版本测试 oom-use-tmp-storagetmp-storage-path tmp-storage-quota这三个参数没有起作用。

2、今天我重新使用tiup部署了一个tidb集群版本4.0.5。
mem-quota-query=1G,做了个大sql查询发现还是没有起作用,这边改如何定位到底是什么原因。截图如下


配置如下:

因为你的参数配置是 oom-action: log ,而不是 oom-action: cancel ,所以在处理 oom-action 的时候,只会输出日志,不会真的取消。可以看一下官方文档的介绍。

那意思这个参数是没有作用的是吧,sql的相关操作都只会消耗tidb服务器的内存而不会使用磁盘来减轻tidb-server的压力。
image

您好,此参数不是所有的 sql 都会生效,目前是针对一些算子, Join/Sort 过程中若使用内存超过 mem-quota-query 阈值时将中间结果写入磁盘 ,多谢。

1 个赞

1、那么针对于大sql没有应用到 Join/Sort的语句,是否有内存使用限制,超过限制的语句转移到磁盘进行计算来减轻内存的使用。
2、后期版本是否有关于tidb-server内存使用的优化。
3、如何查看tidb/tikv/pd各个的配置参数现在使用状态。

  1. 有限制
  2. 版本在不断优化
  3. 可以查看日志

多谢,因为我们这边tidb应用到了生产环境,如果有一台tidb-server 因为大查询或是并发导致重启,会影响到其他服务,所以才一直寻求各位的帮助,对各位提出的建议我这边报以感谢。
但是有些问题还需要帮忙给些建议。
1、对于上面的问题可能是我描述的不是太清楚,我想问的是超过限制( mem-quota-query)的sql,是否会转移到磁盘进行计算来减轻内存的使用,还是只有应用 Join/Sort的语句才会启动临时磁盘。
2、对于tidb-server,oom的问题,是否有哪些配置可以从系统级别做缓解优化,而不影响生产环境服务的正常运行。
3、关于tidb/tikv/pd的配置参数该如何查看全部,类似于我可以查看所有的全局变量而使用SHOW GLOBAL VARIABLES;,那么查看tidb/tikv/pd当前版本具体做了哪些配置该用什么命令查看。

  1. 只有 Join/Sort 的这些算子才会启动临时磁盘,其他的会根据您的配置参数 OOM-ACTION 来决定,是记录sql,还是 cancel sql
  2. 配置多个 tidb-server,如果一个有影响还可以使用其他 tidb-server
  3. 新版本有实验特性,config show 可以使用。 或者就需要您先检查每个启动日志信息了。当然,tiup 是配置的所有节点,检查一个节点就可以确认了。

3、tiup ctl pd -u http://10.0.0.0:2379 config show 这个只能看到调度相关的配置项。而tidb-server和tikv相关的配置看不到,还有什么方式可以查看么。


我去每台服务器上去查看配置也显示的不全

查看tidb.log 和 tikv.log 启动时的信息

看到了多谢

:handshake:

1 个赞