EnglischFranzösischSpanisch

Ad


OnWorks-Favicon

fio – Online in der Cloud

Führen Sie fio im kostenlosen Hosting-Anbieter OnWorks über Ubuntu Online, Fedora Online, den Windows-Online-Emulator oder den MAC OS-Online-Emulator aus

Dies ist der Befehl fio, der beim kostenlosen Hosting-Anbieter OnWorks mit einer unserer zahlreichen kostenlosen Online-Workstations wie Ubuntu Online, Fedora Online, dem Windows-Online-Emulator oder dem MAC OS-Online-Emulator ausgeführt werden kann

PROGRAMM:

NAME/FUNKTION


fio – flexibler I/O-Tester

ZUSAMMENFASSUNG


Gewinde [Optionen] [Jobdatei] ...

BESCHREIBUNG


Gewinde ist ein Tool, das eine Reihe von Threads oder Prozessen erzeugt, die eine bestimmte Art von Aufgaben ausführen
Vom Benutzer angegebene E/A-Aktion. Die typische Verwendung von fio besteht darin, eine Jobdatei zu schreiben
Passend zur I/O-Last, die man simulieren möchte.

OPTIONAL


--debuggen=tippe
Ermöglichen Sie die ausführliche Nachverfolgung verschiedener FIO-Aktionen. Kann „all“ für alle Typen sein oder
einzelne Typen durch Komma getrennt (z. B. --debug=io,file). „Hilfe“ listet alle auf
verfügbare Nachverfolgungsoptionen.

--Ausgabe=Dateinamen
Ausgabe schreiben nach Dateinamen.

--Ausgabeformat=Format
Stellen Sie das Berichtsformat auf ein normal, knapp, oder JSON.

--Laufzeit=Laufzeit
Begrenzen Sie die Laufzeit auf Laufzeit Sekunden.

--bandwidth-log
Generieren Sie Bandbreitenprotokolle pro Job.

--minimal
Drucken Sie Statistiken in einem knappen, durch Semikolons getrennten Format.

--append-terse
Drucken Sie Statistiken im ausgewählten Modus UND im knappen, durch Semikolons getrennten Format.

--Version
Versionsinformationen anzeigen und beenden.

--terse-version=Version
Legen Sie das Ausgabeformat für die knappe Version fest (aktuelle Version 3 oder ältere Version 2).

--help Nutzungsinformationen anzeigen und beenden.

--cpuclock-test
Führen Sie einen Test und eine Validierung des internen CPU-Takts durch

--crctest[=prüfen]
Testen Sie die Geschwindigkeit der integrierten Prüfsummenfunktionen. Wenn kein Argument angegeben ist, alle
von ihnen werden getestet. Alternativ kann eine durch Kommas getrennte Liste übergeben werden
Vorgegebene werden getestet.

--cmdhelp=Befehl
Drucken Sie Hilfeinformationen für Befehl. Kann für alle Befehle „all“ sein.

--enghelp=ioengine[,Befehl]
Listet alle von definierten Befehle auf ioengine, oder drucken Sie die Hilfe aus Befehl definiert von
ioengine.

--showcmd=Jobdatei
Konvertieren Jobdatei auf eine Reihe von Befehlszeilenoptionen.

--eta=wann
Gibt an, wann die ETA-Schätzung in Echtzeit gedruckt werden soll. wann kann einer von sein
„immer“, „nie“ oder „automatisch“.

--eta-newline=Zeit
Erzwingen Sie einen ETA-Zeilenumbruch für jede verstrichene Zeitspanne.

--status-interval=Zeit
Melden Sie den vollständigen Ausgabestatus nach jeder verstrichenen Zeitspanne.

--schreibgeschützt
Aktivieren Sie schreibgeschützte Sicherheitsprüfungen, um Schreibversuche zu verhindern.

--Sektion=Sek.
Nur Laufabschnitt Sek. aus der Jobdatei. Diese Option kann zum Hinzufügen mehrmals verwendet werden
Weitere Abschnitte zum Ausführen.

--alloc-size=kb
Legen Sie die interne Smalloc-Poolgröße auf fest kb Kilobyte.

--warnings-fatal
Alle Warnungen des FIO-Parsers sind schwerwiegend und führen dazu, dass FIO mit einem Fehler beendet wird.

--max-jobs=nr
Legen Sie die maximal zulässige Anzahl der zu unterstützenden Jobs (Threads/Prozesse) fest.

--Server=args
Starten Sie einen Backend-Server mit args Festlegen, was Sie hören möchten. Siehe Client/Server
.

--dämonisieren=pid-Datei
Hintergrund eines FIO-Servers, der die PID in die angegebene PID-Datei schreibt.

--Klient=Gastgeber
Anstatt die Jobs lokal auszuführen, senden Sie sie und führen Sie sie auf dem angegebenen Host oder einer Reihe von Hosts aus
Gastgeber. Siehe Abschnitt „Client/Server“.

--idle-prof=zu erhalten
CPU-Leerlauf auf System- oder Per-CPU-Basis melden (zu erhalten=system,percpu) oder Laufeinheit
Nur Arbeitskalibrierung (zu erhalten=kalibrieren).

JOB FILE FORMAT


Jobdateien liegen im INI-Format vor. Sie bestehen aus einer oder mehreren Jobdefinitionen, die beginnen
mit einem Jobnamen in eckigen Klammern und verlängern Sie ihn bis zum nächsten Jobnamen. Der Jobname kann sein
jede ASCII-Zeichenfolge außer „global“, das eine besondere Bedeutung hat. Im Anschluss an den Jobnamen lautet
eine Folge von null oder mehr Parametern, einer pro Zeile, die das Verhalten des Jobs definieren.
Jede Zeile, die mit einem „;“ beginnt oder „#“-Zeichen wird als Kommentar betrachtet und ignoriert.

If Jobdatei Wird als „-“ angegeben, wird die Jobdatei aus der Standardeingabe gelesen.

Global Abschnitt
Der globale Abschnitt enthält Standardparameter für in der Jobdatei angegebene Jobs. Ein Beruf
wird nur von darüber liegenden globalen Abschnitten beeinflusst, und es kann beliebig viele davon geben
globale Abschnitte. Bestimmte Jobdefinitionen können alle globalen Parametersätze überschreiben
.

JOB PARAMETER


Typen
Einige Parameter können Argumente eines bestimmten Typs annehmen. Überall dort, wo ein numerischer Wert steht
Bei Bedarf kann ein arithmetischer Ausdruck verwendet werden, sofern dieser in Klammern gesetzt ist.
Unterstützte Operatoren sind:

Zusatz (+)

Subtraktion (-)

Multiplikation (*)

Teilung (/)

Modul (%)

Potenzierung (^)

Für Zeitwerte in Ausdrücken sind die Einheiten standardmäßig Mikrosekunden. Das ist anders als
für Zeitwerte, die nicht in Ausdrücken enthalten sind (nicht in Klammern eingeschlossen). Die verwendeten Typen sind:

str String: eine Folge alphanumerischer Zeichen.

int SI-Ganzzahl: eine ganze Zahl, die möglicherweise ein Suffix enthält, das die Basiseinheit von angibt
der Wert. Akzeptierte Suffixe sind „k“, „M“, „G“, „T“ und „P“ für Kilo
(1024), Mega (1024^2), Giga (1024^3), Tera (1024^4) und Peta (1024^5)
bzw. Wenn dem Wert „0x“ vorangestellt wird, wird davon ausgegangen, dass der Wert die Basis 16 hat
(hexadezimal). Ein Suffix kann ein nachgestelltes „b“ enthalten, z. B. ist „kb“ identisch
zu 'k'. Sie können einen Basis-10-Wert angeben, indem Sie „KiB“, „MiB“, „GiB“ usw. verwenden. Dies ist
Nützlich für Festplattenlaufwerke, bei denen Werte häufig in Basis-10-Werten angegeben werden. Spezifizieren
Mit „30GiB“ erhalten Sie 30*1000^3 Bytes. Bei der Angabe mal das Standard-Suffix
Die Bedeutung ändert sich, es wird immer noch die Basiseinheit des Werts angegeben, es werden jedoch Suffixe akzeptiert
sind „D“ (Tage), „H“ (Stunden), „M“ (Minuten), „S“ Sekunden, „ms“ (oder ms) Milli
Sekunden, „us“ (oder „usec“) Mikrosekunden. Zeitwerte ohne Angabe einer Einheit
Sekunden. Bei den Suffixen wird die Groß-/Kleinschreibung nicht beachtet.

bool Boolescher Wert: ein wahrer oder falscher Wert. „0“ bedeutet falsch, „1“ bedeutet wahr.

Irland Ganzzahlbereich: ein im Format angegebener Bereich von Ganzzahlen senken:obere or
senken-obere. senken und obere kann ein Suffix wie oben beschrieben enthalten. Wenn eine Option
erlaubt zwei Sätze von Bereichen, sie werden durch ein „,“ oder „/“-Zeichen getrennt. Für
Beispiel: „8-8k/8M-4G“.

float_list
Liste von Gleitkommazahlen: Eine Liste von Gleitkommazahlen, getrennt durch ein „:“-Zeichen.

Parameter Liste
Name=str
Kann verwendet werden, um den Jobnamen zu überschreiben. In der Befehlszeile hat dieser Parameter das
besonderer Zweck, den Beginn einer neuen Arbeitsstelle zu signalisieren.

Beschreibung=str
Für Menschen lesbare Beschreibung der Stelle. Es wird jedoch gedruckt, wenn der Job ausgeführt wird
Ansonsten hat es keinen besonderen Zweck.

Verzeichnis=str
Stellen Sie Dateinamen dieses Verzeichnis voran. Wird verwendet, um Dateien an einem anderen Ort als zu platzieren
`./'. Sie können mehrere Verzeichnisse angeben, indem Sie die Namen durch ein „:“ trennen.
Charakter. Diese Verzeichnisse werden den Job-Klonen gleichmäßig verteilt zugewiesen
schafft mit numjobs solange sie generierte Dateinamen verwenden. Falls konkret
Dateiname(n) Wenn fio festgelegt ist, verwendet es das erste aufgelistete Verzeichnis und stimmt damit überein
Dateinamen Semantik, die bei jedem Klon eine Datei generiert, wenn nicht angegeben, aber lassen Sie
Alle Klone verwenden dasselbe, wenn dies festgelegt ist. Sehen Dateinamen für Überlegungen zur Flucht
bestimmte Charaktere auf einigen Plattformen.

Dateinamen=str
Gewinde Erstellt normalerweise einen Dateinamen basierend auf dem Jobnamen, der Thread-Nummer und der Datei
Nummer. Wenn Sie Dateien zwischen Threads in einem Job oder mehreren Jobs teilen möchten,
Geben Sie a an Dateinamen für jeden von ihnen, um die Standardeinstellung zu überschreiben. Wenn die I/O-Engine vorhanden ist
Dateibasiert können Sie eine Anzahl von Dateien angeben, indem Sie die Namen durch ein „:“ trennen.
Charakter. „-“ ist ein reservierter Name, der je nach stdin oder stdout bedeutet
Lese-/Schreibrichtung eingestellt. Unter Windows wird auf Festplattengeräte als \.PhysicalDrive0 zugegriffen
für das erste Gerät, \.PhysicalDrive1 für das zweite usw. Hinweis: Windows und
FreeBSD verhindert den Schreibzugriff auf Bereiche der Festplatte, die gerade verwendete Daten enthalten (z. B
Dateisysteme). Wenn der gewünschte Dateiname einen Doppelpunkt enthalten muss, maskieren Sie diesen
mit einem „\“-Zeichen. Wenn der Dateiname beispielsweise „/dev/dsk/foo@3,0:c“ lautet, dann
Sie würden filename="/dev/dsk/foo@3,0\:c" verwenden.

Dateiname_format=str
Wenn Sie mehrere Dateien zwischen Jobs teilen, ist normalerweise FIO erforderlich
Generieren Sie genau die Namen, die Sie möchten. Standardmäßig benennt fio eine Datei basierend auf
die Standarddateiformatspezifikation von Jobname.Jobnummer.Dateinummer. Mit diesem
Option, die individuell angepasst werden kann. Fio wird Folgendes erkennen und ersetzen
Schlüsselwörter in dieser Zeichenfolge:

$jobname
Der Name des Arbeitsthreads oder -prozesses.

$jobnum
Die inkrementelle Nummer des Arbeitsthreads oder -prozesses.

$filenum
Die inkrementelle Nummer der Datei für diesen Arbeitsthread oder Prozess.

Damit abhängige Jobs eine Reihe von Dateien gemeinsam nutzen, kann diese Option auf FIO eingestellt werden
Generieren Sie Dateinamen, die von beiden gemeinsam genutzt werden. Zum Beispiel, wenn
testfiles.$filenum angegeben ist, wird für jeden Job die Dateinummer 4 benannt
testfiles.4. Die Standardeinstellung von $jobname.$jobnum.$filenum wird verwendet, wenn nichts anderes vorhanden ist
Es wird ein Formatbezeichner angegeben.

Sperrdatei=str
Fio sperrt standardmäßig keine Dateien, bevor E/A mit ihnen ausgeführt wird. Wenn eine Datei oder Datei
Wenn der Deskriptor gemeinsam genutzt wird, kann FIO IO in diese Datei serialisieren, um das Endergebnis zu erzielen
konsistent. Dies ist üblich für die Emulation realer Arbeitslasten, die Dateien gemeinsam nutzen. Das Schloss
Modi sind:

keine Keine Verriegelung. Dies ist die Standardeinstellung.

exklusiv
Es darf jeweils nur ein Thread oder Prozess IO ausführen, alle anderen sind ausgeschlossen.

lesen Schreiben
Lese-/Schreibsperre für die Datei. Viele Leser können auf die Datei unter zugreifen
zur gleichen Zeit, aber Schreibvorgänge erhalten exklusiven Zugriff.

opendir=str Öffnen Sie alle Dateien im Verzeichnis rekursiv str.

lesen Schreiben=str, rw=str
Art des E/A-Musters. Akzeptierte Werte sind:

lesen Sequentielle Lesevorgänge.

schreiben Sequentielle Schreibvorgänge.

trimmen Sequentielles Trimmen (nur Linux-Blockgeräte).

Randlesen
Zufällige Lesungen.

Randschrift
Zufällige Schreibvorgänge.

Randtrim
Zufälliges Trimmen (nur Linux-Blockgeräte).

rw, lesen Schreiben
Gemischte sequentielle Lese- und Schreibvorgänge.

Randrw Gemischte zufällige Lese- und Schreibvorgänge.

trimwrite
Reduzieren und schreiben Sie gemischte Arbeitsbelastungen. Zuerst werden die Blöcke getrimmt, dann die
Es werden dieselben Blöcke beschrieben.

Für gemischte E/A beträgt die Standardaufteilung 50/50. Bei bestimmten Io-Typen kann das Ergebnis variieren
dennoch etwas verzerrt sein, da die Geschwindigkeit unterschiedlich sein kann. Eine Angabe ist möglich
Eine Reihe von E/A-Vorgängen müssen ausgeführt werden, bevor ein neuer Offset erhalten wird. Dies erfolgt durch Anhängen von a
`: bis zum Ende der angegebenen Zeichenfolge. Bei einer zufälligen Lektüre würde es so aussehen
rw=randread:8 zum Übergeben eines Offset-Modifikators mit dem Wert 8. Wenn das Postfix
Wird mit einem sequentiellen E/A-Muster verwendet, wird der angegebene Wert zum hinzugefügt
generierter Offset für jedes IO. Zum Beispiel mit rw=schreiben:4k Ich überspringe 4k für
jedes Schreiben. Es verwandelt sequentielle E/A in sequentielle E/A mit Löchern. Siehe die
rw_sequencer .

