ssdb icon indicating copy to clipboard operation
ssdb copied to clipboard

SSDB占用硬盘空间的问题

Open BeaverCC opened this issue 7 years ago • 5 comments
trafficstars

你好,阅读了SSDB的文档,关于SSDB使用硬盘策略还是有些问题,请教下

以下是我的操作步骤

  1. 我有一个SSDB实例,放了4.8G的数据,里面只有kv结构数据。
  2. 我写代码遍历,删除了所有数据,删除完之后占用硬盘1.4G,此时info返回信息为
ssdb 127.0.0.1:8888> info
version
	1.9.4
links
	18
total_calls
	28897
dbsize
	1339644712
binlogs
	    capacity : 20000000
	    min_seq  : 1
	    max_seq  : 117276
serv_key_range
	    kv  : "" - ""
	    hash: "" - ""
	    zset: "" - ""
	    list: "" - ""
data_key_range
	    kv  : "" - ""
	    hash: "" - ""
	    zset: "" - ""
	    list: "" - ""
leveldb.stats
	                               Compactions
	Level  Files Size(MB) Time(sec) Read(MB) Write(MB)
	--------------------------------------------------
	  1        0        0         3      186        30
	  2        0        0        19      740       586
	  3       48     1281        43     4979      1709

17 result(s) (0.962 sec)
  1. 重启了SSDB实例,占用文件变为673M,此时的info返回信息为
ssdb 127.0.0.1:8888> info
version
	1.9.4
links
	1
total_calls
	2
dbsize
	0
binlogs
	    capacity : 20000000
	    min_seq  : 1
	    max_seq  : 117276
serv_key_range
	    kv  : "" - ""
	    hash: "" - ""
	    zset: "" - ""
	    list: "" - ""
data_key_range
	    kv  : "" - ""
	    hash: "" - ""
	    zset: "" - ""
	    list: "" - ""
leveldb.stats
	                               Compactions
	Level  Files Size(MB) Time(sec) Read(MB) Write(MB)
	--------------------------------------------------
	  0        0        0         0        0         2
	  2        0        0         0        2         2
	  3        1        4         0     1283         4

17 result(s) (0.001 sec)

以下是我的问题

  1. 是否有方法可以完全删除SSDB里面的数据,释放硬盘空间
  2. 想知道,数据已经完全删掉了,为什么还占用那么多硬盘空间
  3. 重启减少实际存储空间的现象,是不是说明,过一段时间重启下,会有利于硬盘空间利用。
  4. 我们的应用场景是,反复的存和删,按照上述测试,是不是会导致存储空间利用率越来越低。

希望有时间可以解答以下,谢谢。

另:统计硬盘实际存储文件,用的是./var文件夹

BeaverCC avatar Apr 16 '18 09:04 BeaverCC

var目录会包含data, meta, 日志和其它文件。另外,SSDB只占用额外的固定空间,不会无限增长。

ideawu avatar Apr 18 '18 04:04 ideawu

在 ssdb-cli 里执行 flushdb 可以同时清理 data 和 meta 数据。

ideawu avatar Apr 18 '18 04:04 ideawu

那看来不用担心存储空间的问题,不过,为什么删掉的数据不会立刻体现出来呢,要重启SSDB才会看到占用硬盘明显下降。

BeaverCC avatar Apr 20 '18 01:04 BeaverCC

SSDB有自己删除数据的逻辑,会综合考虑性能和空间占用。

ideawu avatar Apr 25 '18 12:04 ideawu

默认占用的空间大小是多大

mix0313 avatar Aug 28 '18 08:08 mix0313