Neo4j性能测试

准备测试数据#

性能测试需要先准备数据,以评估 neo4j 在大数据量情况下的性能。

幸运的是网上可以下载到一个很大的数据库,该库是将 Stackoverflow 网站的数据(包括:问题,答案,标签,用户)转换后得来的。

这个库中包含 50,752,488个节点和 123,922,676条边,用来做性能测试足够用了。

其说明详见:https://neo4j.com/docs/getting-started/appendix/example-data/#example-datasets

通过下面地址可以下载:

wget -c http://example-data.neo4j.org/so.dump

虽然 neo4j 目前已经到了5.0版本,但下载到的dump文件是4.0版本的格式,无法导入到5.0版本中,所以本次决定先对4.0版本做性能测试。

通过下面命令可以将dump文件导入到neo4j库中(开始导入之前,先启动 neo4j 让其对 data 目录完成初始化,之后再用下面命令导入数据):

docker run --interactive --tty --rm \
   --volume=${PWD}/data:/data \
   --volume=${PWD}/so.dump:/backups/neo4j.dump \
   neo4j:4.4.32 \
   neo4j-admin load --force --from=/backups/neo4j.dump

等待导入完成,然后用下面命令启动 neo4j:

docker run \
       --rm \
       --volume=${PWD}/data:/data \
       --publish=7474:7474 --publish=7687:7687 \
       --env NEO4J_dbms_memory_pagecache_size=6G \
       --env NEO4J_dbms_memory_heap_initial__size=16G \
       --env NEO4J_dbms_memory_heap_max__size=16G \
       --env NEO4J_dbms_allow__upgrade=true \
       neo4j:4.4.32

由于导入的数据量较大,这里设置 pagecache 和 heap 的大小来确保其可以正常运行,同时也限制了最大的 heap 大小避免将主机内存耗尽。

启动后 neo4j 需要一段时间进行数据迁移,在我测试的服务器上大概需要5~6分钟时间。

之后就可以愉快的进行性能测试了。

comments powered by Disqus