rw_sequencer=str
Wenn ein Offset-Modifikator durch Anhängen einer Zahl an angegeben wird rw= Linie also
Diese Option steuert, wie diese Zahl den generierten E/A-Offset ändert.
Akzeptierte Werte sind:

sequenziell
Erzeugen Sie einen sequentiellen Offset

identisch
Erzeugen Sie den gleichen Offset

sequenziell ist nur für zufällige E/A nützlich, bei denen fio normalerweise eine neue generieren würde
zufälliger Offset für jeden IO. Wenn Sie z. B. 8 an randread anhängen, erhalten Sie ein neues
zufälliger Offset für alle 8 IOs. Das Ergebnis wäre eine Suche für nur alle 8 IOs,
statt für jedes IO. Verwenden rw=randread:8 das zu spezifizieren. Wie sequentielles IO ist
bereits sequentiell, Einstellung sequenziell denn das würde zu keinem führen
Unterschiede. identisch verhält sich ähnlich, sendet jedoch dasselbe
Offset 8 Mal, bevor ein neuer Offset generiert wird.

kb_base=int
Die Basiseinheit für ein Kilobyte. Die De-facto-Basis ist 2^10, 1024. Lagerung
Aus offensichtlichen Gründen verwenden Hersteller stattdessen gerne 10^3 oder 1000 als Basis-Zehn-Einheit
Gründe dafür. Zulässige Werte sind 1024 oder 1000, wobei 1024 der Standardwert ist.

unified_rw_reporting=bool
Fio meldet Statistiken normalerweise pro Datenrichtung, was bedeutet, dass gelesene,
Schreiben und Trimmen werden separat verbucht und ausgewiesen. Wenn diese Option gesetzt ist, fio
fasst die Ergebnisse zusammen und meldet sie stattdessen als „gemischt“.

randrepeat=bool
Setzen Sie den Zufallszahlengenerator, der für zufällige E/A-Muster verwendet wird, auf vorhersehbare Weise
Das Muster ist also über mehrere Läufe hinweg wiederholbar. Standard: true.

allrandrepeat=bool
Setzen Sie alle Zufallszahlengeneratoren auf vorhersehbare Weise, damit die Ergebnisse wiederholbar sind
über Läufe hinweg. Standard: false.

Randsamen=int
Setzen Sie die Zufallszahlengeneratoren basierend auf diesem Startwert, um eine Steuerung zu ermöglichen
welche Ausgabesequenz generiert wird. Wenn nicht festgelegt, hängt die Zufallssequenz davon ab
auf die randrepeat Einstellung.

fallen=str
Ob beim Ablegen von Dateien eine Vorzuordnung durchgeführt wird. Akzeptierte Werte sind:

keine Weisen Sie keinen Speicherplatz vorab zu.

POSIX Vorabbelegung über posix_fallocate(3).

halten Vorabbelegung über fallen(2) mit gesetztem FALLOC_FL_KEEP_SIZE.

0 Abwärtskompatibler Alias ​​für „none“.

1 Abwärtskompatibler Alias ​​für „posix“.

Möglicherweise nicht auf allen unterstützten Plattformen verfügbar. „keep“ ist nur unter Linux verfügbar.
Wenn Sie ZFS unter Solaris verwenden, muss dies auf „none“ gesetzt werden, da ZFS es nicht unterstützt.
Standard: 'posix'.

fadvise_hint=bool
Verwenden Sie die posix_fadvise(2) um dem Kernel mitzuteilen, welche E/A-Muster wahrscheinlich sind
ausgegeben. Standard: true.

fadvise_stream=int
Verwenden Sie die posix_fadvise(2) um dem Kernel mitzuteilen, zu welcher Stream-ID die ausgegebenen Schreibvorgänge gehören
Zu. Wird nur unter Linux unterstützt. Beachten Sie, dass sich diese Option in Zukunft ändern kann.

Größe=int
Gesamtgröße der E/A für diesen Job. Gewinde wird ausgeführt, bis so viele Bytes vorhanden sind
übertragen, sofern nicht durch andere Optionen eingeschränkt (Laufzeitzum Beispiel, oder
erhöht/verringert um io_size). Es sei denn Nrfiles und Dateigröße Optionen sind gegeben,
Dieser Betrag wird auf die für den Auftrag verfügbaren Dateien aufgeteilt. Wenn nicht festgelegt,
fio nutzt die volle Größe der angegebenen Dateien oder Geräte. Wenn die Dateien dies nicht tun
vorhanden, Größe muss angegeben werden. Es ist auch möglich, die Größe als Prozentsatz dazwischen anzugeben
1 und 100. Wenn size=20 % angegeben ist, verwendet fio 20 % der vollen Größe der angegebenen Größe
Dateien oder Geräte.

io_size=int, io_limit =int
Normalerweise arbeitet fio innerhalb der von eingestellten Region Größe, Was bedeutet, dass die Größe
Die Option legt sowohl die Region als auch die Größe der auszuführenden E/A fest. Manchmal ist das nicht der Fall
was du willst. Mit dieser Option ist es möglich, nur die Menge an IO zu definieren
Das sollte Fio tun. Zum Beispiel, wenn Größe ist auf 20G eingestellt und io_limit auf 5G eingestellt ist,
fio führt IO innerhalb der ersten 20G durch, beendet sich jedoch, wenn 5G abgeschlossen sind. Der
Das Gegenteil ist auch möglich - wenn Größe ist auf 20G eingestellt und io_size ist dann auf 40G eingestellt
fio wird 40G IO im 0..20G-Bereich durchführen.

fill_device=bool, fill_fs=bool
Setzt die Größe auf etwas wirklich Großes und wartet auf ENOSPC (kein Platz mehr auf dem Gerät)
als Abbruchbedingung. Macht nur bei sequentiellem Schreiben Sinn. Zur Lektüre
Arbeitslast wird zuerst der Mount-Punkt gefüllt, dann wird IO mit dem Ergebnis gestartet. Das
Die Option ist aufgrund der Größe dieses Knotens nicht sinnvoll, wenn er auf einem unformatierten Geräteknoten betrieben wird
ist dem Dateisystem bereits bekannt. Darüber hinaus ist das Schreiben über das Ende des Geräts hinaus möglich
wird ENOSPC nicht dorthin zurückbringen.

Dateigröße=Irland
Individuelle Dateigrößen. In diesem Fall kann es sich um einen Bereich handeln Gewinde wählt Größen für aus
Dateien nach dem Zufallsprinzip innerhalb des angegebenen Bereichs, begrenzt auf Größe insgesamt (falls das so ist
gegeben). Wenn Dateigröße nicht angegeben ist, hat jede erstellte Datei die gleiche Größe.

file_append=bool
Führen Sie IO nach dem Ende der Datei durch. Normalerweise wird fio in der Größe von betrieben
eine Datei. Wenn diese Option gesetzt ist, wird stattdessen fio an die Datei angehängt. Das hat
Identisches Verhalten wie das Festlegen des Offsets auf die Größe einer Datei. Diese Option wird ignoriert
bei nicht regulären Dateien.

Block Größe=int[,int], bs=int[,int]
Blockgröße für I/O-Einheiten. Standard: 4k. Werte für Lese-, Schreib- und Kürzungsvorgänge können sein
im Format gesondert angegeben lesen,schreiben,trimmen Beides kann leer sein
Belassen Sie diesen Wert auf dem Standardwert. Wenn kein abschließendes Komma angegeben ist, der Rest
erbt den zuletzt eingestellten Wert.

blocksize_range=irange[,irange], bsrange=irange[,irange]
Geben Sie einen Bereich von E/A-Blockgrößen an. Die ausgegebene I/O-Einheit wird immer ein Vielfaches sein
der Mindestgröße, es sei denn blocksize_unaligned eingestellt ist. Gilt sowohl für Lesevorgänge als auch für
schreibt, wenn nur ein Bereich angegeben ist, kann aber separat mit einem Komma angegeben werden
die Werte trennen. Beispiel: bsrange=1k-4k,2k-8k. Siehe auch Block Größe).

bssplit=str
Diese Option ermöglicht nicht nur eine noch feinere Steuerung der ausgegebenen Blockgrößen
sogar Spaltungen zwischen ihnen. Mit dieser Option können Sie verschiedene Blockgrößen gewichten
genaue Kontrolle der ausgegebenen E/A für einen Job mit gemischten Blockgrößen. Das Format von
Die Option ist bssplit=blocksize/percentage und fügt optional so viele Definitionen hinzu
nach Bedarf durch einen Doppelpunkt getrennt. Beispiel: bssplit=4k/10:64k/50:32k/40 würde ausgegeben
50 % 64 Blöcke, 10 % 4 Blöcke und 40 % 32 Blöcke. bssplit unterstützt auch das Geben
Separate Aufteilungen für Lese- und Schreibvorgänge. Das Format ist identisch mit dem bs zu erhalten
akzeptiert, werden die Lese- und Schreibteile durch ein Komma getrennt.

blocksize_unaligned, bs_unaligned
Falls festgelegt, jede Größe in blocksize_range könnte genutzt werden. Dies funktioniert normalerweise nicht
direkte E/A, da hierfür normalerweise eine Sektorausrichtung erforderlich ist.

blockalign=int[,int], ba=int[,int]
An welcher Grenze sollen zufällige E/A-Offsets ausgerichtet werden? Standardmäßig dasselbe wie „Blockgröße“.
die angegebene minimale Blockgröße. Die Mindestausrichtung beträgt normalerweise 512b für die direkte Verwendung
IO, obwohl es normalerweise von der Hardware-Blockgröße abhängt. Diese Option ist gegenseitig
exklusiv mit der Verwendung einer Zufallszuordnung für Dateien, daher wird diese Option deaktiviert.

bs_is_seq_rand=bool
Wenn diese Option festgelegt ist, verwendet fio die normalen Einstellungen für die Blockgröße zum Lesen und Schreiben als
stattdessen sequenziell, zufällig. Bei jedem zufälligen Lese- oder Schreibvorgang wird die WRITE-Blockgröße verwendet
Einstellungen, und alle sequentiellen Lese- oder Schreibvorgänge verwenden die READ-Blockgrößeneinstellung.

null_puffer
Puffer mit allen Nullen initialisieren. Standard: Puffer mit Zufallsdaten füllen.

