【 TiDB 使用环境】测试
【 TiDB 版本】6.5.0
【复现路径】持续写入一张表
【遇到的问题:问题现象及影响】
压测发现速度越来越慢, 不知道瓶颈是什么
【资源配置】
tidb: 8C32G SSD 300 G2
tipd: 8C16G SSD 300 G3
tikv: 16C32G SSD 1500 G *3
【附件:截图/日志/监控】
【 TiDB 使用环境】测试
【 TiDB 版本】6.5.0
【复现路径】持续写入一张表
【遇到的问题:问题现象及影响】
压测发现速度越来越慢, 不知道瓶颈是什么
【资源配置】
tidb: 8C32G SSD 300 G2
tipd: 8C16G SSD 300 G3
tikv: 16C32G SSD 1500 G *3
【附件:截图/日志/监控】
数据写入太快,而磁盘落地比较慢,导致系统进入了 write stall?
要看下IO和kv日志。
当对 TiDB 进行压测持续写入时,如果速度越来越慢,可能是由于多种原因导致的,以下是一些可能的原因和解决方法:
TiKV 节点负载过高,导致写入速度变慢。可以通过增加 TiKV 节点数量或者升级 TiKV 节点配置来缓解负载过高的问题。
TiDB 写入热点过高,导致写入速度变慢。可以通过调整表结构或者使用 TiDB 内置的分区表来缓解写入热点过高的问题。
TiDB 写入过程中出现了锁竞争,导致写入速度变慢。可以通过调整 TiDB 的事务隔离级别或者增加 TiDB 实例数量来缓解锁竞争的问题。
TiDB 写入过程中出现了慢查询,导致写入速度变慢。可以通过分析慢查询日志来找到慢查询的原因,并进行优化。
TiDB 写入过程中出现了磁盘 IO 瓶颈,导致写入速度变慢。可以通过升级磁盘或者增加磁盘数量来缓解磁盘 IO 瓶颈的问题。
需要根据具体情况进行分析和解决,建议先通过监控工具查看 TiDB 集群的各项指标,找到问题所在,再进行相应的优化。
你是用的什么工具做压测的?
在持续写入一张表的过程中,可能会出现多种瓶颈。以下是一些可能的瓶颈及其解决方法:
硬件资源瓶颈:如果写入速度越来越慢,可能是因为硬件资源不足,例如磁盘、内存、CPU等。可以通过监控系统资源使用情况来判断是否存在硬件资源瓶颈,并考虑升级硬件或优化系统配置。
网络瓶颈:如果写入速度越来越慢,可能是因为网络带宽不足或网络延迟过高。可以通过监控网络带宽和延迟来判断是否存在网络瓶颈,并考虑优化网络配置或升级网络设备。
数据库瓶颈:如果写入速度越来越慢,可能是因为数据库出现了瓶颈。例如,写入操作过于频繁导致锁竞争、写入操作过于频繁导致日志写满、写入操作过于频繁导致缓存命中率下降等。可以通过监控数据库性能指标来判断是否存在数据库瓶颈,并考虑优化数据库配置或升级数据库版本。
应用程序瓶颈:如果写入速度越来越慢,可能是因为应用程序出现了瓶颈。例如,应用程序写入数据的方式不够高效、应用程序写入数据的并发度不够高等。可以通过优化应用程序代码来提高写入速度。
综上所述,需要根据具体情况来判断瓶颈所在,并采取相应的措施来解决问题。
没有用工具, 直接写程序模拟生产环境的写入逻辑
补充了一些监控图片, 有什么思路吗
我能提供一些粗略的思路和我自己的观察。细致的我也提供不了。
我还没看到你那么细致的图。我就看tidb dashbroad里面这个图。
我这边tidb和tikv都是4c8g。2tidb4tikv。在连续导入的时候,4个tikv 每个cpu都可以到380%.2个tidb 每个cpu撑死1-200%.tikv io 才30M左右。这个存储虽然垃圾,但读写起码也能到150M左右的。
所以我自己的集群来说,瓶颈在tikv的cpu上。
但要往下细分,看那些指标我也不清楚了。
水平有限。抛砖引玉吧。我也蹲一蹲,有没有更进一步的观察方式。
1、麻烦说明一下程序写入数据方式?高并发异步写入还是单批次写入。
2、发一下写入的热力图看一下,是否存在热点问题导致的;
3、同时也要监控一下写入程序所在服务器的cpu,io,网络等使用情况;
ssd是否有缓存也考虑下,缓存耗尽也会很影响速度
这是符合规律的,只是下降速度快慢的问题
存储数据变大消耗的资源也会增多,服务器负载变高 写入速度肯定是变慢的
其他数据库估计也会有这种情况,应该算正常吧