Langsames Dateisystem mit vielen Dateien...

bsd4me

Well-Known Member
Hallo,
letztens wurden auf einem Sever etliche RepetModeler Läuef gestartet. Leider erzeugt das Programm hundert tausende von Dateien - evtl. Millionen. Das macht ein Dateisystem (insbesondere den Zugriff) relativ langsam. Der Server läuft unter FreeBSD 11 mit ZFS. Hat jemand eine Idee wie man den Zugriff optimieren kann? EVtl. auch über NFS? Oder gibt es ein Dateisystem, dass für Massendaten -also eine Riesenanzahl an Dateien- gut skaliert?
Vielen Dank und Grüße - Norbert
 
ja - teilweise - es werden hundert tausend (und auch mehr) Dateien in 1 Verezeichnis geschrieben...

wie ich sehe ist:

# zfs list -o atime storage
ATIME
on
 
es werden hundert tausend (und auch mehr) Dateien in 1 Verezeichnis geschrieben
Das ist unter keinen Umständen eine gute Idee und sollte in der Software oder im Workflow korrigiert werden.
Vielleicht bringt dir es dir etwas, atime=off zu schalten, viel wird dabei aber nicht rauskommen, denke ich.

Rob
 
Danke!!
tja, das mit der Dateianzahl kann ich nicht korrigieren - ist halt biologische Software...
Aber das mit den atime werde ich mal auf off setzen -
Norbert
 
Je nach Art wie die Software schreibt könnte auch noch eine SSD als Log-Device helfen. Kann helfen, muss aber nicht. Je nach Anwendungsfall könnte man auch noch die Checksummen deaktivieren. Compression je nach Flaschenhals ebenso... "An, in Form von lz4" kann durchaus auch die Performance steigern, wenn die Daten gut komprimierbar sind.
 
Hallo,
wie Groß ist dann das Verzeichniss in GB und zb. eine 960 Pro könnte auch schon helfen.

Viele Grüße
Jörg
 
Danke für die Antworten. Die Maschine hat 512GB RAM, ein bisschen könnte man für tmpfs abzwacken... Eine SSD geht leider nicht mehr einzubauen...
 
# zpool status
pool: storage
state: ONLINE
scan: none requested
config:

NAME STATE READ WRITE CKSUM
storage ONLINE 0 0 0
raidz2-0 ONLINE 0 0 0
ada2 ONLINE 0 0 0
ada3 ONLINE 0 0 0
ada4 ONLINE 0 0 0
ada5 ONLINE 0 0 0
ada6 ONLINE 0 0 0
ada7 ONLINE 0 0 0

errors: No known data errors

pool: zroot
state: ONLINE
scan: none requested
config:

NAME STATE READ WRITE CKSUM
zroot ONLINE 0 0 0
mirror-0 ONLINE 0 0 0
gpt/rada0 ONLINE 0 0 0
gpt/rada1 ONLINE 0 0 0
 
Wenn die Kiste so viel Arbeitsspeicher hat, hast du dir mal die ARC-Statistiken angesehen (insbesondere hinsichtlich Metadaten)? Per default wird der ARC für Metadaten auf 1/4 des gesamten ARC begrenzt, dies kannst du mit dem sysctl vfs.zfs.arc_meta_limit ändern, eventuell bringt das auch was.

Rob
 
# zpool status
pool: storage
state: ONLINE
scan: none requested
config:

NAME STATE READ WRITE CKSUM
storage ONLINE 0 0 0
raidz2-0 ONLINE 0 0 0
ada2 ONLINE 0 0 0
ada3 ONLINE 0 0 0
ada4 ONLINE 0 0 0
ada5 ONLINE 0 0 0
ada6 ONLINE 0 0 0
ada7 ONLINE 0 0 0
Du könntest noch einen Mirror versuchen mit mehreren VDEV's z.B:
Code:
NAME STATE READ WRITE CKSUM
storage    ONLINE 0 0 0
  mirror-0 ONLINE 0 0 0
    ada2   ONLINE 0 0 0
    ada3   ONLINE 0 0 0
  mirror-1 ONLINE 0 0 0
    ada4   ONLINE 0 0 0
    ada5   ONLINE 0 0 0
  mirror-2 ONLINE 0 0 0
    ada6   ONLINE 0 0 0
    ada7   ONLINE 0 0 0
Kostet natürlich etwas Platz aber schneller wird nicht mehr gehen.
 
Zurück
Oben