nebula版本:3.6
服务器配置:8核,16G
nebula查询查询一段时间后,性能就会下降很厉害,从0.1s到2s,数据量没有太大变化,就2万
你这个服务配置是完全服务 NebulaGraph 的么?还是说有其他的程序也在跑?也许是其他程序抢占了系统资源导致的速度下降。
此外,“NebulaGraph是针对 NVMe SSD 进行设计和实现的,所有默认参数都是基于 SSD 设备进行调优”,你看下你的机器是不是 HDD 的,是的话,有条件可以换个 SSD 试试。
你指的抢占资源是,我们的是stroage,meta、Graph都在一台机器
我们的机器是SSD
不是 nebula 的服务,我的意思是这台机器还有部署其他不是 nebula,像是 QQ、微信之类的其他应用程序。(因为配置很像一台笔记本的配置,所以循例问下)
我们是容器化部署,这些配置是准们给这个nebula使用
对于增量数据是采用mq接收,然后像nebula执行增删改语句同步
方便的话看下容器里服务进程的资源占用情况看看呢?看下哪些服务用了服务资源
为什么只要重启storaged服务, 性能就提升了, 这个比较无解,希望官方能给一些排查思路。
可能是某些服务占用了系统资源吧。不过,具体还是要看你当时的服务状况。
这个服务器里只给这个用了
这个是不是现在查询 0.1s 的状况? 根据你的描述,应该经过一段时间之后,查询同语句会上升到 2s,到时候你记得截图下系统资源的图,看下具体哪些服务用了资源。
好的
可以profile看下执行计划,对比下快慢两次查询具体是在哪一步比较耗时
基本情况:
nebula 3.5
配置文件如下附件所示
nebula_etc_test.tar.gz (4.8 KB)
机器配置:4C8G(这是找的另一个环境, 实际8C32G会是一样的结果)
问题描述:某些match语句在系统运行一段时间后变慢
变慢的查询语句是这样的:
match (v:document) where v.`document`.recycled =="0" and (v.`document`.is_global == 1 or v.`document`.tenant_id=="1632931640315338752") with v
match (v:document)-[e]-(v2) where 1==1
and (
v2.`ppt`.name == "123"
)
WITH
v.`document`.class_name as class_name,
v.`document`.obj_id as obj_id,
v.`document`.code as code,
v.`document`.name as name,
v.`document`.creator as creator,
v.`document`.last_update as last_update
ORDER BY last_update desc
RETURN count(*);
运行一段时间后的变慢
运行2.248395 (s),重启的话只需要零点几秒,以下是慢的查询profile执行计划
当前内存使用
执行这个查询时,cpu占用较多
日志
log_slow.tar.gz (6.6 MB)
以下是重启storaged后的情况
运行时间0.067s
内存情况
运行此查询时cpu使用
profile执行计划没看出什么变化
日志
log_after_restart.tar.gz (17.8 KB)
麻烦console执行profile 贴一些,上边图中profile的每个算子的详细信息没有显示
storage服务占用了大部分时间,做一次compaction 再试一次