Wie führe ich Dateisystemtests durch?


7

Ich plane ein Dateisystem zu testen. Was sollte ich alles tun? oder wie man das gleiche erreicht. Gibt es Tools zum Testen eines Dateisystems oder zuverlässige Referenzen?

Zweck: Planen der Umstellung von ext3 auf EFS.


Auch (später) gefragt auf stackoverflow.com/q/21565865/2732969 ...
Anon

Antworten:


5

Meine erste Antwort wäre auch bonnie ++, eine schnelle Suche zeigt auch Iozone3 . Beide sind als Debian-Pakete erhältlich. Wenn Sie einfachere Tests durchführen (cp, mv, rm), sollten Sie in Betracht ziehen, den vom Kernel gespeicherten Cache echo 1 > /proc/sys/vm/drop_cachesvor jedem Test zu löschen, da dies zu Unterschieden führen kann, die nicht für das Dateisystem selbst repräsentativ sind.


1
benutzte bonnie ++ für unsere anforderungen. erwies sich als vorteilhaft. Auch verwendet Rugg.
Viky

Eigentlich empfehle ich, && echo 3> / proc / sys / vm / drop_caches zu synchronisieren, um zuerst schmutzige Seiten zu leeren und anschließend Seitencache, Dentries und Inodes freizugeben (da drop_caches nur nicht schmutzige Daten löscht). Die Zahl ist eine Bitmaske: 1 == Seitencache 2 == Einträge und Inodes 3 == Seitencache + Dentires und Inodes
Knweiss

1
Ich verstehe zwar, dass Sie, um Tests vergleichbar zu machen, denselben Ausgangspunkt (leere Caches / Puffer) wünschen, aber es stellt sich die Frage, wie repräsentativ das für die realen Szenarien ist. Bereinigen Sie in der realen Welt die Caches vor jeder Arbeit oder versuchen Sie, das gesamte Caching, Puffern, Vorladen und alles, was Sie sonst noch heraufbeschwören können, optimal zu nutzen? Das Testen von Dateisystemen ist ein interessantes Rätsel, da die beiden Hauptprinzipien des Testens uneins sind - Wiederholbarkeit und Darstellung der Bedingungen in der realen Welt sind orthogonal. Sie möchten also zwei Tests durchführen: synthetische und reale Tests.
Marcin

3

Hier sind zwei weitere Optionen, die ich für das Benchmarking von Dateisystemen als sehr nützlich empfunden habe.

1) Poststempel - Dies ist ein Benchmark, der die reale Nutzung eines Dateisystems emuliert, auf das ein ausgelasteter Mailserver zugreift.

Download: http://www.freshports.org/benchmarks/postmark/

Stellen Sie beim Testen sicher, dass Sie verschiedene Optionen der ext3-Protokollierung verglichen haben - diese können sich in Bezug auf die Leistung erheblich unterscheiden (die Rückschreibprotokollierung ergab in meinen Poststempel-Experimenten das beste Ergebnis).

2) Filebench - ein weiterer großartiger Maßstab, der Ihnen noch mehr Flexibilität bietet. Wenn Sie einen bestimmten Grund haben, einen Wechsel von ext3 in Betracht zu ziehen, wird Ihnen Filebench wahrscheinlich gefallen - es hat viele verschiedene Workloads, sodass Sie sich nur auf den Leistungsengpass konzentrieren können, der Sie interessiert (Dateierstellungs- / Löschvorgänge oder sequentielles Lesen / Schreiben vs. zufällige, um Ihnen einige Beispiele zu geben).

Sie müssen dafür googeln, da mir noch keine Hyperlinks mehr erlaubt sind - das Projekt selbst wird auf SourceForge gehostet, und eine wirklich schöne Kurzanleitung finden Sie auf der OpenSolaris.org-Website.

Ein letzter Hinweis: Verteilen Sie die Last so weit wie möglich auf so viele Scheiben (Spindeln), um genaueste Ergebnisse zu erzielen. Es ist auch sinnvoll, einige Festplatten speziell für das Benchmarking zuzuweisen und sie vor jedem Durchlauf Ihres Benchmarks neu zu erstellen.


3

Testen Sie nicht nur die Geschwindigkeit, sondern auch die Zuverlässigkeit. Versuchen Sie beispielsweise, Festplatten in einem ausgelasteten Dateisystem herunterzufahren, und sehen Sie, was noch übrig ist.

Die Qualität der verfügbaren Reparatur- und Wiederherstellungstools ist ebenfalls wichtig und nur schwer diskret zu testen. Die Blockstruktur kann beispielsweise Tools blockieren, die versuchen, Daten im Rohmodus aus einem nicht verwertbaren Dateisystem zu retten.

Für weitere Hinweise zum Testen eines Dateisystems unter sehr harten Schlägen könnte es interessant sein, was die ZFS-Leute getan haben: Eins Zwei


+1. Dies ist eines der Dinge, die ich auf meiner Liste überprüfen musste.
Viky

1

Wir verwenden Rugg , um die Dateisysteme unserer Server zu testen. Es basiert auf Python und ist einfach zu bedienen. Dabei wird eine große Datei erstellt, die unterteilt wird, und anschließend werden verschiedene Vorgänge nacheinander oder parallel ausgeführt.

Bearbeiten: Hier ist ein Beispielskript, das / data (eine Partition) wiederholt testet, bis das Skript beendet wird:

#!/bin/bash

(
while true
do
  cd /data
  rm -rf *
  rugg 'zone 97%, subdivide 16 | blank | ensure blank | fill same text, ensure same'
done
) | tee /tmp/rugg.log

exit 0

+1. Überprüfte Rugg-Dokumentation. sieht vielversprechend aus. Ich werde es zusammen mit bonie ++ versuchen, das von anderen Mitgliedern vorgeschlagen wurde.
Viky

1

Etwas mehr:

  • fio ähnelt der oben erwähnten Filebench: "fio ist ein E / A-Tool, das sowohl für die Benchmark- als auch für die Stress- / Hardware-Überprüfung verwendet werden soll. Es unterstützt 13 verschiedene Arten von E / A-Engines (Sync, mmap, libaio, posixaio) , SG v3, Splice, Null, Netzwerk, Syslet, Guasi, Solarisaio und mehr), E / A-Prioritäten (für neuere Linux-Kernel), Rate-E / A, Forked- oder Threaded-Jobs und vieles mehr. Es kann auf Block funktionieren Geräte sowie Dateien. fio akzeptiert Jobbeschreibungen in einem einfach verständlichen Textformat. Mehrere Beispiel-Jobdateien sind enthalten. fio zeigt alle Arten von Informationen zur E / A-Leistung an. Es unterstützt Linux, FreeBSD und OpenSolaris. "
  • File System Exerciser (fsx) stammt ursprünglich von Apple, aber heutzutage gibt es Varianten für verschiedene Betriebssysteme.

0

Während sich bonnie ++ hauptsächlich auf die Benchmarking-Leistung konzentriert, funktioniert es über dem Dateisystem. Es werden einige Tests durchgeführt, die pro Dateisystem unterschiedliche Ergebnisse liefern. Ich vermute, dass Sie wahrscheinlich auch an der Leistungsänderung im Zusammenhang mit EFS interessiert sind. Vielleicht möchten Sie dies zumindest als einen Ihrer Tests versuchen.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.