Ich führe Mergerfs mit dem neuesten Debian-Test mit Kernel 5.4 aus.
Linux ches-disk0 5.4.0-4-amd64 #1 SMP Debian 5.4.19-1 (2020-02-13) x86_64 GNU/Linux
Es befindet sich auf einem Dell R730-Server mit 3 Festplatten-Arrays, der CPU ist 2 E5-2603v3 und der Arbeitsspeicher ist 16 GB. Jedes Array ist ein Hard Raid6 und hat einen ZFS-Pool. Mergerfs kombiniert sie miteinander.
fuse.mergerfs defaults,use_ino,allow_other,noforget,cache.files=auto-full,threads=0,dropcacheonclose=true,ignorepponrename=true,cache.readdir=true,cache.statfs=60,minfreespace=100G,cache.symlinks=true,fsname=mergerfs,category.create=mfs,func.getattr=newest,x-systemd.requires=zfs-mount.service
Ich habe 2 Knoten mit Slurm, teilen die Mergerfs-Festplatte von NFS
*(rw,fsid=1,async,no_subtree_check)
Jetzt, bei massivem kontinuierlichem I/O, mehrere kleine Dateien. Der MergerFS-Prozess benötigt 200-400 % der CPU und der I/O bleibt dort für Dutzende von Minuten hängen. Wenn ich den Dateiserver neu starte, wird der Job für eine gewisse Zeit ausgeführt.
Was ist also die beste Vorgehensweise für Mergerfs in diesem Fall? Ich habe use_ino und noforget aus dem Handbuch erkannt und verwende async für den NFS-Server.