- nebula 版本:v3.4
- 部署方式:分布式(3节点,每个节点各布置一个metad、graphd、storaged服务)
- 安装方式:Docker Swarm
- 是否上生产环境: N
- 硬件信息
- 磁盘 阿里云SSD云盘
- CPU、内存信息 16vcpu 128GiB内存
- 问题的具体描述
在使用nebula-bench进行压测时,单节点metad、graphd、storaged的cpu使用率总和达到瓶颈(接近1600%),但是磁盘io为0,storaged占用的内存仅有2G。
数据集通过ldbc生成,scale factor为100,生成后数据大小为117G,采用单副本导入数据库后,数据库storage数据占用的磁盘为117G。
我的理解是
- 如果storage占用的内存小于数据集,压测的瓶颈应该在磁盘io上。
- 如果storage占用的内存大于数据集,压测的瓶颈应该在cpu侧。
但现在storage占用的内存远低于数据集大小,磁盘io却为0,有人知道是什么原因么?
压测指令为
python3 run.py stress run -scenario go.Go1StepEdge --args='-u 300 -d 300s'
实际上nebula-bench支持的脚本都跑了一遍,所有的脚本均是低磁盘,低内存,高cpu使用率。
是因为nebula-bench虽然压测了sf00数据库,但实际压测的数据仅仅覆盖了很小的一部分数据么?