[转帖]TiDB的tikv节点的压缩算法

tidb,tikv,节点,压缩算法 · 浏览次数 : 0

小编点评

**TiDB 的 RocksDB 压缩** **简介** RocksDB 的默认压缩算法为 [no:no:lz4:lz4:lz4:zstd:zstd],表示: * **no:** 不压缩 * **lz4:** lz4 压缩算法 * **zlib:** zlib 压缩算法 * **bzip2:** bzip2 压缩算法 * **lz4hc:** lz4 压缩算法,高速且高效 * **zstd:** zstd 压缩算法 **压缩方式** RocksDB6层的压缩为 [no:no:lz4:lz4:lz4:zstd:zstd] 表示: * **level0 和 level1 不压缩** * **level2 到 level4 采用 lz4 压缩算法** * **level5 和 level6 采用 zstd 压缩算法** **最佳压缩方式** 根据 CPU 和 I/O 资源情况,可配置压缩方式以最大限度地利用系统资源。 **示例** 如果采用的压缩方式为 `no:no:lz4:lz4:lz4:zstd:zstd`,在大量写入数据的情况下,系统 I/O 压力很大,而 CPU 的资源也比较充裕。在这种情况下,可以考虑将 `level0` 和 `level1` 开启压缩,以减少 I/O 压力,同时保留性能。

正文

简介:TiDB的tikv节点实用的RocksDB,RocksDB的默认压缩算法为:[no:no:lz4:lz4:lz4:zstd:zstd]

RocksDB 每一层数据的压缩方式,可选的值为:no,snappy,zlib,bzip2,lz4,lz4hc,zstd。

RocksDB6层的压缩为:[no:no:lz4:lz4:lz4:zstd:zstd]

表示 level0 和 level1 不压缩;

level2 到 level4 采用 lz4 压缩算法;

level5 和 level6 采用 zstd 压缩算法。

no 表示没有压缩,lz4 是速度和压缩比较为中庸的压缩算法,zlib 的压缩比很高,对存储空间比较友好,但是压缩速度比较慢,压缩的时候需要占用较多的 CPU 资源。

不同的机器需要根据 CPU 以及 I/O 资源情况来配置怎样的压缩方式。

例如:如果采用的压缩方式为"no:no:lz4:lz4:lz4:zstd:zstd",在大量写入数据的情况下(导数据),发现系统的 I/O 压力很大(使用 iostat 发现 %util 持续 100% 或者使用 top 命令发现 iowait 特别多),而 CPU 的资源还比较充裕,这个时候可以考虑将 level0 和 level1 开启压缩,用 CPU 资源换取 I/O 资源。

如果采用的压缩方式为"no:no:lz4:lz4:lz4:zstd:zstd",在大量写入数据的情况下,发现系统的 I/O 压力不大,但是 CPU 资源已经吃光了,top -H 发现有大量的 bg 开头的线程(RocksDB 的 compaction 线程)在运行,这  个时候可以考虑用 I/O 资源换取 CPU 资源,将压缩方式改成"no:no:no:lz4:lz4:zstd:zstd"。

总之,目的是为了最大限度地利用系统的现有资源,使 TiKV 的性能在现有的资源情况下充分发挥。 compression-per-level = ["no", "no", "lz4", "lz4", "lz4", "zstd", "zstd"]

文章知识点与官方知识档案匹配,可进一步学习相关知识
算法技能树首页概览50439 人正在系统学习中

与[转帖]TiDB的tikv节点的压缩算法相似的内容:

[转帖]TiDB的tikv节点的压缩算法

简介:TiDB的tikv节点实用的RocksDB,RocksDB的默认压缩算法为:[no:no:lz4:lz4:lz4:zstd:zstd] RocksDB 每一层数据的压缩方式,可选的值为:no,snappy,zlib,bzip2,lz4,lz4hc,zstd。 RocksDB6层的压缩为:[no

[转帖]TiKV 缩容不掉如何解决?

https://tidb.net/book/tidb-monthly/2022/2022-04/usercase/tikv TiKV节点缩容不掉,通常遇到的情况: 1、经常遇到的情况是:3个节点的tikv集群缩容肯定会一直卡着,因为没有新节点接受要下线kv的region peer。 2、另外就是除缩

[转帖]7.5 TiKV 磁盘空间占用与回收常见问题

https://book.tidb.io/session4/chapter7/compact.html TiKV 作为 TiDB 的存储节点,用户通过 SQL 导入或更改的所有数据都存储在 TiKV。这里整理了一些关于 TiKV 空间占用的常见问题 TiKV 的空间放大 监控上显示的 Number

[转帖]TIKV扩容之刨坑填坑​

01 背景 某tidb集群收到告警,TIKV 节点磁盘使用率85%以上,联系业务无法快速删除数据,于是想到扩容TIKV 节点,原先TIKV 节点机器都是6TB的硬盘,目前只有3TB的机器可扩,也担心region 均衡后会不会打满3TB的盘,PD 调度策略来看应该是会根据不同存储机器的资源配置和使用情

[转帖]使用 TiUP 扩容缩容 TiDB 集群

https://docs.pingcap.com/zh/tidb/stable/scale-tidb-using-tiup TiDB 集群可以在不中断线上服务的情况下进行扩容和缩容。 本文介绍如何使用 TiUP 扩容缩容集群中的 TiDB、TiKV、PD、TiCDC 或者 TiFlash 节点。如未

[转帖]使用 TiUP 扩容缩容 TiDB 集群

https://docs.pingcap.com/zh/tidb/stable/scale-tidb-using-tiup TiDB 集群可以在不中断线上服务的情况下进行扩容和缩容。 本文介绍如何使用 TiUP 扩容缩容集群中的 TiDB、TiKV、PD、TiCDC 或者 TiFlash 节点。如未

[转帖]使用 TiUP 扩容缩容 TiDB 集群

https://docs.pingcap.com/zh/tidb/stable/scale-tidb-using-tiup TiDB 集群可以在不中断线上服务的情况下进行扩容和缩容。 本文介绍如何使用 TiUP 扩容缩容集群中的 TiDB、TiKV、PD、TiCDC 或者 TiFlash 节点。如未

[转帖]三节点混合部署的最佳实践

https://docs.pingcap.com/zh/tidb/stable/three-nodes-hybrid-deployment#%E5%8F%82%E6%95%B0%E8%B0%83%E6%95%B4 在对性能要求不高且需要控制成本的场景下,将 TiDB、TiKV、PD 混合部署在三台机

[转帖]TIDB - TIDB集群的扩容和缩容及TIUP指令说明

一、TIUP工具简介 前面介绍了使用TIUP搭建TIDB集群,本篇文章详细介绍下使用TIUP对集群进行扩容和缩容。 在面对双十一这种流量突峰的场景,我们平常的TIDB集群有可能承受不住,因此需要提前进行扩容,例如增加tidb-server,以增加TIDB的计算能力,增加tikv-server,增加T

[转帖]TiDB-unsafe recover(三台tikv宕机两台)

一、背景 名称数量tikv3副本3 1.故障: 因为某些原因,两台tikv不可连接,出现region不能访问的故障 2.几条理论: 2.1.多副本原则 存在一半以上的副本则集群访问不受影响(如n副本,存活(n+1)/ 2) 2.2.数据完整性 当副本数量等于tikv的数量的时候,每一个tikv都有全