Linux 文件系统调优

数据库在查询数据时通常会产生大量的小规模随机读取,而在提交更改时则会产生少量的顺序写入。为获得最佳性能,建议将数据库和事务日志存储在不同的物理设备上。本页面涵盖了 Neo4j 的 I/O 行为以及如何针对磁盘操作进行优化。

建议通过在 fstab 中设置 noatime,nodiratime 挂载选项,或者在执行磁盘挂载命令时设置这些选项,以禁用文件和目录的访问时间更新。这样,文件系统就不必进行更新此元数据的写入操作,从而提高写入性能。

由于数据库长时间对存储系统产生高且持续的负载,建议使用具有良好老化特性的文件系统。EXT4 和 XFS 文件系统均受支持。

虽然 EXT4 和 XFS 文件系统均受支持,但在某些工作负载下,XFS 可以提供微弱的性能优势(最高 10%),但与 EXT4 相比会占用更多的磁盘空间(最高 2 倍)。因此,通常建议使用 EXT4。

高读写 I/O 负载也会随时间推移降低 SSD 的性能。防止 SSD 磨损的第一道防线是确保工作数据集能够放入 RAM。然而,具有高写入工作负载的数据库仍会导致 SSD 磨损。应对此问题的最简单方法是进行预留空间(over-provisioning);使用的 SSD 容量应至少比严格需要的空间大 20%。

Neo4j 不建议也不支持将 NFS 或 NAS 用作数据库存储。