这边使用的是最新3.4.1版本 我看默认建库的时候是二级压缩的 我使用的是原生连接 我在进行大批量数据入库的时候 发现磁盘占用空间增长很快 入库程序执行了可能就半个小室 产生数据空间有七八个G的空间 貌似没有感受到压缩空间 所以想请问 这个二级压缩是有延迟的? 还是有啥机制 需要这边做啥处理
我这边补充一下 我觉得可能需要延迟处理 然后呢 我就等了半个小时 但是空间没有变化 然后我就停了涛思服务 重启了 我的空间 从原来的21G变成了14G 另外这是我建库语句 create database mydb_unit10 CACHEMODEL ‘last_value’ CACHESIZE 64 COMP 2 wal_level 2 wal_fsync_period 3000;
继续补充 周六最后查询了磁盘vnode显示8.4g 然后周一来查询还是8.4g 然后我重新启动了涛思 又变成了1.6g 1.6G /home/program/taos/lib/taos/vnode
写入后,除了落盘到数据文件中, wal 文件还会保存一段时间(由建库参数中 WAL_RETENTION_PERIOD 决定,缺省是 3600秒)。所以最后真正的落盘到磁盘上的大小,应该减去 wal 文件大小。或者你可以修改 WAL_RETENTION_PERIOD 为0, 然后写入一定数据后,做一下 flush database 数据库名; 然后再到 data 目录下 查询实际磁盘大小。这个应该就是准确的了。
那请问下 这个参数如果设置成0之后 如果我不flush的话 多久会变成压缩后的空间呢
另外 还有这个压缩的时间这个能预估吗 如果压缩需要时间 我这边预估需要服务器多大的磁盘 我得考虑进去
只要落盘就会压缩。压缩时间基本可以忽略。
你只要考虑数据需要保存多长时间,比如 1年,那么1年的数据量有多大,根据实际测试的数据量配置磁盘容量就好。比如你实际测试写入1个月的数据,全部flush 落盘后,磁盘占用 100G,那么保存1年,那么就得配置 1200G 的磁盘容量。
好的 那这个落盘的操作 比如我插入一个月的数据量 我不人为的flush的话 我参数设置成0 是不是立马就会落盘 就可以查看占用空间了
先保存到内存中,只有达到一定累计量,才进行一次落盘。没有达到落盘条件的数据仍然在内存中,只有 flush 才会强制内存中的数据全部落盘。


