执行完compact后性能大幅下降是什么原因

nebula 版本:2.5.1
部署方式:分布式
硬件信息
SSD 400G
CPU 24核、内存 30g
问题的具体描述
向nebula持续大量插入数据,每次耗时约在3ms,CPU使用率大概为40%,执行compact后(已经finish job)耗时翻倍,CPU使用率也降到20%,磁盘io带宽也降低一半。

性能下降是每次的耗时增大了吗? 还是资源利用率无法达到原先预期的CPU40%和磁盘带宽?还有可能需要了解下你的数据量。

1 个赞

compact过了几小时后插入数据的耗时恢复了,我发现show job显示compact在执行几分钟后已经finish但是可以观察到磁盘空间占用还持续下降了很久。不知道是不是虽然显示compact finish但是实际上还在继续删除TTL过期数据,没有执行完

  1. 不知道你的数据总写入量大概是多少,所以无法推断compact几分钟显示finish是否是个正常的现象。

  2. compact过程中,rocksdb文件理论上不会发生持续下降的现象,只会有阶梯式的几次下降,compact完成后旧的版本失效,对应文件会删除。
    这个持续下降的可能是WAL的空间,这里建议你可以通过观察data目录大小的变化,找到占用空间的文件。可能是这个过程影响了性能,(当然,不排除compact逻辑触发了这个问题)。

  3. 如果有日志,查看对应或许能看到compact完成或报错的日志。如果可以有一一对应的带时间戳的性能采样及日志,问题应该能更方便的定位。

WAL的空间也是compact后才会释放吗

还有问下/usr/local/nebula/logs下的文件可以设置定期自动删除吗

一个怀疑点而已,毕竟同时使用磁盘,所以假设compact过程中挤占资源,带来影响也是有可能的,所以需要观察增长或者减少过程中具体是哪些文件才能确定。

以及log太大可以定期删除,参考这里:常见问题 FAQ - Nebula Graph Database 手册

浙ICP备20010487号