我们发现了这个问题。配置如下:
Aerospike version : 3.14
Underlying hard disk : non-SSD
Variable Name Value
memory-size 5 GB
free-pct-memory 98 %
available_pct 4 %
max-void-time 0 millisec
stop-writes 0
stop-writes-pct 90 %
hwm-breached true
default-ttl 604,800 sec
max-ttl 315,360,000 sec
enable-xdr false
single-bin false
data-in-memory false

有人能帮我们解决这个问题吗?这可能是什么潜在的原因?
发布于 2017-12-14 02:21:43
Aerospike仅写入空闲块。一个块可以包含任意数量的符合条件的记录。如果您的写/更新模式使得一个块永远不会低于50%的活动记录(碎片整理的默认阈值:defrag-lwm-pct),那么您就有一堆无法利用的“空”空间。在managing storage页面上阅读有关碎片整理的更多信息。
对于看不到任何写入的集群,从这种情况下恢复要容易得多。您可以增加碎片整理-lwm-pct,以便更多数据块符合条件并进行碎片整理。
另一个原因可能是硬盘速度不够快,无法跟上碎片整理的步伐。
您可以在Aerospike KB - Recovering from Available Percent Zero中阅读有关可能的分辨率的更多信息。不要读过“在节点上停止服务...”
发布于 2017-12-14 07:17:48
您基本上没有对持久性存储设备(每个节点75 per )进行碎片整理。从您发布的快照中,您在3个节点上有大约100万条记录,其中2100万条记录已过期。因此,看起来您正在使用非常短的ttl写入记录,而碎片整理无法跟上。
当您处于以下状态时,您是否可以发布几行的输出:
$ grep defrag /var/log/aerospike/aerospike.log和
$ grep thr_nsup /var/log/aerospike/aerospike.log?
您的写入/更新负载是多少?我怀疑您只是在创建简短的ttl记录和读取,而不是更新。
根据您正在做的事情,增加defrag-lwm-pct实际上可能会使情况变得更糟。我也会调整nsup-delete-sleep从100微秒的默认值,但这将取决于您的日志greps上面显示什么。所以把它们张贴出来,让我们看看。
(编辑:此外,即使在持久性存储上超过50%的HWM,您也看不到驱逐的事实,这意味着您的nsup线程需要很长时间才能运行。这再次指向需要为您的设置调整的nsup-delete-sleep值。)
https://stackoverflow.com/questions/47790686
复制相似问题