Grafana面板的overview的system Info页面的io util 面板有一个pd节点显示的io消耗过高

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。

  • 【TiDB 版本】:v3.0.8
  • 【问题描述】:

集群部署好了,但是通过监控页面查看性能,发现其中一个pd节点的io消耗很高,其他节点都正常

1.该 PD 节点是否与其他节点混合部署?

2.使用 iotop 查看下当前占用 IO 最高的进程,是否是 tidb 集群占用 IO 较高,可以对应监控查看,如果是其他进程导致该节点 IO 使用较高,建议将其他进程停掉。避免资源抢占。

你说的混合部署是什么意思?我是每个机器上面一个服务,tidb-server,pd和tikv都是单独的,没有混合部署

混合部署指的是,在一台机器上部署了 PD 、tidb-server 或者 tikv-server 多个进程。既然没有混合部署,那按照第二步检查一下。

  1. 在io消耗高的服务器上执行以下命令: (1)df -h
    (2)fdisk -l (3)iostat -x -d 1 10
  2. 在去监控截取当前io使用情况

从你的 top 监控看,应该是一台 物理机 部署了 2 个 PD Server ,这个不对,单个物理机上面应该是 1 个 pd。如果可以麻烦提供一下 inventory.ini

还真不是混合部署,我这里都是单机部署的,一个机器就放一个应用,感觉好奇怪这个问题

你在问题的节点执行 “ps -ef |grep tidb” ,反馈结果

请通过 i/o top 证明的确是 PD Server 导致 I/O 使用率高,从以上截图看没有发现达到 > 90% 的 Server ,另外你是用 PD 对应的磁盘是否为 SSD ,如果不是建议调整。PD 对于磁盘的读写性能也非常敏感。

我还是不理解,我用io top的命令明明显示的io的消耗很低的,才0.11%,怎么就是pd导致的io使用率很高,另外,我所有节点的磁盘都是ssd的,也不是这个原因

所以要去确认这个原因是啥 ? 如果不是服务,是不是监控数据问题,这个需要借助 prometheus 的 blockbox_exporter 和 nodebox_exporter 的定制服务抓去的信息是否准确。

没有你说的那两种服务啊。搜不到

这个是监控服务,是 prometheus 提供的,需要根据这个现象分析一下,具体你可以确认一下

我不懂你说的prometheus 的 blockbox_exporter 和 nodebox_exporter这两个怎么去看,在哪里看 请提供一下详细的操作流程截图

你说的这些专业名词,我都没有接触过,根本搞不懂你说的什么意思,绕了一大半天,根本还没有解决实质性问题,而且你们说的那些原因都排除了,上面截图都是我集群的情况

我在这台有问题的节点上,执行iotop,发现消耗io最高的pd-server也不过才0.19%, 但是通过监控上看却一直是很高

麻烦重启一下节点 172.21.3.44 节点的 blockbox_exporter 和 nodebox_exporter 的服务重启一下,看看是否可以恢复。

ssh 172.21.3.44
cd $deploy_dir/scripts
sh stop_node_exporter.sh
sh stop_blackbox_exporter.sh
sh start_node_exporter.sh
sh start_blackbox_exporter.sh

通过iotop查看pd进程消耗的io并不高,是不是排除了硬件问题,ssd盘损坏的问题,我之前也怀疑过磁盘问题,那么总结下来还是监控数据,或者集群的性能有问题是吧

尝试滚动重启 prometheus ,在中控机

cd tidb-ansible/
ansible-playbook rolling_update_monitor.yml --tags=prometheus

升级好了,还是这样

再确认一下 I/O Util 的 pquery 是不是 “irate(node_disk_io_time_seconds_total[1m])”

您发的这个监控对应的查询语句是没有问题的,所以建议再确认一下 iostat 和 I/O top 显示的是否一致 。

麻烦通过 iostat 在验证一下 I/O util 和 监控里面的 3.44 的 I/O until 能不能对上。 iostat -x -m 5

grafana 显示的 sysinfo 中 I/O util 的 3.44 的监控情况是否可以对上,我这边自己验证一下,是没有问题的。你可以再辛苦验证一下,验证时间上一点,5 分钟左右的 iostat 监控 和 5 分钟的 grafana 显示的监控。