悦数图数据库

首页>博客>行业科普>悦数图数据库本地部署全流程:从集群搭建到性能参数优化指南

悦数图数据库本地部署全流程:从集群搭建到性能参数优化指南

图数据库本地部署

「在某些特定场景下,客户出于数据隐私、安全要求或业务适配的考虑,会选择自己动手 POC 验证,这不仅能够深度评估悦数图数据库在实际环境中的表现,也为技术团队提供了更多探索和掌控的乐趣。本文由杭州悦数交付团队基于丰富经验总结而成,旨在帮助用户通过正确的安装部署与性能优化,充分发挥系统的最佳性能,为业务赋能。」

“3+1” 部署模式,高效稳定的基石

「3+1 部署模式」是经大量实践验证的最优方案:这种架构将 3 个节点用于部署图数据库集群,另外 1 个节点用于部署周边工具 。这种部署模式不仅能提升系统的高可用性,还能有效降低运维复杂度。图数据库集群节点配置需根据数据量、场景、并发等评估硬件资源,对资源要求较高 。周边工具对资源要求相对较低 ,如果没有多余节点,周边工具部署在图数据库集群中的一个节点也可以 。

图数据库集群

环境准备,事半功倍的前提

图数据库集群部署—dashboard 方式

在正式部署之前,完成以下几项系统调优是确保后续流程顺畅的关键。这些经过验证的配置调整能够为图数据库提供一个稳定高效的运行环境。

ulimit 调整:为了避免因为打开文件数过多而导致的系统资源耗尽问题,需要修改操作系统配置 。编辑文件/etc/security/limits.conf,添加或修改如下信息:为 nofile 设置为 130000core 设置为 unlimited 。如果没有 root 权限,也可以在会话级别运行 $ ulimit -c unlimited$ ulimit -n 130000 命令进行临时调整。

关闭防火墙:为了确保集群内部节点间的通信不受阻碍,需要关闭防火墙 。运行 $ systemctl stop firewalld$ systemctl disable firewalld

关闭透明大页(THP):透明大页可能会导致内存分配延迟,影响数据库性能 。为了避免这一问题,需要关闭透明大页 。编辑 /etc/default/grub 文件,在 GRUB_CMDLINE_LINUX 中添加 transparent_hugepage=never 。然后更新 Grub 配置(如 grub2-mkconfig -o /boot/grub2/grub.cfgupdate-grub)并重启系统 。如果无法重启,可以运行 $ echo never > /sys/kernel/mm/transparent_hugepage/enabled$ echo never > /sys/kernel/mm/transparent_hugepage/defrag 进行临时关闭 。

关闭 swap:为了确保数据库的性能稳定,我们建议关闭 swap 。可以使用 $ swapoff -a 命令临时关闭 。为了实现永久关闭,需要编辑 /etc/fstab 文件,找到包含 swap 分区的行并将其注释掉或删除 。

上传安装包并创建集群

在 dashboard 的 “安装包管理” 页面上传图库安装包。

图数据库集群部署

进入 “集群管理” 界面,点击 “新建集群”,输入节点信息、选择安装路径(需为空)和服务类型,确认后启动部署。

图数据库

图数据库

部署完成后,可在集群列表查看状态;健康状态为 “正常” 即表示成功。

图数据库部署

倾囊相授:核心参数配置

以下是悦数交付团队经过大量项目验证,能够显著提升性能和稳定性的核心参数配置。这些参数将帮助您更好地驾驭图数据库,实现事半功倍的效果。当然,没有绝对最优的配置,需要结合实际的使用场景,资源情况等进行相应的调整。

Meta 服务:稳定优先,路径分离

Meta 服务

Storage 服务:性能优化核心

Storage 服务

Graph 服务:提升查询响应与稳定性

Graph 服务

关键参数解读 & FAQ

在众多配置项中,以下几个参数对图数据库的性能影响尤为关键

wal_ttl:这个参数控制着 wal 日志的保留时间。由于在批量数据写入时会产生大量的 wal 日志,如果磁盘空间比较紧张,建议在导入前动态将该参数调小。

那为什么不直接将这个参数设置一个比较小的值呢?

因为如果某个 storage 节点宕机,当该节点恢复后,宕机这段时间的增量数据是通过 wal 日志来恢复的。如果 wal_ttl 设置得比较小,且 storage 节点宕机时间超过了 wal_ttl 设置的时间,就需要从其他节点同步全量数据了,这会增加恢复时间和网络开销。

rocksdb_db_options:在该配置中添加 compaction 的线程数,一般建议设置为 CPU 核心数的一半,对于导入性能影响较大。

enable_partitioned_index_filter:如果发现 storage 内存超过设置的 block cache 大小,且一直增长不释放,一般是因为没有把该参数设置成 true 导致。此外,还需要同时检查操作系统是否关闭了透明大页(THP)。

storage_client_timeout_ms:这是 graph 服务从 storage 服务拉取数据的超时时间。如果查询报错 Storage Error E_RPC_FAILURE,且 storage 服务没有挂掉的话,一般是因为查询耗时超过该配置导致。可以将该配置调大。

如果我的服务器资源有限,是否可以简化部署架构?

是的,在服务器资源有限的情况下,完全可以简化数据库的部署架构,悦数图数据库作为一款高性能、分布式的图数据库,设计时就充分考虑了灵活性和资源适应性,支持从开发测试环境到生产环境的多种部署模式。可以根据实际需求(如数据规模、查询负载和可用性要求)进行轻量化部署,后续再随着业务增长逐步扩展节点。

为什么推荐这些参数配置?它们对性能有多大影响?

这些参数经过大量客户验证,能够显著提升查询效率和系统稳定性。例如,调整缓存大小可以减少磁盘 I/O 操作,从而提高响应速度。但需要注意的是,没有绝对最优的配置,需要结合实际的使用场景,资源情况等进行相应的调整。

悦数图数据库支持其他部署方式吗?

悦数图数据库支持多种部署方式,包括单机部署、分布式集群部署(如 3+1 架构)、云上部署以及容器化部署(如 Kubernetes)。具体选择取决于业务规模、高可用性和性能需求。