fill_buffers
Wenn diese Option angegeben ist, füllt fio die E/A-Puffer bei jeder Übermittlung auf. Der
Standardmäßig wird es nur zum Zeitpunkt der Initialisierung gefüllt und diese Daten wiederverwendet. Macht nur Sinn, wenn
Zero_buffers ist natürlich nicht angegeben. Wenn die Datenüberprüfung aktiviert ist,
fill_buffers ist ebenfalls automatisch aktiviert.

scramble_buffers=bool
If fill_buffers ist zu kostspielig und das Ziel nutzt dann die Datendeduplizierung
Wenn Sie diese Option festlegen, wird der Inhalt des E/A-Puffers geringfügig geändert, um den Normalzustand zu verhindern
Deduplizierungsversuche. Dies reicht nicht aus, um eine cleverere Blockkomprimierung zu verhindern
Versuche, aber es wird die naive Deduplizierung von Blöcken stoppen. Standard: true.

buffer_compress_percentage=int
Wenn dies festgelegt ist, wird fio versuchen, IO-Pufferinhalt (bei WRITEs) bereitzustellen
auf das angegebene Niveau komprimieren. Fio erreicht dies, indem es eine Mischung aus Zufallsdaten bereitstellt
und ein festes Muster. Das feste Muster besteht entweder aus Nullen oder dem angegebenen Muster
by buffer_pattern. Wenn die Musteroption verwendet wird, kann es zu einer Verzerrung der Komprimierung kommen
Verhältnis leicht. Beachten Sie, dass dies pro Blockgrößeneinheit für die Datei-/Datenträgerbreite gilt
Komprimierungsstufe, die dieser Einstellung entspricht. Beachten Sie, dass dies pro Blockgrößeneinheit gilt.
Für eine datei-/festplattenweite Komprimierungsstufe, die dieser Einstellung entspricht, sollten Sie dies ebenfalls tun
set fill_buffers.

buffer_compress_chunk=int
See buffer_compress_percentage. Mit dieser Einstellung kann fio verwalten, wie groß die Datei ist
Bereiche von Zufallsdaten und Nulldaten sind. Ohne dieses Set liefert fio
buffer_compress_percentage von blockgroßen Zufallsdaten, gefolgt vom Rest
auf Null gesetzt. Wenn dies auf eine kleinere Blockgröße als die Blockgröße eingestellt ist, kann fio dies tun
abwechselnd zufällige und Nulldaten im gesamten E/A-Puffer.

buffer_pattern=str
Wenn festgelegt, füllt fio die E/A-Puffer mit diesem Muster. Wenn nicht festgelegt, wird der Inhalt von
E/A-Puffer werden durch die anderen Optionen im Zusammenhang mit Pufferinhalten definiert. Die Einstellung
kann ein beliebiges Bytemuster sein und kann mit dem Präfix 0x für Hexadezimalwerte versehen werden. Es kann
auch ein String sein, wobei der String dann mit „“ umschlossen werden muss, z.B.:
buffer_pattern="abcd"
or
buffer_pattern= -12
or
buffer_pattern=0xdeadface

Sie können auch alles in beliebiger Reihenfolge kombinieren:

buffer_pattern=0xdeadface"abcd"-12

dedupe_percentage=int
Wenn festgelegt, generiert fio beim Schreiben diesen Prozentsatz identischer Puffer. Diese
Puffer sind natürlich deduplizierbar. Der Inhalt der Puffer hängt davon ab, was
Es wurden andere Einstellungen für die Pufferkomprimierung festgelegt. Es ist möglich, das zu haben
Einzelne Puffer sind entweder vollständig komprimierbar oder überhaupt nicht komprimierbar. Nur diese Option
Steuert die Verteilung eindeutiger Puffer.

Nrfiles=int
Anzahl der für diesen Job zu verwendenden Dateien. Standard: 1.

openfiles=int
Anzahl der Dateien, die gleichzeitig geöffnet bleiben sollen. Standard: Nrfiles.

file_service_type=str
Definiert, wie die zu wartenden Dateien ausgewählt werden. Folgende Typen sind definiert:

zufällig Wählen Sie zufällig eine Datei aus.

Roundrobin
Round-Robin über geöffnete Dateien (Standard).

sequenziell
Bearbeiten Sie jede Datei im Satz nacheinander.

Die Anzahl der E/A-Vorgänge, die vor dem Wechsel zu einer neuen Datei ausgegeben werden sollen, kann durch angegeben werden
Anhängen von „:int' zum Diensttyp.

ioengine=str
Definiert, wie der Job E/A ausgibt. Folgende Typen sind definiert:

synchronisieren Basic lesen(2) oder schreiben(2) E/A. fseek(2) dient zur Positionierung des I/O


psync Basic vorlesen(2) oder schreiben(2) E/A.

vsync Basic lesen(2) oder schreibenv(2) E/A. Emuliert Warteschlangen durch Zusammenführung
benachbarte IOs in einer einzigen Einreichung.

pvsync Basic preadv(2) oder pwritev(2) E/A.

libaio Native asynchrone Linux-E/A. Diese ioengine definiert Engine-spezifisch
Optionen.

posixaio
Verwendung asynchroner POSIX-E/A aio_read(3) und aio_write(3).

solarisaio
Native asynchrone Solaris-E/A.

Windowsaio
Windows-native asynchrone E/A.

mmap Die Datei ist dem Speicher zugeordnet mmap(2) und Daten kopiert mit memcpy(3).

spleißen spleißen(2) dient der Übermittlung der Daten und vmsplice(2) zu übertragen
Daten vom User-Space zum Kernel.

syslet-rw
Verwenden Sie die Syslet-Systemaufrufe, um regelmäßige Lese-/Schreibvorgänge asynchron durchzuführen.

sg SCSI generisches SG v3 I/O. Kann entweder synchron mit dem SG_IO sein
ioctl, oder wenn das Ziel ein SG-Zeichengerät ist, verwenden wir lesen(2) und
schreiben(2) für asynchrone E/A.

null Es werden keine Daten übertragen, sondern nur so getan. Wird hauptsächlich zum Trainieren verwendet
Gewinde selbst sowie zu Debug- und Testzwecken.

Netto- Übertragung über das Netzwerk. Das zu verwendende Protokoll kann definiert werden
an. Nach der Installation können Sie HEIC-Dateien mit der Protokoll Parameter. Abhängig vom Protokoll, Dateinamen,
hostname, port , oder hören muss angegeben werden. Diese ioengine definiert
motorspezifische Optionen.

Netzspleiß
Like Netto-, aber verwendet spleißen(2) und vmsplice(2) um Daten abzubilden und
senden empfangen. Diese ioengine definiert Engine-spezifische Optionen.

cpuio Überträgt keine Daten, verbraucht aber CPU-Zyklen entsprechend CPU-Last
und CPU-Zyklen Parameter.

Guasi Die GUASI-I/O-Engine ist der generische Userspace Asynchronous Syscall
Schnittstellenansatz für asynchrone E/A.
Sehenhttp://www.xmailserver.org/guasi-lib.html>.

rdma Die RDMA-I/O-Engine unterstützt beide RDMA-Speichersemantiken
(RDMA_WRITE/RDMA_READ) und Kanalsemantik (Send/Recv) für die
InfiniBand-, RoCE- und iWARP-Protokolle.

extern
Lädt eine externe I/O-Engine-Objektdatei. Hängen Sie den Engine-Dateinamen an
als „:Motorpfad'.

falloc
E/A-Engine, die reguläre Linux-native Fallocate-Aufrufe ausführt
Simulieren Sie die Datenübertragung als FIO-Ioengine
DDIR_READ führt fallocate(,mode = FALLOC_FL_KEEP_SIZE,) aus.
DIR_WRITE führt fallocate(,mode = 0) aus
DDIR_TRIM führt fallocate(,mode = aus
FALLOC_FL_KEEP_SIZE|FALLOC_FL_PUNCH_HOLE)

e4defrag
E/A-Engine, die zur Simulation regelmäßige EXT4_IOC_MOVE_EXT-Ioctls ausführt
Defragmentierungsaktivitätsanforderung an DDIR_WRITE-Ereignis

rbd IO-Engine unterstützt direkten Zugriff auf Ceph Rados Block Devices (RBD)
über librbd, ohne dass der Kernel-rbd-Treiber verwendet werden muss. Das
ioengine definiert Engine-spezifische Optionen.

gfapi Verwendung der libgfapi-Synchronisierungsschnittstelle von Glusterfs für den direkten Zugriff auf Glusterfs
Volumes ohne den Umweg über FUSE. Diese ioengine definiert
motorspezifische Optionen.

gfapi_async
Verwenden der asynchronen libgfapi-Schnittstelle von Glusterfs für den direkten Zugriff auf
Glusterfs-Volumes, ohne FUSE durchlaufen zu müssen. Diese Ioengine
definiert motorspezifische Optionen.

libhdfs
Lesen und schreiben Sie über Hadoop (HDFS). Der Dateinamen Option wird verwendet, um
Geben Sie Host und Port des HDFS-Namensknotens an, mit dem eine Verbindung hergestellt werden soll. Dieser Motor
interpretiert Offsets etwas anders. In HDFS werden Dateien einmal erstellt
kann nicht geändert werden. Daher sind zufällige Schreibvorgänge nicht möglich. Nachahmen
In diesem Fall erwartet die libhdfs-Engine, dass eine Reihe kleiner Dateien erstellt werden
HDFS und die Engine wählen aus diesen Dateien zufällig eine Datei aus
auf dem vom FIO-Backend generierten Offset. (siehe Beispiel-Jobdatei zu
Um solche Dateien zu erstellen, verwenden Sie die Option rw=write. Bitte beachten Sie, dass Sie möglicherweise möchten
um die notwendigen Umgebungsvariablen für die Arbeit mit hdfs/libhdfs festzulegen
richtig.

mtd Lesen, schreiben und löschen Sie ein MTD-Zeichengerät (z. B. /dev/mtd0).
Verwerfungen werden als Löschungen behandelt. Abhängig vom zugrunde liegenden Gerät
Typ, die E/A müssen möglicherweise in einem bestimmten Muster erfolgen, z. B. auf NAND,
Nacheinander schreiben, um Blöcke zu löschen und vorher zu verwerfen
Überschreiben. Der Writetrim-Modus eignet sich gut für diese Einschränkung.

io Depth=int
Anzahl der E/A-Einheiten, die für die Datei im Einsatz bleiben sollen. Beachten Sie, dass es zunimmt
io Depth über 1 wirkt sich nicht auf synchrone ioengines aus (außer bei kleinen Graden).
wenn „verify_async“ verwendet wird). Sogar asynchrone Engines können Betriebssystemeinschränkungen verursachen
Die gewünschte Tiefe wird nicht erreicht. Dies kann unter Linux passieren, wenn libaio verwendet wird
und nicht einstellen Direkt=1, da gepufferte E/A auf diesem Betriebssystem nicht asynchron ist. Habe ein Auge auf
die E/A-Tiefenverteilung in der FIO-Ausgabe, um zu überprüfen, ob die erreichte Tiefe wie folgt ist
erwartet. Standard: 1.

io Depth_batch=int
Anzahl der gleichzeitig zu übermittelnden I/Os. Standard: io Depth.

io Depth_batch_complete=int
Dies definiert, wie viele IO-Teile gleichzeitig abgerufen werden sollen. Der Standardwert ist 1
bedeutet, dass wir im Abrufprozess von mindestens 1 IO anfordern
Kernel. Der E/A-Abruf wird fortgesetzt, bis wir das von festgelegte Limit erreichen io Depth_low. Wenn
Wenn diese Variable auf 0 gesetzt ist, prüft fio vorher immer, ob abgeschlossene Ereignisse vorliegen
mehr IO in die Warteschlange stellen. Dies trägt dazu bei, die E/A-Latenz zu reduzieren, allerdings auf Kosten eines höheren Abrufsystems
Anrufe.

io Depth_low=int
Niedriges Wasserzeichen, das angibt, wann die Warteschlange wieder gefüllt werden soll. Standard: io Depth.

io_submit_mode=str
Diese Option steuert, wie fio die E/A an die E/A-Engine übermittelt. Die Standardeinstellung ist
Inline-, was bedeutet, dass die FIO-Job-Threads IO direkt übermitteln und ernten. Wenn festgelegt
zu ausladen, verlagern die Job-Threads die E/A-Übermittlung in einen dedizierten E/A-Pool
Threads. Dies erfordert etwas Koordination und ist daher mit etwas zusätzlichem Aufwand verbunden.
insbesondere für E/A mit geringerer Warteschlangentiefe, wo es zu höheren Latenzen kommen kann. Der Vorteil ist
dass FIO die Übermittlungsraten unabhängig von den Geräteabschlussraten verwalten kann.
Dies vermeidet verzerrte Latenzberichte, wenn IO auf der Geräteseite wieder verfügbar ist (der
koordiniertes Auslassungsproblem).

