环境
一共 4 个 TiKV 实例,CPU 数量每个实例 30-40 核不等。
需要特别说明的是 TiKV 都是机械硬盘,不是 SSD!
插入数据
插入数据量 80000 条左右,只有两个字段。
单线程批量插入
可以看到单线程批量 insert 效率非常低,OPS 只有 100 左右,80000 条记录插入花了差不多 13 分钟。
这个过程中 TiKV 实例的 I/O 比较紧张。按照 TiDB 的文档,IO Util “一般到 80% - 90% 就需要考虑加节点”。
虽说 TiDB 是专门针对 SSD 开发的,但机械硬盘真的就这么不堪吗?俺不甘心,所以试了下多线程批量插入。
多线程批量插入
分别尝试了 3 线程、10 线程、50 线程的批量插入,结果喜人:
如上图所示,50 线程的情况下 OPS 直接上升到 2K,80000 条记录的插入时间缩短到了不到一分钟。
与此同时 IO Util 的使用量:
虽然 IO Util 的值在 80% 左右可以说是到了瓶颈,但线程的增加貌似并没有带来更大的压力提升。资源消耗的增加体现在了 CPU 上:
可见增加 TiKV 集群中的核数和并发量,可以显著的提升 TiDB 插入效率。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。