机器配置为256G内存,48核(物理核24)cpu,4T SAS盘(建议磁盘使用SSD)
图数据库Neo4j配置文件neo4j.conf 中常用参数:
dbms.active_database=graph.db 为指定安装目录data/databases下对应的数据库
dbms.memory.heap.initial_size=20g 为最小的堆大小
dbms.memory.heap.max_size=150g 为最大的堆大小
dbms.memory.pagecache.size=50g 为load数据到内存,进行缓存内存大小
内存分配:
默认配置文件情况下,2-4g用于操作系统,给JVM足够的堆来保存所有事务状态和查询上下文,然后将其余部分留给page cache。假定机器是专门运行neo4j的,默认page cache将其设置为50%的RAM减去最大的Java堆大小。page cache主要用于将数据从磁盘load到内存中进行缓存用。
我这边因为更多用于分析,会跑一些算法,查询语句比较复杂,所以堆内存大小设置150g,pagecache设置50g,根据自己实际需求调整。
dbms.connectors.default_listen_address=0.0.0.0 默认neo4j只接受本地连接,0.0.0.0监听所有端口,我这边没有设置这个,因为内网不同使用ssh本地转发,执行命令:ssh -g -fN -L 7687:localhost:7687 user@neo4j
dbms.shell.enabled=true 取消注释,启用neo4j shell server用于neo4j shell client去连接
dbms.shell.host=127.0.0.1 neo4j shell server监听的ip,默认127.0.0.1
dbms.shell.port =1337 neo4j shell server监听的端口,默认1337
dbms.security.procedures.unrestricted=algo.*,apoc.* 将algo和apoc算法引入
apoc扩展包JAR文件:https://github.com/neo4j-contrib/neo4j-apoc-procedures/releases/3.3.0.2
algo扩展包JAR文件:https://github.com/neo4j-contrib/neo4j-graph-algorithms/releases
并将下载下来的jar文件移到安装目录下plugins目录下
BTW:
ssh的三个强大的端口转发命令:
转发到远端:ssh -C -f -N -g -L 本地端口:目标IP:目标端口 用户名@目标IP
转发到本地:ssh -C -f -N -g –R 本地端口:目标IP:目标端口 用户名@目标IP
ssh -C -f -N -g -D listen_port user@Tunnel_Host
-C:压缩数据传输。
-f :后台认证用户/密码,通常和-N连用,不用登录到远程主机。
-N :不执行脚本或命令,通常与-f连用。
-g :在-L/-R/-D参数中,允许远程主机连接到建立的转发的端口,如果不加这个参数,只允许本地主机建立连接。
-L 本地端口:目标IP:目标端口
IBM网站上实战SSH端口转发:https://www.ibm.com/developerworks/cn/linux/l-cn-sshforward