Direkt=bool
Wenn „true“, verwenden Sie nicht gepufferte E/A (normalerweise O_DIRECT). Standard: false.

Atom-=bool
Wenn der Wert wahr ist, versuchen Sie, atomare direkte E/A zu verwenden. Atomare Schreibvorgänge sind garantiert
stabil sein, sobald es vom Betriebssystem bestätigt wird. Nur Linux unterstützt O_ATOMIC
gerade jetzt.

Gepuffert=bool
Wenn „true“, gepufferte E/A verwenden. Dies ist das Gegenteil von Direkt Parameter. Standard:
wahr.

Offset=int
Offset in der Datei, um I/O zu starten. Daten vor dem Offset werden nicht berührt.

offset_inkrement=int
Wenn dies angegeben ist, wird der tatsächliche Offset zu Offset + Offset_Inkrement *
Threadnummer, wobei die Threadnummer ein Zähler ist, der bei 0 beginnt und ist
wird für jeden Unterauftrag erhöht (dh wenn die Option numjobs angegeben ist). Diese Option
ist nützlich, wenn es mehrere Jobs gibt, die eine Datei bearbeiten sollen
parallele disjunkte Segmente mit gleichmäßigem Abstand zwischen den Startpunkten.

number_ios=int
Fio führt normalerweise E/As aus, bis die von festgelegte Größe der Region ausgeschöpft ist
Größeoder wenn die zugewiesene Zeit erschöpft ist (oder eine Fehlerbedingung auftritt). Mit diesem
Bei dieser Einstellung kann der Bereich/die Größe unabhängig von der Anzahl der auszuführenden E/As festgelegt werden.
Wenn fio diese Zahl erreicht, wird es normal beendet und meldet den Status. Beachten Sie, dass
Dies erhöht nicht die Anzahl der ausgeführten E/A-Vorgänge, sondern stoppt FIO nur, wenn
Diese Bedingung ist vor anderen Beendigungskriterien erfüllt.

fsync=int
Wie viele I/Os müssen durchgeführt werden, bevor eine ausgegeben wird? fsync(2) von schmutzigen Daten. Wenn 0, nicht
synchronisieren. Standard: 0.

fdatasync=int
Like fsync, aber verwendet fdatasync(2) stattdessen nur die Datenteile der Datei zu synchronisieren.
Standard: 0.

write_barrier=int
Lassen Sie jeden N-ten Schreiber einen Barriereschreiber schreiben.

sync_file_range=str:int
Verwenden Sie die sync_file_range(2) für jede val Anzahl von Schreibvorgängen. Fio wird verfolgen
Umfang der Schreibvorgänge, die seit dem letzten Mal stattgefunden haben sync_file_range(2) anrufen. str kann
derzeit einer oder mehrere der folgenden sein:

warte_before
SYNC_FILE_RANGE_WAIT_BEFORE

schreiben SYNC_FILE_RANGE_WRITE

warte_nachher
SYNC_FILE_RANGE_WRITE

Wenn Sie also sync_file_range=wait_before,write:8 ausführen, würde fio verwenden
SYNC_FILE_RANGE_WAIT_BEFORE | SYNC_FILE_RANGE_WRITE für alle 8 Schreibvorgänge. Siehe auch
sync_file_range(2) Manpage. Diese Option ist Linux-spezifisch.

überschreiben=bool
Wenn Sie schreiben, richten Sie zuerst die Datei ein und führen Sie Überschreibungen durch. Standard: false.

end_fsync=bool
Dateiinhalte synchronisieren, wenn eine Schreibphase abgeschlossen ist. Standard: false.

fsync_on_close=bool
Wenn „true“, Dateiinhalte beim Schließen synchronisieren. Dies unterscheidet sich von end_fsync darin, dass es so sein wird
passieren bei jedem Abschluss, nicht nur am Ende der Arbeit. Standard: false.

rwmixread=int
Prozentsatz einer gemischten Arbeitslast, der gelesen werden soll. Standard: 50.

rwmixwrite=int
Prozentsatz einer gemischten Arbeitslast, der geschrieben werden soll. Wenn rwmixread und rwmixwrite
gegeben sind und in der Summe nicht 100 % ergeben, hat die letztere der beiden Vorrang vor der ersten. Das
kann eine bestimmte Rateneinstellung beeinträchtigen, wenn fio aufgefordert wird, Lese- oder Schreibvorgänge zu begrenzen
auf eine bestimmte Rate. Wenn dies der Fall ist, kann es zu einer Schiefe der Verteilung kommen.
Standard: 50.

random_distribution=str:float
Standardmäßig verwendet fio auf Anfrage eine völlig gleichmäßige Zufallsverteilung
Führen Sie zufällige E/A durch. Manchmal ist es sinnvoll, die Verteilung gezielt zu verzerren
Dadurch wird sichergestellt, dass einige Teile der Daten heißer sind als andere. Fio beinhaltet
folgende Vertriebsmodelle:

zufällig Gleichmäßige Zufallsverteilung

zipf Zipf-Verteilung

pareto Pareto-Verteilung

Bei Verwendung einer Zipf- oder Pareto-Verteilung ist außerdem ein Eingabewert erforderlich
Definieren Sie das Zugriffsmuster. Für Zipf ist dies das Zipf-Theta. Für Pareto ist es das
Pareto-Leistung. Fio enthält ein Testprogramm, genzipf, mit dem visualisiert werden kann, was
Die angegebenen Eingabewerte ergeben eine Trefferquote. Wenn Sie zipf verwenden möchten
Bei einem Theta von 1.2 würden Sie random_distribution=zipf:1.2 als Option verwenden. Wenn ein
Wenn ein uneinheitliches Modell verwendet wird, deaktiviert fio die Verwendung der Zufallskarte.

Prozentsatz_zufällig=int
Legen Sie für eine zufällige Arbeitslast fest, wie groß der Prozentsatz sein soll, der zufällig sein soll. Dies ist die Standardeinstellung
100 %, in diesem Fall ist die Arbeitsbelastung völlig zufällig. Es kann von überall aus eingestellt werden
0 bis 100. Wenn Sie den Wert auf 0 setzen, wird die Arbeitslast vollständig sequenziell ausgeführt. Es ist möglich
um unterschiedliche Werte für Lese-, Schreib- und Trimmvorgänge festzulegen. Verwenden Sie dazu einfach ein Komma
getrennte Liste. Sehen Block Größe.

norandommap
Normalerweise Gewinde deckt jeden Block der Datei ab, wenn zufällige E/A-Vorgänge ausgeführt werden. Wenn dies
Wenn der Parameter angegeben wird, wird ein neuer Offset ausgewählt, ohne auf vergangene E/A zu achten
Geschichte. Dieser Parameter schließt sich gegenseitig aus überprüfen.

Softrandommap=bool
See norandommap. Wenn fio mit aktivierter Zufallsblockzuordnung ausgeführt wird und dies fehlschlägt
Ordnen Sie die Karte zu. Wenn diese Option aktiviert ist, wird sie ohne zufälligen Block fortgesetzt
Karte. Da die Abdeckung nicht so vollständig ist wie bei Zufallskarten, ist diese Option verfügbar
standardmäßig deaktiviert.

Zufallsgenerator=str
Fio unterstützt die folgenden Engines zum Generieren von IO-Offsets für zufällige IO:

Tausworthe
Starker 2^88-Zyklus-Zufallszahlengenerator

lfsr Schieberegistergenerator mit linearer Rückkopplung

tausworthe64
Starker 64-Bit-Zufallszahlengenerator mit 2^258 Zyklen

Tausworthe ist ein starker Zufallszahlengenerator, der jedoch nachverfolgt werden muss

Seite, wenn wir sicherstellen wollen, dass Blöcke nur einmal gelesen oder geschrieben werden. LFSR
garantiert, dass wir nie zweimal den gleichen Offset erzeugen, und er ist auch geringer
rechenintensiv. Für IO handelt es sich jedoch nicht um einen echten Zufallsgenerator
Für Zwecke ist es normalerweise gut genug. LFSR funktioniert nur mit einzelnen Blockgrößen, nicht
mit Workloads, die mehrere Blockgrößen verwenden. Bei Verwendung mit einer solchen Arbeitslast kann fio
Lesen oder schreiben Sie einige Blöcke mehrmals.

schön=int
Führen Sie den Job mit dem angegebenen netten Wert aus. Sehen schön(2).

prio=int
Legen Sie den E/A-Prioritätswert dieses Jobs zwischen 0 (höchster Wert) und 7 (niedrigster Wert) fest. Sehen
ionisieren(1).

Prioklasse=int
Legen Sie die E/A-Prioritätsklasse fest. Sehen ionisieren(1).

Denkzeit=int
Blockieren Sie den Job für eine bestimmte Anzahl von Mikrosekunden zwischen der Ausgabe von I/Os.

thinktime_spin=int
Stellen Sie sich vor, Sie verbringen die CPU-Zeit für eine bestimmte Anzahl von Mikrosekunden und schlafen den Rest
die von angegebene Zeit Denkzeit. Nur gültig, wenn Denkzeit wird gesetzt.

thinktime_blocks=int
Nur gültig, wenn die Denkzeit festgelegt ist – steuern Sie, wie viele Blöcke ausgegeben werden sollen, bevor Sie warten
Denkzeit Mikrosekunden. Wenn nicht festgelegt, ist der Standardwert 1, wodurch fio warten muss
Denkzeit Mikrosekunden nach jedem Block. Dadurch wird effektiv jede Warteschlangentiefe erreicht
Redundant einstellen, da nicht mehr als 1 IO in die Warteschlange gestellt wird, bevor dies erforderlich ist
Vervollständigen Sie es und nehmen Sie sich Zeit zum Nachdenken. Mit anderen Worten, diese Einstellung begrenzt effektiv die
Warteschlangentiefe, wenn diese größer ist. Standard: 1.

Rate=int
Begrenzte Bandbreite, die von diesem Job verwendet wird. Die Zahl wird in Bytes/Sek. angegeben, dem normalen Postfix
Es gelten die Regeln. Sie können verwenden Rate=500, um Lese- und Schreibvorgänge auf jeweils 500 zu beschränken, oder Sie
kann Lese- und Schreibvorgänge separat angeben. Benutzen Rate=1m.500k würde die Lesevorgänge beschränken auf
1 MB/Sek. und Schreibgeschwindigkeiten bis zu 500 KB/Sek. Es können nur Lese- oder Schreibvorgänge begrenzt werden
Rate=,500k oder Rate=500k,. Ersteres begrenzt nur Schreibvorgänge (auf 500 KB/s), das
Letzteres beschränkt nur die Lesevorgänge.

Ratemin=int
Erzählen Gewinde alles zu tun, um zumindest die gegebene Bandbreite aufrechtzuerhalten. Versagen
Wird diese Anforderung erfüllt, wird der Job beendet. Das gleiche Format wie Rate is
Wird für die Trennung von Lesen und Schreiben verwendet.

rate_iops=int
Begrenzen Sie die Bandbreite auf diese Anzahl von IOPS. Im Grunde dasselbe wie Rate, nur
unabhängig von der Bandbreite spezifiziert. Das gleiche Format wie Rate wird für Lesen vs. verwendet
Trennung schreiben. Wenn Block Größe ist ein Bereich, die kleinste Blockgröße wird als verwendet
metrisch.

rate_iops_min=int
Wenn diese E/A-Rate nicht erreicht wird, wird der Job beendet. Das gleiche Format wie Rate verwendet wird
für die Trennung von Lesen und Schreiben.

Ratezyklus=int
Durchschnittliche Bandbreite für Rate und Ratemin über diese Anzahl von Millisekunden. Standard:
1000ms.

latency_target=int
Wenn festgelegt, versucht fio, den maximalen Leistungspunkt für die gegebene Arbeitslast zu finden
wird mit einer Latenz ausgeführt, die unter diesem Ziel liegt. Die Werte sind in angegeben
Mikrosekunden. Sehen latency_window und latency_percentile.

latency_window=int
Benutzt mit latency_target um das Beispielfenster anzugeben, in dem der Job ausgeführt wird
unterschiedliche Warteschlangentiefen, um die Leistung zu testen. Der Wert wird in Mikrosekunden angegeben.

latency_percentile=schweben
Der Prozentsatz der E/As, die den von angegebenen Kriterien entsprechen müssen
latency_target und latency_window. Wenn nicht festgelegt, ist der Standardwert 100.0
Alle IOs müssen gleich oder kleiner als der von eingestellte Wert sein latency_target.

max_latency=int
Wenn festgelegt, beendet fio den Job, wenn er diese maximale Latenz überschreitet. Es wird mit beendet
ein ETIME-Fehler.

CPU-Maske=int
Legen Sie die CPU-Affinität für diesen Job fest. int ist eine Bitmaske der zulässigen CPUs, auf denen der Job ausgeführt werden darf.
See sched_setaffinity(2).

cpus_allowed=str
Das gleiche wie CPU-Maske, erlaubt aber eine durch Kommas getrennte Liste von CPU-Nummern.

