压测持续写入时, 速度越来越慢

【 TiDB 使用环境】测试

【 TiDB 版本】6.5.0

【复现路径】持续写入一张表

【遇到的问题:问题现象及影响】
压测发现速度越来越慢, 不知道瓶颈是什么

【资源配置】
tidb: 8C32G SSD 300 G2
tipd: 8C16G SSD 300 G
3
tikv: 16C32G SSD 1500 G *3

【附件:截图/日志/监控】






数据写入太快,而磁盘落地比较慢,导致系统进入了 write stall?
要看下IO和kv日志。

当对 TiDB 进行压测持续写入时,如果速度越来越慢,可能是由于多种原因导致的,以下是一些可能的原因和解决方法:

  1. TiKV 节点负载过高,导致写入速度变慢。可以通过增加 TiKV 节点数量或者升级 TiKV 节点配置来缓解负载过高的问题。

  2. TiDB 写入热点过高,导致写入速度变慢。可以通过调整表结构或者使用 TiDB 内置的分区表来缓解写入热点过高的问题。

  3. TiDB 写入过程中出现了锁竞争,导致写入速度变慢。可以通过调整 TiDB 的事务隔离级别或者增加 TiDB 实例数量来缓解锁竞争的问题。

  4. TiDB 写入过程中出现了慢查询,导致写入速度变慢。可以通过分析慢查询日志来找到慢查询的原因,并进行优化。

  5. TiDB 写入过程中出现了磁盘 IO 瓶颈,导致写入速度变慢。可以通过升级磁盘或者增加磁盘数量来缓解磁盘 IO 瓶颈的问题。

需要根据具体情况进行分析和解决,建议先通过监控工具查看 TiDB 集群的各项指标,找到问题所在,再进行相应的优化。

你是用的什么工具做压测的?

在持续写入一张表的过程中,可能会出现多种瓶颈。以下是一些可能的瓶颈及其解决方法:

  1. 硬件资源瓶颈:如果写入速度越来越慢,可能是因为硬件资源不足,例如磁盘、内存、CPU等。可以通过监控系统资源使用情况来判断是否存在硬件资源瓶颈,并考虑升级硬件或优化系统配置。

  2. 网络瓶颈:如果写入速度越来越慢,可能是因为网络带宽不足或网络延迟过高。可以通过监控网络带宽和延迟来判断是否存在网络瓶颈,并考虑优化网络配置或升级网络设备。

  3. 数据库瓶颈:如果写入速度越来越慢,可能是因为数据库出现了瓶颈。例如,写入操作过于频繁导致锁竞争、写入操作过于频繁导致日志写满、写入操作过于频繁导致缓存命中率下降等。可以通过监控数据库性能指标来判断是否存在数据库瓶颈,并考虑优化数据库配置或升级数据库版本。

  4. 应用程序瓶颈:如果写入速度越来越慢,可能是因为应用程序出现了瓶颈。例如,应用程序写入数据的方式不够高效、应用程序写入数据的并发度不够高等。可以通过优化应用程序代码来提高写入速度。

综上所述,需要根据具体情况来判断瓶颈所在,并采取相应的措施来解决问题。

没有用工具, 直接写程序模拟生产环境的写入逻辑

补充了一些监控图片, 有什么思路吗

我能提供一些粗略的思路和我自己的观察。细致的我也提供不了。

我还没看到你那么细致的图。我就看tidb dashbroad里面这个图。

我这边tidb和tikv都是4c8g。2tidb4tikv。在连续导入的时候,4个tikv 每个cpu都可以到380%.2个tidb 每个cpu撑死1-200%.tikv io 才30M左右。这个存储虽然垃圾,但读写起码也能到150M左右的。

所以我自己的集群来说,瓶颈在tikv的cpu上。
但要往下细分,看那些指标我也不清楚了。 :sweat_smile:
水平有限。抛砖引玉吧。我也蹲一蹲,有没有更进一步的观察方式。

1、麻烦说明一下程序写入数据方式?高并发异步写入还是单批次写入。
2、发一下写入的热力图看一下,是否存在热点问题导致的;
3、同时也要监控一下写入程序所在服务器的cpu,io,网络等使用情况;

ssd是否有缓存也考虑下,缓存耗尽也会很影响速度

这是符合规律的,只是下降速度快慢的问题

存储数据变大消耗的资源也会增多,服务器负载变高 写入速度肯定是变慢的

其他数据库估计也会有这种情况,应该算正常吧