尽管激活了压缩,但 TimescaleDB 高磁盘 space 使用率
TimescaleDB high disk space usage despite compression activated
我在 Docker 上有一个 TimescaleDB 数据库 运行(在 Ubuntu 上是 运行)。
正如您所猜到的,我在其中存储了大量时间序列数据并节省磁盘space 我激活了压缩策略:
ALTER TABLE measurements SET (
timescaledb.compress,
timescaledb.compress_orderby = 'time DESC',
timescaledb.compress_segmentby = 'device'
)
SELECT add_compression_policy('measurements', INTERVAL '2 weeks')
如果我检查压缩统计数据,我会得到 result 我期望:
- 压缩前 --> 81GB
- 压缩后 --> 3900MB
直到这里一切都很好,除了它没有释放实际磁盘 space 并且包含 TimescaleDB 文件的 Docker 文件夹正在增长如果一开始就没有激活压缩。
对整个数据库进行 VACUUM 操作没有任何效果,除了占用额外的 1GB 磁盘 space。
编辑:
by disk space 我的意思是具体挂载timescaleDB卷的fs目录,数据库文件存放在主机上。
事实证明一切正常,我只是被 compression_stats 告诉我的东西骗了。
最后压缩是活跃的,但是块不够旧所以它们还没有被压缩,只是待处理被压缩。
我们通过手动检查区块状态注意到了它。
感谢所有发表评论的人。
我在 Docker 上有一个 TimescaleDB 数据库 运行(在 Ubuntu 上是 运行)。 正如您所猜到的,我在其中存储了大量时间序列数据并节省磁盘space 我激活了压缩策略:
ALTER TABLE measurements SET (
timescaledb.compress,
timescaledb.compress_orderby = 'time DESC',
timescaledb.compress_segmentby = 'device'
)
SELECT add_compression_policy('measurements', INTERVAL '2 weeks')
如果我检查压缩统计数据,我会得到 result 我期望:
- 压缩前 --> 81GB
- 压缩后 --> 3900MB
直到这里一切都很好,除了它没有释放实际磁盘 space 并且包含 TimescaleDB 文件的 Docker 文件夹正在增长如果一开始就没有激活压缩。
对整个数据库进行 VACUUM 操作没有任何效果,除了占用额外的 1GB 磁盘 space。
编辑:
by disk space 我的意思是具体挂载timescaleDB卷的fs目录,数据库文件存放在主机上。
事实证明一切正常,我只是被 compression_stats 告诉我的东西骗了。
最后压缩是活跃的,但是块不够旧所以它们还没有被压缩,只是待处理被压缩。
我们通过手动检查区块状态注意到了它。
感谢所有发表评论的人。