cpus_allowed_policy=str
Legen Sie die Richtlinie fest, wie fio die von angegebenen CPUs verteilt cpus_allowed or
CPU-Maske. Es werden zwei Richtlinien unterstützt:

von Locals geführtes Alle Jobs teilen sich den angegebenen CPU-Satz.

gespalten Jeder Job erhält eine eindeutige CPU aus dem CPU-Satz.

von Locals geführtes ist das Standardverhalten, wenn die Option nicht angegeben ist. Wenn gespalten is
angegeben, dann weist fio eine CPU pro Job zu. Falls nicht genügend CPUs vorhanden sind
Wenn Sie die aufgelisteten Jobs ausführen, führt fio ein Roundrobin der CPUs im Satz durch.

numa_cpu_nodes=str
Legen Sie fest, dass dieser Job auf den CPUs der angegebenen NUMA-Knoten ausgeführt wird. Die Argumente erlauben Komma
Getrennte Liste von CPU-Nummern, AB-Bereichen oder „Alle“.

numa_mem_policy=str
Legen Sie die Speicherrichtlinie dieses Jobs und die entsprechenden NUMA-Knoten fest. Format der Argumente:

[: ]

Modus ist eine der folgenden Speicherrichtlinien:

Standard bevorzugen, binden, verschachteln, aus einer regionalen

Aussichten für Standard und aus einer regionalen Speicherrichtlinie, nein Knotenliste is
musste spezifiziert werden. Für bevorzugenEs ist nur ein Knoten zulässig. Für binden und
verschachteln, Knotenliste Ermöglicht eine durch Kommas getrennte Liste von Zahlen, AB-Bereichen oder „alle“.

Startverzögerung=Irland
Verzögern Sie den Jobstart um die angegebene Anzahl von Sekunden. Unterstützt alle Zeitsuffixe
um die Angabe von Stunden, Minuten, Sekunden und Millisekunden zu ermöglichen – Sekunden sind
die Standardeinstellung, wenn eine Einheit weggelassen wird. Kann als Bereich angegeben werden, der jeden Thread verursacht
zufällig aus dem Bereich auszuwählen.

Laufzeit=int
Beenden Sie die Verarbeitung nach der angegebenen Anzahl von Sekunden.

zeitbasiert
Falls angegeben, für die angegebene Zeit ausführen Laufzeit Dauer, auch wenn die Dateien vollständig sind
gelesen oder geschrieben. Die gleiche Arbeitsbelastung wird beliebig oft wiederholt Laufzeit
erlaubt.

ramp_time=int
Wenn festgelegt, führt fio die angegebene Arbeitslast für diesen Zeitraum aus, bevor die Protokollierung erfolgt
irgendwelche Leistungszahlen. Nützlich, um die Leistung vor der Protokollierung stabilisieren zu lassen
Ergebnisse und minimiert so die für stabile Ergebnisse erforderliche Laufzeit. Notiere dass der
ramp_time gilt als Vorlaufzeit für einen Auftrag und erhöht somit die Gesamtzeit
Laufzeit, wenn ein spezielles Timeout oder eine spezielle Laufzeit angegeben ist.

ungültig machen=bool
Machen Sie den Puffercache für die Datei ungültig, bevor Sie die E/A starten. Standard: wahr.

synchronisieren=bool
Verwenden Sie synchrone E/A für gepufferte Schreibvorgänge. Für die meisten I/O-Engines gilt dies
bedeutet die Verwendung von O_SYNC. Standard: false.

iomem=str, Mitglied=str
Zuweisungsmethode für den Puffer der E/A-Einheit. Zulässige Werte sind:

malloc Speicher zuweisen mit malloc(3).

shm Verwenden Sie durch zugewiesene Puffer des gemeinsam genutzten Speichers shmget(2).

shmriesig
Das gleiche wie shm, aber verwenden Sie große Seiten als Hintergrund.

mmap Verwenden Sie die mmap(2) zur Zuteilung. Verwendet anonymen Speicher, es sei denn, es handelt sich um einen Dateinamen
wird nach der Option im Format angegeben:Datei'.

mmahuge
Das gleiche wie mmap, aber verwenden Sie große Dateien als Backup.

Die zugewiesene Speichermenge ist die maximal zulässige Menge Block Größe für die Arbeit
multipliziert mit io Depth. For shmriesig or mmahuge Um zu funktionieren, muss das System frei sein
Riesige Seiten zugewiesen. mmahuge Außerdem muss Hugetlbfs gemountet sein, und Datei sollen
Punkt da. Zumindest unter Linux müssen große Seiten manuell zugewiesen werden. Sehen
/proc/sys/vm/nr_hugehages und die Dokumentation dazu. Normalerweise muss man es einfach tun
echo eine entsprechende Zahl, z. B. echo 8 stellt sicher, dass das Betriebssystem 8 große Seiten hat
bereit zum Benutzen.

iomem_align=int, mem_align=int
Dies zeigt die Speicherausrichtung der E/A-Speicherpuffer an. Beachten Sie, dass das Gegebene
Die Ausrichtung wird auf den Puffer der ersten E/A-Einheit angewendet, sofern dieser verwendet wird io Depth die Ausrichtung von
Die folgenden Puffer werden von der gegeben bs gebraucht. Mit anderen Worten, wenn Sie a verwenden bs zur Verbesserung der Gesundheitsgerechtigkeit
ein Vielfaches der Seitengröße im System ist, werden alle Puffer daran ausgerichtet
Wert. Bei Verwendung eines bs Das ist nicht seitenausgerichtet, die Ausrichtung nachfolgender IO
Speicherpuffer ist die Summe der iomem_align und bs benutzt.

riesige Seitengröße=int
Definiert die Größe einer großen Seite. Muss mindestens der Systemeinstellung entsprechen.
Sollte ein Vielfaches von 1 MB sein. Standard: 4 MB.

Exitall
Beenden Sie alle Jobs, wenn einer beendet ist. Standard: Warten Sie, bis jeder Auftrag abgeschlossen ist.

bwavgtime=int
Durchschnittliche Bandbreitenberechnungen über den angegebenen Zeitraum in Millisekunden. Standard:
500ms.

iopsavgtime=int
Durchschnittliche IOPS-Berechnungen über den angegebenen Zeitraum in Millisekunden. Standard: 500 ms.

create_serialize=bool
Wenn „true“, wird die Dateierstellung für die Jobs serialisiert. Standard: wahr.

create_fsync=bool
fsync(2) Datendatei nach der Erstellung. Standard: true.

create_on_open=bool
Bei „true“ werden die Dateien erst erstellt, wenn sie vom Job für E/A geöffnet werden.

create_only=bool
Wenn „true“, führt fio nur die Setup-Phase des Jobs aus. Wenn Dateien angelegt werden müssen
oder auf der Festplatte aktualisiert, nur das wird durchgeführt. Die eigentlichen Stelleninhalte sind es nicht
hingerichtet.

allow_file_create=bool
Wenn „true“, darf fio im Rahmen seiner Arbeitslast Dateien erstellen. Dies ist das
Standardverhalten. Wenn diese Option falsch ist, gibt FIO einen Fehler aus, wenn es abgelegt wird
muss verwendet werden, existiert noch nicht. Standard: true.

Allow_mount_write=bool
Wenn dies nicht gesetzt ist, bricht fio Jobs ab, die destruktiv sind (z. B. die schreiben).
scheint ein gemountetes Gerät oder eine gemountete Partition zu sein. Dies sollte dabei helfen, beim Erstellen zu helfen
versehentlich destruktive Tests, ohne zu erkennen, dass der Test Daten zerstört
das gemountete Dateisystem. Standard: false.

Pre Lese=bool
Wenn dies angegeben ist, werden Dateien vor dem Start der angegebenen E/A in den Speicher eingelesen
Betrieb. Dadurch wird auch das gelöscht ungültig machen Flagge, da es sinnlos ist, vorab
lesen und dann den Cache löschen. Dies funktioniert nur für E/A-Engines, die durchsuchbar sind.
da sie es Ihnen ermöglichen, dieselben Daten mehrmals zu lesen. Daher wird es nicht funktionieren
zB Netzwerk- oder Spleiß-IO.

Verknüpfung aufheben=bool
Trennen Sie die Verknüpfung der Auftragsdateien, wenn Sie fertig sind. Standard: false.

Schleifen=int
Gibt die Anzahl der Iterationen (Läufe derselben Arbeitslast) dieses Jobs an.
Standard: 1.

verifizieren_nur=bool
Führen Sie nicht die angegebene Arbeitslast aus, sondern überprüfen Sie nur, ob die Daten noch mit den vorherigen übereinstimmen
Aufruf dieser Arbeitslast. Mit dieser Option können Daten mehrmals überprüft werden
zu einem späteren Zeitpunkt, ohne es zu überschreiben. Diese Option ist nur für Workloads sinnvoll
die Daten schreiben, und unterstützt keine Workloads mit dem zeitbasiert Optionssatz gesetzt.

do_verify=bool
Führen Sie die Überprüfungsphase nach einer Schreibphase aus. Nur gültig, wenn überprüfen eingestellt ist. Standard:
wahr.

überprüfen=str
Methode zur Überprüfung des Dateiinhalts nach jeder Iteration des Jobs. Jede
Die Überprüfungsmethode beinhaltet auch die Überprüfung des speziellen Headers, der geschrieben wird
bis zum Anfang jedes Blocks. Dieser Header enthält auch Metainformationen, z
Offset des Blocks, Blocknummer, Zeitstempel, wann der Block geschrieben wurde usw.
überprüfen=str kann mit kombiniert werden verifizieren_muster=str-Option. Die zulässigen Werte sind:

md5 crc16 crc32 crc32c crc32c-intel crc64 crc7 sha256 sha512 sha1 xxhash
Speichern Sie die entsprechende Prüfsumme im Header jedes Blocks. crc32c-intel
wird durch hardwarebeschleunigtes SSE4.2 gesteuert und greift auf normales crc32c zurück
falls nicht vom System unterstützt.

Ziel Diese Option ist veraltet, da jetzt Metainformationen enthalten sind
Der generische Verifizierungsheader und die Metaverifizierung erfolgen standardmäßig.
Detaillierte Informationen finden Sie in der Beschreibung des überprüfen=str
Einstellung. Diese Option wird aus Kompatibilitätsgründen mit alten beibehalten
Konfigurationen. Benutze es nicht.

Anleitungen
Überprüfen Sie ein striktes Muster. Normalerweise enthält fio einen Header mit einigen
Basisinformationen und Prüfsummenbildung, jedoch nur, wenn diese Option gesetzt ist
das spezifische Muster, das mit eingestellt wird verifizieren_muster wird verifiziert.

null Tu so, als ob du es verifizieren würdest. Wird zum Testen interner Komponenten verwendet.

Diese Option kann für wiederholte Einbrenntests eines Systems verwendet werden, um dies sicherzustellen
die geschriebenen Daten werden auch korrekt zurückgelesen. Wenn die angegebene Datenrichtung ein Lesevorgang ist
oder zufälliges Lesen, Fio geht davon aus, dass eine zuvor geschriebene Datei überprüft werden soll. Wenn
Die Datenrichtung umfasst jede Form des Schreibens, die Überprüfung erfolgt neu
geschriebene Daten.

verifizierensort=bool
Wenn „true“, werden geschriebene Prüfblöcke nach „if“ sortiert Gewinde hält es für schneller, sie zu lesen
wieder sortiert zurück. Standard: true.

Verifysort_nr=int
Laden Sie Verifizierungsblöcke für eine Lese-Workload vor und sortieren Sie sie.

überprüfen_offset=int
Tauschen Sie den Verifizierungsheader vor dem Schreiben mit Daten an einer anderen Stelle im Block aus.
Es wird vor der Überprüfung wieder ausgetauscht.

überprüfen_interval=int
Schreiben Sie den Verifizierungsheader für diese Anzahl von Bytes, die geteilt werden sollen
Block Größe. Standard: Block Größe.

verifizieren_muster=str
Wenn festgelegt, füllt fio die io-Puffer mit diesem Muster. Fio füllt standardmäßig aus
mit völlig zufälligen Bytes, aber manchmal ist es interessant, sie mit einem bekannten zu füllen
Muster für IO-Verifizierungszwecke. Abhängig von der Breite des Musters, fio
füllt zu diesem Zeitpunkt 1/2/3/4 Bytes des Puffers (es kann entweder eine Dezimalzahl oder eine sein
Hexzahl). Wenn das Prüfmuster größer als eine 32-Bit-Menge ist, muss es ein Hexadezimalwert sein
Nummer, die entweder mit „0x“ oder „0X“ beginnt. Benutzen mit überprüfen=str. Auch,
verify_pattern unterstützt das %o-Format, was bedeutet, dass für jeden Block ein Offset gilt
geschrieben und dann überprüft, z. B.:
verifizieren_muster=%o
Oder verwenden Sie eine Kombination aus allem:

verifizieren_muster=0xff%o"abcd"-21

verify_fatal=bool
Wenn „true“, wird der Job beim ersten beobachteten Verifizierungsfehler beendet. Standard: false.

überprüfen_dump=bool
Wenn festgelegt, wird der Inhalt sowohl des ursprünglichen Datenblocks als auch des Datenblocks wir ausgegeben
Auslesen der Festplatte in Dateien. Dies ermöglicht eine spätere Analyse, um zu überprüfen, um welche Art es sich handelt
Es ist eine Datenbeschädigung aufgetreten. Standardmäßig deaktiviert.

überprüfen_async=int
Fio überprüft normalerweise E/A inline vom sendenden Thread. Diese Option erfordert eine
Ganzzahl, die beschreibt, wie viele asynchrone Offload-Threads für die E/A-Überprüfung erstellt werden sollen
Stattdessen wird Fio dazu veranlasst, die Pflicht zur Überprüfung von IO-Inhalten auf einen oder mehrere zu verlagern
separate Threads. Wenn Sie diese Offload-Option verwenden, können sogar Sync-IO-Engines profitieren
von der Verwendung eines io Depth Einstellung höher als 1, da dadurch IO im Flug möglich ist
während die Überprüfungen ausgeführt werden.

verify_async_cpus=str
Weisen Sie fio an, die angegebene CPU-Affinität für die asynchronen E/A-Überprüfungsthreads festzulegen. Sehen
cpus_allowed für das verwendete Format.

verify_backlog=int
Normalerweise überprüft Fio den schriftlichen Inhalt eines Auftrags, der die Verifizierung nutzt, einmal
dieser Job ist abgeschlossen. Mit anderen Worten: Alles ist geschrieben, dann ist alles geschrieben
nochmal gelesen und verifiziert. Möglicherweise möchten Sie stattdessen kontinuierlich nach verschiedenen Kriterien suchen
Gründe dafür. Fio speichert die mit einem IO-Block verknüpften Metadaten im Speicher, z
Bei großen Verifizierungsarbeitslasten würde für die Speicherung dieses Metas ziemlich viel Speicher verbraucht werden
Daten. Wenn diese Option aktiviert ist, schreibt fio vor der Überprüfung nur N Blöcke
diese Blöcke.

verify_backlog_batch=int
Steuern Sie, wie viele Blöcke Fio überprüft, wenn „Verify_backlog“ festgelegt ist. Wenn nicht festgelegt, wird dies der Fall sein
Standardwert ist der Wert von verify_backlog (d. h. die gesamte Warteschlange wird zurückgelesen und
verifiziert). Wenn verify_backlog_batch weniger als verify_backlog dann nicht alle Blöcke
wird überprüft, wenn verify_backlog_batch ist größer als verify_backlog, etwas
Blöcke werden mehr als einmal überprüft.

trim_percentage=int
Anzahl der zu verwerfenden/zu kürzenden Prüfblöcke.

trim_verify_zero=bool
Stellen Sie sicher, dass gekürzte/verworfene Blöcke als Nullen zurückgegeben werden.

trim_backlog=int
Trimmen Sie, nachdem diese Anzahl an Blöcken geschrieben wurde.

trim_backlog_batch=int
Reduzieren Sie diese Anzahl an E/A-Blöcken.

experimentell_verify=bool
Aktivieren Sie die experimentelle Verifizierung.

verify_state_save=bool
Wenn ein Job während der Schreibphase einer Überprüfungs-Workload beendet wird, speichern Sie seinen aktuellen Job
Zustand. Dadurch kann fio bis zu diesem Punkt wiedergeben, wenn der Verifizierungsstatus geladen ist
für die Verifizierungslesephase.

verify_state_load=bool
Wenn ein Trigger zur Überprüfung der Beendigung verwendet wurde, speichert fio den aktuellen Schreibstatus von
jeden Thread. Dies kann zum Zeitpunkt der Überprüfung verwendet werden, damit FIO weiß, wie weit es entfernt ist
sollte überprüfen. Ohne diese Informationen führt fio einen vollständigen Verifizierungsdurchlauf durch.
entsprechend den Einstellungen in der verwendeten Jobdatei.

mauern , wait_for_ previous
Warten Sie, bis die vorherigen Jobs in der Jobdatei beendet sind, bevor Sie diesen starten.
mauern impliziert Neue Gruppe.

Neue Gruppe
Starten Sie eine neue Berichtsgruppe. Wenn nicht angegeben, werden alle Jobs in einer Datei Teil der Datei
derselben Berichtsgruppe, sofern sie nicht durch eine Mauer getrennt sind.

numjobs=int
Anzahl der Klone (Prozesse/Threads, die die gleiche Arbeitslast ausführen) dieses Jobs.
Standard: 1.

group_reporting
Wenn festgelegt, werden Berichte pro Gruppe statt pro Job angezeigt, wann numjobs angegeben.

Faden Verwenden Sie Threads, die mit erstellt wurden pthread_create(3) anstelle von Prozessen, die mit erstellt wurden
Gabel(2).

Zonengröße=int
Teilen Sie die Datei in Zonen mit der angegebenen Größe in Bytes auf. Sehen Zonenüberspringen.

Zonenbereich=int
Geben Sie die Größe einer IO-Zone an. Sehen Zonenüberspringen.

Zonenüberspringen=int
Überspringen Sie die angegebene Anzahl von Bytes, wenn Zonengröße Bytes an Daten wurden gelesen.

write_iolog=str
Schreiben Sie die ausgegebenen E/A-Muster in die angegebene Datei. Geben Sie eine separate Datei für an
Andernfalls werden die iologs verstreut und die Datei ist möglicherweise beschädigt.

read_iolog=str
Spielen Sie die E/A-Muster ab, die in der angegebenen Datei enthalten sind, die von generiert wurde write_iolog,
oder kann a . sein blktspur Binärdatei.

replay_no_stall=int
Während der Wiedergabe von I/O-Mustern mit read_iolog Das Standardverhalten versucht dies
Beachten Sie die Timing-Informationen zwischen I/Os. Aktivieren replay_no_stall verursacht E/As
so schnell wie möglich unter Wahrung der Reihenfolge wiedergegeben werden.

replay_redirect=str
Während der Wiedergabe von I/O-Mustern mit read_iolog Das Standardverhalten ist die Wiedergabe
IOPS auf das Haupt-/Nebengerät, von dem jeder IOP aufgezeichnet wurde. Einstellung
replay_redirect bewirkt, dass alle IOPS auf dem einzelnen angegebenen Gerät wiedergegeben werden
unabhängig von dem Gerät, von dem es aufgenommen wurde.

replay_align=int
Erzwingen Sie die Ausrichtung von E/A-Offsets und -Längen in einer Ablaufverfolgung auf diesen Zweierpotenzwert.

replay_scale=int
Skalieren Sie den Sektor-Offset bei der Wiedergabe von Spuren um diesen Faktor nach unten.

pro_job_logs=bool
Wenn diese Option festgelegt ist, wird ein BW/CLAT/IOPS-Protokoll mit privaten Dateinamen pro Datei generiert. Wenn nicht
festgelegt, teilen sich Jobs mit identischen Namen den Protokolldateinamen. Standard: true.

write_bw_log=str
Falls angegeben, schreiben Sie ein Bandbreitenprotokoll der Jobs in dieser Jobdatei. Kann zum Aufbewahren verwendet werden
Daten über die Bandbreite der Jobs in ihrer Lebensdauer. Das inklusive
Das Skript fio_generate_plots verwendet Gnuplot, um diese Textdateien in schöne Diagramme umzuwandeln.
See write_lat_log für das Verhalten des angegebenen Dateinamens. Für diese Option lautet das Postfix
_bw.x.log, wobei x der Index des Jobs ist (1..N, wobei N die Anzahl der Jobs ist).
If pro_job_logs falsch ist, enthält der Dateiname nicht den Jobindex.

write_lat_log=str
Das gleiche wie write_bw_log, schreibt aber E/A-Abschlusslatenzen. Wenn kein Dateiname angegeben ist
Mit dieser Option wird der Standarddateiname „Jobname_Typ.x.log“ verwendet, wobei x ist
der Index des Jobs (1..N, wobei N die Anzahl der Jobs ist). Auch wenn der Dateiname lautet
gegeben, fio wird immer noch den Protokolltyp anhängen. Wenn pro_job_logs falsch ist, dann ist die
Der Dateiname enthält nicht den Jobindex.

write_iops_log=str
Das gleiche wie write_bw_log, schreibt aber IOPS. Wenn bei dieser Option kein Dateiname angegeben wird,
Es wird der Standarddateiname „jobname_type.x.log“ verwendet, wobei x der Index des ist
Job (1..N, wobei N die Anzahl der Jobs ist). Selbst wenn der Dateiname angegeben ist, wird fio dies tun
Hängen Sie weiterhin den Protokolltyp an. Wenn pro_job_logs falsch ist, wird der Dateiname nicht angezeigt
Fügen Sie den Stellenindex hinzu.

log_avg_msec=int
Standardmäßig protokolliert fio für jeden IO einen Eintrag im Iops-, Latenz- oder BW-Protokoll
vervollständigt. Beim Schreiben in das Festplattenprotokoll kann das schnell sehr groß werden
Größe. Wenn Sie diese Option festlegen, berechnet fio den Durchschnitt jedes Protokolleintrags über den angegebenen Wert
Zeitspanne, wodurch die Auflösung des Protokolls verringert wird. Der Standardwert ist 0.

log_offset=bool
Wenn dies festgelegt ist, enthalten die iolog-Optionen den Byte-Offset für den E/A-Eintrag als
sowie die anderen Datenwerte.

log_compression=int
Wenn dies festgelegt ist, komprimiert fio die E/A-Protokolle während der Verarbeitung, um den Speicher freizuhalten
geringerer Platzbedarf. Wenn ein Protokoll die angegebene Größe erreicht, wird dieser Block entfernt und
im Hintergrund komprimiert. Angesichts der Tatsache, dass E/A-Protokolle ziemlich stark komprimierbar sind,
Dies führt zu einer schönen Speicherersparnis bei längeren Läufen. Der Nachteil ist, dass die
Die Komprimierung verbraucht einige CPU-Zyklen im Hintergrund und kann daher Auswirkungen auf die Ausführung haben.
Dies gilt jedoch auch dann, wenn die Protokollierung am Ende den größten Teil des Systems beansprucht
Speicher. Also wähle dein Gift. Die IO-Protokolle werden normalerweise am Ende eines Laufs gespeichert
Dekomprimieren der Chunks und Speichern in der angegebenen Protokolldatei. Dieses Feature
hängt von der Verfügbarkeit von zlib ab.

log_store_compressed=bool
Wenn eingestellt, und Log_compression ebenfalls festgelegt ist, speichert fio die Protokolldateien in einem
komprimiertes Format. Sie können mit fio dekomprimiert werden --inflate-log
Befehlszeilenparameter. Die Dateien werden mit a gespeichert .fz Suffix.

block_error_percentiles=bool
Wenn festgelegt, werden Fehler in Einheiten in Trimmblockgröße aus Schreib- und Trimmvorgängen aufgezeichnet und a ausgegeben
Histogramm darüber, wie viele Schnitte erforderlich waren, um zu Fehlern zu gelangen, und um welche Art von Fehler es sich handelte
angetroffen.

deaktivieren_lat=bool
Deaktivieren Sie die Messung der Gesamtlatenzzahlen. Nur zum Zurückschneiden nützlich
Anzahl der Anrufe an Gettimeofday(2), da dies die Leistung sehr stark beeinträchtigt
IOPS-Raten. Beachten Sie, dass dies der Fall ist, um eine große Anzahl dieser Anrufe wirklich loszuwerden
Die Option muss auch mit „disable_slat“ und „disable_bw“ verwendet werden.

deaktivieren_clat=bool
Deaktivieren Sie die Messung der Abschlusslatenzzahlen. Sehen deaktivieren_lat.

deaktivieren_slat=bool
Deaktivieren Sie die Messung der Übermittlungslatenzzahlen. Sehen deaktivieren_lat.

disable_bw_measurement=bool
Deaktivieren Sie die Messung von Durchsatz-/Bandbreitenzahlen. Sehen deaktivieren_lat.

Sperrmem=int
Pin die angegebene Speichermenge mit mlock(2). Kann verwendet werden, um a zu simulieren
geringere Speicherkapazität. Der angegebene Betrag gilt pro Arbeitnehmer.

exec_prerun=str
Führen Sie vor dem Ausführen des Jobs den angegebenen Befehl mit aus System(3).
Die Ausgabe wird in eine Datei mit dem Namen umgeleitet jobname.prerun.txt

exec_postrun=str
Das gleiche wie exec_prerun, aber der Befehl wird ausgeführt, nachdem der Job abgeschlossen ist.
Die Ausgabe wird in eine Datei mit dem Namen umgeleitet jobname.postrun.txt

ioscheduler=str
Versuchen Sie, das Gerät, das die Datei hostet, auf den angegebenen E/A-Planer umzustellen.

disk_util=bool
Erstellen Sie Statistiken zur Festplattennutzung, wenn die Plattform dies unterstützt. Standard: wahr.

Taktquelle=str
Verwenden Sie die angegebene Taktquelle als Basis für das Timing. Die unterstützten Optionen sind:

Gettimeofday
Gettimeofday(2)

clock_gettime
clock_gettime(2)

CPU Interne CPU-Taktquelle

CPU ist die bevorzugte Taktquelle, wenn sie zuverlässig ist, da sie sehr schnell ist
(und Fio hat viel Zeit mit Anrufen). Fio verwendet diese Taktquelle automatisch, wenn
Es wird auf dem System, auf dem es ausgeführt wird, unterstützt und gilt als zuverlässig, es sei denn
eine andere Taktquelle wird gezielt eingestellt. Für x86/x86-64-CPUs bedeutet dies Unterstützung
TSC-Invariante.

gtod_reduce=bool
Aktivieren Sie alle Gettimeofday(2) Reduzieroptionen (disable_clat,disable_slat,
disable_bw) und reduzieren Sie die Präzision des Timeouts etwas, um das wirklich zu verkleinern
Gettimeofday(2) Anrufanzahl. Wenn diese Option aktiviert ist, erledigen wir nur etwa 0.4 % davon
gtod()-Aufrufe, die wir ausgeführt hätten, wenn alle Zeitmessungen aktiviert gewesen wären.

gtod_cpu=int
Manchmal ist es günstiger, einen einzelnen Ausführungsthread nur dem Abrufen zu widmen
aktuelle Uhrzeit. Fio (und Datenbanken zum Beispiel) beschäftigen sich sehr intensiv damit
Gettimeofday(2) Anrufe. Mit dieser Option können Sie eine CPU für die Ausführung reservieren
nichts anderes als die Protokollierung der aktuellen Zeit an einem gemeinsam genutzten Speicherort. Dann das andere
Threads/Prozesse, die E/A-Workloads ausführen, müssen stattdessen nur dieses Segment kopieren
Eingabe des Kernels mit a Gettimeofday(2) anrufen. Dafür wird die CPU reserviert
Zeitanrufe werden von anderen Nutzungen ausgeschlossen. Fio löscht es manuell aus dem
CPU-Maske anderer Jobs.

ignorieren_error=str
Manchmal möchten Sie einige Fehler während des Tests ignorieren. In diesem Fall können Sie dies angeben
Fehlerliste für jeden Fehlertyp.
ignore_error=READ_ERR_LIST,WRITE_ERR_LIST,VERIFY_ERR_LIST
Fehler für den angegebenen Fehlertyp werden durch „:“ getrennt. Der Fehler kann ein Symbol sein ('ENOSPC',
'ENOMEM') oder eine Ganzzahl.
Beispiel:ignore_error=EAGAIN,ENOSPC:122 .
Diese Option ignoriert EAGAIN von READ und ENOSPC und 122(EDQUOT) von WRITE.

error_dump=bool
Wenn festgelegt, wird jeder Fehler ausgegeben, auch wenn er nicht schwerwiegend ist, standardmäßig „true“. Nur wenn deaktiviert
Schwerwiegender Fehler wird ausgegeben

profile=str
Wählen Sie einen bestimmten integrierten Leistungstest aus.

Kontrollgruppe=str
Job zu dieser Kontrollgruppe hinzufügen. Wenn es nicht existiert, wird es erstellt. Das System
Damit dies funktioniert, muss ein gemounteter cgroup blkio-Mountpunkt vorhanden sein. Wenn Ihr System
Ist es nicht gemountet, können Sie dies tun mit:

# mount -t cgroup -o blkio none /cgroup

cgroup_weight=int
Stellen Sie die Gewichtung der cgroup auf diesen Wert ein. Sehen Sie sich die mitgelieferte Dokumentation an
Für den Kernel liegen die zulässigen Werte im Bereich von 100..1000.

cgroup_nodelete=bool
Normalerweise löscht fio die von ihm erstellten Kontrollgruppen nach Abschluss des Auftrags. Zu
Setzen Sie dieses Verhalten außer Kraft und legen Sie fest, dass Kontrollgruppen nach Abschluss des Auftrags verbleiben
cgroup_nodelete=1. Dies kann nützlich sein, wenn man verschiedene cgroup-Dateien untersuchen möchte
nach Abschluss der Arbeiten. Standard: false

uid=int
Anstatt als aufrufender Benutzer auszuführen, legen Sie die Benutzer-ID vor dem auf diesen Wert fest
Thread/Prozess erledigt jede Arbeit.

gid=int
Gruppen-ID festlegen, siehe uid.

unit_base=int
Basiseinheit für die Berichterstattung. Zulässige Werte sind:

0 Automatische Erkennung verwenden (Standard).

8 Bytebasiert.

1 Bitbasiert.

flow_id=int
Die ID des Flows. Wenn nicht angegeben, handelt es sich standardmäßig um einen globalen Fluss. Sehen Fluss.

Fluss=int
Gewicht in der tokenbasierten Flusskontrolle. Wenn dieser Wert verwendet wird, liegt ein vor Fluss
Zähler die dazu dient, das Aktivitätsverhältnis zwischen zwei oder mehreren zu regulieren
Arbeitsplätze. fio versucht, diesen Durchflusszähler nahe Null zu halten. Der Fluss Parameter steht
für wie viel bei jeder Iteration von zum Durchflusszähler addiert oder subtrahiert werden soll
die Haupt-I/O-Schleife. Das heißt, wenn man einen Job hat Fluss=8 und ein anderer Job hat Fluss=-1 und dann
Es wird ein Verhältnis von ungefähr 1:8 geben, wie viel eins im Vergleich zum anderen läuft.

flow_watermark=int
Der maximale Wert, den der Absolutwert des Durchflusszählers erreichen darf
bevor der Job auf einen niedrigeren Wert des Zählers warten muss.

flow_sleep=int
Die Zeitspanne in Mikrosekunden, die nach Ablauf des Flusswasserzeichens gewartet werden soll
überschritten, bevor Vorgänge erneut versucht werden

clat_percentiles=bool
Aktivieren Sie die Berichterstattung über Perzentile der Abschlusslatenzen.

Perzentilliste=float_list
Überschreiben Sie die Standardliste der Perzentile für Abschlusslatenzen und den Block
Fehlerhistogramm. Jede Zahl ist eine Gleitzahl im Bereich (0,100) und die
Die maximale Länge der Liste beträgt 20. Verwenden Sie „:“, um die Zahlen zu trennen. Zum Beispiel,
--percentile_list=99.5:99.9 führt dazu, dass fio die abgeschlossenen Werte meldet
Latenz, unter die 99.5 % bzw. 99.9 % der beobachteten Latenzen fielen.

Ioengine Parameter Liste
Einige Parameter sind nur gültig, wenn eine bestimmte ioengine verwendet wird. Diese werden verwendet
identisch mit normalen Parametern, mit der Einschränkung, dass sie bei Verwendung in der Befehlszeile
muss nach der ioengine kommen.

(CPU)CPU-Last=int
Versuchen Sie, den angegebenen Prozentsatz an CPU-Zyklen zu verwenden.

(cpu)cpuchunks=int
Teilen Sie die Last in Zyklen der angegebenen Zeit auf. In Mikrosekunden.

(cpu)exit_on_io_done=bool
Erkennen Sie, wann die E/A-Threads abgeschlossen sind, und beenden Sie den Vorgang.

(libaio)userspace_reap
Normalerweise verwendet fio bei Verwendung der libaio-Engine den Systemaufruf io_getevents
um neu zurückgegebene Ereignisse zu ernten. Wenn dieses Flag aktiviert ist, wird der AIO-Ring gelesen
direkt aus dem Benutzerbereich, um Ereignisse zu ernten. Der Erntemodus ist nur aktiviert, wenn
Abfrage für mindestens 0 Ereignisse (z. B. wenn io Depth_batch_complete = 0).

(net,netsplice)Hostname=str
Der Hostname oder die IP-Adresse, die für TCP- oder UDP-basierte E/A verwendet werden soll. Wenn der Job ein TCP ist
Listener oder UDP-Reader, der Hostname wird nicht verwendet und muss weggelassen werden, es sei denn, es handelt sich um einen
gültige UDP-Multicast-Adresse.

(net,netsplice)Port=int
Der TCP- oder UDP-Port, an den gebunden oder eine Verbindung hergestellt werden soll. Wenn dies mit verwendet wird numjobs erscheinen
Wenn mehrere Instanzen desselben Jobtyps vorhanden sind, ist dies die Startportnummer
da fio eine Reihe von Ports verwenden wird.

(net,netsplice)Schnittstelle=str
Die IP-Adresse der Netzwerkschnittstelle, die zum Senden oder Empfangen von UDP-Multicast verwendet wird
Pakete.

(net,netsplice)ttl=int
Time-to-Live-Wert für ausgehende UDP-Multicast-Pakete. Standard: 1

(net,netsplice)Knotenverzögerung=bool
Legen Sie TCP_NODELAY für TCP-Verbindungen fest.

(net,netsplice)Protokoll=str, deshalb=str
Das zu verwendende Netzwerkprotokoll. Akzeptierte Werte sind:

TCP Übertragungskontrollprotokoll

tcpv6 Übertragungskontrollprotokoll V6

UDP Benutzer-Datagramm-Protokoll

udpv6 Benutzerdatagrammprotokoll V6

Unix UNIX-Domänen-Socket

Wenn das Protokoll TCP oder UDP ist, muss zusätzlich der Port angegeben werden
Hostname, wenn der Job ein TCP-Listener oder UDP-Leser ist. Für Unix-Sockets das Normale
Die Option „Dateiname“ sollte verwendet werden und der Port ist ungültig.

(net,netsplice)hören
Bei TCP-Netzwerkverbindungen weisen Sie fio stattdessen an, auf eingehende Verbindungen zu warten
als eine ausgehende Verbindung zu initiieren. Bei dieser Option muss der Hostname weggelassen werden
wird eingesetzt.

(Netz,Tischtennis)=bool
Normalerweise schreibt ein Netzwerkschreiber einfach weiter Daten und ein Netzwerkleser
wird nur Pakete verbrauchen. Wenn pingpong=1 gesetzt ist, sendet ein Autor sein Normal
Senden Sie die Nutzlast an das Lesegerät und warten Sie dann, bis das Lesegerät dieselbe Nutzlast zurücksendet.
Dies ermöglicht es fio, Netzwerklatenzen zu messen. Die Einreichung und Fertigstellung
Latenzen messen dann die lokale Zeit, die für das Senden oder Empfangen aufgewendet wird, sowie den Abschluss
Die Latenz misst, wie lange es gedauert hat, bis das andere Ende empfangen und zurückgesendet hat. Für
UDP-Multicast-Verkehr pingpong=1 sollte nur für einen einzelnen Leser festgelegt werden, wenn
Mehrere Leser hören auf dieselbe Adresse.

(Netz,Fenstergröße)=int
Legen Sie die gewünschte Socket-Puffergröße für die Verbindung fest.

(Netz,mss)=int
Legen Sie die maximale TCP-Segmentgröße fest (TCP_MAXSEG).

(e4defrag,donorname)=str
Datei wird als Blockspender verwendet (Extents zwischen Dateien austauschen)

(e4defrag,inplace)=int
Konfigurieren Sie die Zuweisungsstrategie für Spenderdateiblöcke
0 (Standard): Spenderdatei auf Init vorbelegen

1: Weisen Sie den Speicherplatz sofort innerhalb des Defragmentierungsereignisses zu und geben Sie ihn direkt danach frei
Event

(rbd)rbdname=str
Gibt den Namen des RBD an.

(rbd)pool=str
Gibt den Namen des Ceph-Pools an, der die RBD enthält.

(rbd)Kundenname=str
Gibt den Benutzernamen (ohne das Präfix „client“) an, der für den Zugriff auf Ceph verwendet wird
Cluster.

(mtd)skipbad=bool
Überspringen Sie Vorgänge gegen bekanntermaßen fehlerhafte Blöcke.

AUSGABE


Während dem Rennen, Gewinde zeigt den Status der erstellten Jobs an. Zum Beispiel:

Threads: 1: [_r] [24.8 % erledigt] [ 13509/ 8334 kb/s] [eta 00h:01m:31s]

Die Zeichen in der ersten Klammer geben den aktuellen Status jedes Threads an.
Die möglichen Werte sind:

P Setup, aber nicht gestartet.
C Thread erstellt.
I Initialisiert, warten.
R Laufen, sequentielle Lesevorgänge durchführen.
r Laufen, zufällige Lesevorgänge durchführen.
W Laufen, sequentielle Schreibvorgänge durchführen.
w Laufen, zufällige Schreibvorgänge ausführen.
M Laufen, gemischte sequentielle Lese-/Schreibvorgänge.
m Laufen, gemischte zufällige Lese-/Schreibvorgänge.
F Läuft, wartet derzeit auf fsync(2).
V Ausführen, Überprüfen der geschriebenen Daten.
E Beendet, nicht vom Hauptthread geerntet.
- Beendet, Thread geerntet.

Die zweite Klammer zeigt den geschätzten Abschlussprozentsatz der aktuellen Gruppe.
Der dritte Satz zeigt die Lese- bzw. Schreib-E/A-Rate. Zum Schluss noch die geschätzte Laufleistung
Die Uhrzeit des Auftrags wird angezeigt.

Wann Gewinde abgeschlossen ist (oder durch Strg-C unterbrochen wird), werden Daten für jeden Thread angezeigt
Gruppe von Threads und jede Festplatte in dieser Reihenfolge.

In der Statistik pro Thread werden zunächst die Thread-Clientnummer, die Gruppen-ID und der Fehlercode angezeigt. Der
Die restlichen Zahlen lauten wie folgt:

io Anzahl der durchgeführten E/A-Vorgänge in Megabyte.

bw Durchschnittliche Datenrate (Bandbreite).

Rassel Thread-Laufzeit.

Lamelle Minimale, maximale, durchschnittliche und Standardabweichung der Übermittlungslatenz. Das ist
die Zeit, die zum Senden der E/A benötigt wurde.

klatsch Minimale, maximale, durchschnittliche und Standardabweichung der Abschlusslatenz. Das
ist die Zeit zwischen Einreichung und Fertigstellung.

bw Minimale, maximale Bandbreite, Prozentsatz der empfangenen Gesamtbandbreite,
Durchschnitt und Standardabweichung.

CPU Statistiken zur CPU-Nutzung. Beinhaltet Benutzer- und Systemzeit sowie die Anzahl der Kontexte
Schalter, die dieser Thread durchlaufen hat, und Anzahl der größeren und kleineren Seitenfehler.

IO Tiefe
Verteilung der I/O-Tiefen. Jede Tiefe umfasst alles, was kleiner ist als (oder
gleich), aber größer als die vorherige Tiefe.

IO ausgegeben
Anzahl der ausgegebenen Lese-/Schreibanforderungen und Anzahl kurzer Lese-/Schreibanfragen
Anfragen.

IO Latenzen
Verteilung der I/O-Abschlusslatenzzeiten. Die Zahlen folgen dem gleichen
Muster als IO Tiefe.

Die Gruppenstatistik zeigt:
io Anzahl der durchgeführten Megabyte-E/A.
aggrb Gesamtbandbreite der Threads in der Gruppe.
Min. b Minimale durchschnittliche Bandbreite, die ein Thread sah.
maxb Maximale durchschnittliche Bandbreite, die ein Thread sah.
Minze Kürzeste Laufzeit der Threads in der Gruppe.
max Längste Laufzeit der Threads in der Gruppe.

Abschließend werden zuerst die Festplattenstatistiken mit den Lesevorgängen gedruckt:
IOS Anzahl der von allen Gruppen durchgeführten I/Os.
fusionieren Anzahl der Zusammenführungen im I/O-Scheduler.
Zecken Anzahl der Ticks, mit denen wir die Festplatte beschäftigt gehalten haben.
io_queue
Gesamtzeit, die in der Festplattenwarteschlange verbracht wurde.
nützlich Festplattenauslastung.

Es ist auch möglich, fio dazu zu bringen, die aktuelle Ausgabe während der Ausführung auszugeben, ohne dies zu tun
Beendigung des Arbeitsverhältnisses. Senden Sie dazu fio die USR1 Signal.

KNAPP AUSGABE


Besitzt das --minimal / --append-terse Werden Optionen angegeben, werden die Ergebnisse ausgedruckt/angehängt
in einem durch Semikolons getrennten Format, das für die Skriptverwendung geeignet ist. Eine Stellenbeschreibung (ggf
bereitgestellt) folgt in einer neuen Zeile. Beachten Sie, dass die erste Zahl in der Zeile die Version ist
Nummer. Wenn die Ausgabe aus irgendeinem Grund geändert werden muss, wird diese Zahl erhöht
durch 1, um diese Änderung anzuzeigen. Die Felder sind:

knapp Ausführung, Gewinde Ausführung, Berufsbezeichnung, Gruppen-ID, Fehler

Lesestatus:
Gesamt I / O (KB), Bandbreite (KB/s), IOPS, Laufzeit (Frau)

Übermittlungslatenz:
min max bedeuten, Standard Abweichung
Abschlusslatenz:
min max bedeuten, Standard Abweichung
Perzentile der Abschlusslatenz (20 Felder):
X Perzentil=usec
Gesamtlatenz:
min max bedeuten, Standard Abweichung
Bandbreite:
min max Aggregat Prozentsatz of gesamt bedeuten, Standard Abweichung

Schreibstatus:
Gesamt I / O (KB), Bandbreite (KB/s), IOPS, Laufzeit (Frau)

Übermittlungslatenz:
min max bedeuten, Standard Abweichung
Abschlusslatenz:
min max bedeuten, Standard Abweichung
Perzentile der Abschlusslatenz (20 Felder):
X Perzentil=usec
Gesamtlatenz:
min max bedeuten, Standard Abweichung
Bandbreite:
min max Aggregat Prozentsatz of gesamt bedeuten, Standard Abweichung

CPU auslastung:
Benutzer, System, Kontext Schalter, Dur Seite Fehler, Moll Seite Fehler

IO-Tiefenverteilung:
<=1, 2, 4, 8, 16, 32, > = 64

Verteilung der E/A-Latenz:
Mikrosekunden:
<=2, 4, 10, 20, 50, 100, 250, 500, 750, 1000
Millisekunden:
<=2, 4, 10, 20, 50, 100, 250, 500, 750, 1000, 2000, > = 2000

Festplattenauslastung (1 für jede verwendete Festplatte):
Name, lesen ios, schreiben ios, lesen verschmilzt, schreiben verschmilzt, lesen Zecken, schreiben
Zecken, lesen in der Warteschlange Zeit schreiben in der Warteschlange Zeit Scheibe Nutzung Prozentsatz

Fehlerinfo (abhängig von continue_on_error, Standardeinstellung aus):
gesamt # Fehler, zuerst Fehler Code

Text Beschreibung (ob vorausgesetzt in Config - erscheint on Neue Zeile)

KLIENT / SERVER


Normalerweise würden Sie fio als eigenständige Anwendung auf dem Computer ausführen, auf dem die E/A erfolgt
Arbeitsbelastung erzeugt werden soll. Es ist jedoch auch möglich, das Frontend und Backend auszuführen
von fio separat. Dies ermöglicht es, einen FIO-Server auf der/den Maschine(n) laufen zu lassen.
wo die E/A-Arbeitslast ausgeführt werden soll, während sie von einem anderen Computer aus gesteuert wird.

Um den Server zu starten, würden Sie Folgendes tun:

Gewinde --server=Argumente

auf dieser Maschine, wobei args definiert, was Fio hört. Die Argumente haben die Form
'Typ:Hostname oder IP:Port'. „Typ“ ist entweder „ip“ (oder ip4) für TCP/IP v4, „ip6“ für TCP/IP
v6 oder „sock“ für einen lokalen Unix-Domänen-Socket. „Hostname“ ist entweder ein Hostname oder eine IP
Adresse und „Port“ ist der Port, der überwacht werden soll (nur gültig für TCP/IP, kein lokaler Socket).
Einige Beispiele:

1) fio --server

Starten Sie einen FIO-Server und überwachen Sie alle Schnittstellen am Standardport (8765).

2) fio --server=ip:hostname,4444

Starten Sie einen FIO-Server und überwachen Sie die zum Hostnamen gehörende IP und den Port 4444.

3) fio --server=ip6:::1,4444

Starten Sie einen FIO-Server und überwachen Sie IPv6 localhost ::1 und Port 4444.

4) fio --server=,4444

Starten Sie einen FIO-Server und überwachen Sie alle Schnittstellen an Port 4444.

5) fio --server=1.2.3.4

Starten Sie einen FIO-Server und überwachen Sie IP 1.2.3.4 am Standardport.

6) fio --server=sock:/tmp/fio.sock

Starten Sie einen FIO-Server und überwachen Sie den lokalen Socket /tmp/fio.sock.

Wenn ein Server ausgeführt wird, können Sie von einem Client aus eine Verbindung zu ihm herstellen. Der Client wird ausgeführt mit:

fio --local-args --client=server --remote-args

wobei --local-args Argumente sind, die lokal für den Client gelten, auf dem er ausgeführt wird,
„server“ ist die Verbindungszeichenfolge und --remote-args und werden an die gesendet
Server. Die Zeichenfolge „server“ folgt dem gleichen Format wie auf der Serverseite, to
IP/Hostname/Socket- und Port-Strings zulassen. Sie können sich auch mit mehreren Clients verbinden,
Um das zu tun, könnten Sie Folgendes ausführen:

fio --client=server2 --client=server2

Wenn sich die Jobdatei auf dem FIO-Server befindet, können Sie den Server anweisen, eine lokale Datei zu laden
Datei ebenfalls. Dies geschieht mit --remote-config:

fio --client=server --remote-config /path/to/file.fio

Dann öffnet fio diese lokale Jobdatei (auf dem Server), anstatt eine von ihr zu übergeben
der Kunde.

Wenn Sie viele Server haben (Beispiel: 100 VMs/Container), können Sie einen Pfadnamen einer Datei eingeben
Enthält Host-IPs/Namen als Parameterwert für die Option --client. Zum Beispiel,
Hier ist eine Beispieldatei „host.list“, die zwei Hostnamen enthält:

host1.your.dns.domain
host2.your.dns.domain

Der fio-Befehl wäre dann:

fio --client=host.list

In diesem Modus können Sie keine serverspezifischen Parameter oder Jobdateien und nicht alle Server eingeben
die gleiche Jobdatei erhalten.

Um die Ausführung von fio --client unter Verwendung eines gemeinsam genutzten Dateisystems von mehreren Hosts aus zu ermöglichen,
fio --client stellt dem Dateinamen nun die IP-Adresse des Servers voran. Zum Beispiel, wenn
fio verwendet das Verzeichnis /mnt/nfs/fio und schreibt den Dateinamen fileio.tmp mit einem --client
Hostdatei mit zwei Hostnamen h1 und h2 mit den IP-Adressen 192.168.10.120 und
192.168.10.121, dann erstellt fio zwei Dateien:

/mnt/nfs/fio/192.168.10.120.fileio.tmp
/mnt/nfs/fio/192.168.10.121.fileio.tmp

AUTOREN


Gewinde wurde von Jens Axboe geschrieben[E-Mail geschützt] >, jetzt Jens Axboe[E-Mail geschützt] >.
Diese Manpage wurde von Aaron Carroll geschrieben[E-Mail geschützt] > basierend auf Dokumentation
von Jens Axboe.

REPORTING Fehler


Melden Sie Fehler an die Gewinde Mailingliste[E-Mail geschützt] >. Sehen README.

Nutzen Sie FIO online über die Dienste von onworks.net


Kostenlose Server & Workstations

Laden Sie Windows- und Linux-Apps herunter

  • 1
    Büroetage
    Büroetage
    OfficeFloor bietet eine Umkehrung von
    Kopplungssteuerung mit ihren: - Abhängigkeiten
    Einspritzung - Fortsetzungseinspritzung -
    Fadeninjektion Weitere Informationen
    Besuche den...
    Laden Sie OfficeFloor herunter
  • 2
    DivKit
    DivKit
    DivKit ist ein servergesteuertes Open-Source-Programm
    UI (SDUI)-Framework. Es ermöglicht Ihnen
    Bereitstellung serverbasierter Updates für
    verschiedene App-Versionen. Es kann auch sein
    verwendet für...
    Laden Sie DivKit herunter
  • 3
    Unterkonverter
    Unterkonverter
    Dienstprogramm zum Konvertieren zwischen verschiedenen
    Abonnementformat. Shadowrocket-Benutzer
    sollte ss, ssr oder v2ray als Ziel verwenden.
    Sie können &remark= hinzufügen
    Telegram-like HT...
    Unterkonverter herunterladen
  • 4
    SWASH
    SWASH
    SWASH ist eine Allzweck-Zahl
    Werkzeug zur Simulation instationärer,
    nicht hydrostatisch, freiflächig,
    Rotationsströmungs- und Transportphänomene
    in Küstengewässern als ...
    Laden Sie SWASH herunter
  • 5
    VBA-M (Archiviert – Jetzt auf Github)
    VBA-M (Archiviert – Jetzt auf Github)
    Projekt ist umgezogen
    https://github.com/visualboyadvance-m/visualboyadvance-m
    Features: Cheat-Erstellung, Staaten speichern, Multi
    system, unterstützt gba, gbc, gb, sgb,
    sgb2Tu...
    VBA-M herunterladen (archiviert – jetzt auf Github)
  • 6
    Stacer
    Stacer
    Linux-Systemoptimierung und -überwachung
    Github-Repository:
    https://github.com/oguzhaninan/Stacer.
    Zielgruppe: Endbenutzer/Desktop. Benutzer
    Schnittstelle: Qt. Programmierung La ...
    Staker herunterladen
  • Mehr »

Linux-Befehle

Ad