EnglezăFrancezăSpaniolă

Ad


Favicon OnWorks

fio - Online în cloud

Rulați fio în furnizorul de găzduire gratuit OnWorks prin Ubuntu Online, Fedora Online, emulator online Windows sau emulator online MAC OS

Aceasta este comanda fio care poate fi rulată în furnizorul de găzduire gratuit OnWorks folosind una dintre multiplele noastre stații de lucru online gratuite, cum ar fi Ubuntu Online, Fedora Online, emulator online Windows sau emulator online MAC OS

PROGRAM:

NUME


fio - tester I/O flexibil

REZUMAT


fir [Opțiuni] [fișă de muncă] ...

DESCRIERE


fir este un instrument care va genera o serie de fire sau procese care fac un anumit tip de
Acțiune I/O așa cum este specificat de utilizator. Utilizarea tipică a fio este de a scrie un fișier de lucru
potrivirea sarcinii I/O pe care doriți să o simuleze.

OPŢIUNI


--depanare=tip
Activați urmărirea detaliate a diferitelor acțiuni fio. Poate fi „toate” pentru toate tipurile sau
tipuri individuale separate prin virgulă (de exemplu --debug=io,fișier). `help' va lista toate
opțiunile de urmărire disponibile.

--ieșire=nume de fișier
Scrie ieșire în nume de fișier.

--format de iesire=format
Setați formatul de raportare la normală., concis, Sau JSON.

--timpul de rulare=Runtime
Limitați timpul de rulare la Runtime secunde.

--bandwidth-log
Generați jurnalele de lățime de bandă per job.

--minim
Imprimați statistici într-un format concis, delimitat prin punct și virgulă.

--adăugare-concis
Tipăriți statistici în modul selectat ȘI în format concis, delimitat prin punct și virgulă.

--versiune
Afișați informații despre versiune și ieșiți.

--versiune concisă=versiune
Setați formatul de ieșire al versiunii concise (versiunea actuală 3 sau versiunea mai veche 2).

--Ajutor Afișează informațiile de utilizare și ieși.

--cpuclock-test
Efectuați testarea și validarea ceasului intern al procesorului

--crctest[=Test]
Testați viteza funcțiilor de sumă de control încorporate. Dacă nu se oferă niciun argument, toate
dintre ele sunt testate. Sau poate fi transmisă o listă separată prin virgulă, caz în care
cele date sunt testate.

--cmdhelp=comandă
Tipăriți informații de ajutor pentru comandă. Poate fi „toate” pentru toate comenzile.

--enghelp=iomotor[,comandă]
Listați toate comenzile definite de iomotor, sau printare ajutor pentru comandă definit de
iomotor.

--showcmd=fișă de muncă
Converti fișă de muncă la un set de opțiuni de linie de comandă.

--eta=cand
Specifică când trebuie tipărită estimarea ETA în timp real. cand poate fi unul dintre
„Întotdeauna”, „Niciodată” sau „Automat”.

--eta-newline=timp
Forțați o nouă linie ETA pentru fiecare perioadă de „timp” trecută.

--starea-interval=timp
Raportați starea completă a ieșirii la fiecare perioadă de timp trecută.

--numai citire
Activați verificările de siguranță numai pentru citire, prevenind orice încercare de scriere.

--secțiune=sec
Doar secțiunea de rulare sec din dosarul jobului. Această opțiune poate fi folosită de mai multe ori pentru a adăuga
mai multe secțiuni de rulat.

--alloc-size=kb
Setați dimensiunea piscinei mici interne la kb kiloocteți.

--avertismente-fatale
Toate avertismentele analizatorului fio sunt fatale, determinând ieșirea fio cu o eroare.

--max-locuri de muncă=nr
Setați numărul maxim permis de joburi (threads/procese) pe care să le suportați.

--Server=args
Porniți un server backend, cu args specificând ce să asculte. Vezi client/server
secţiune.

--daemonize=pidfile
Fundal pe un server fio, scriind pid-ul în fișierul pid dat.

--client=gazdă
În loc să rulați joburile la nivel local, trimiteți și rulați-le pe gazda sau setul de date
gazde. Vezi secțiunea client/server.

--lente-prof=opțiune
Raportați inactivitatea CPU pe bază de sistem sau percpu (opțiune=system,percpu) sau unitate de rulare
numai calibrare de lucru (opțiune=calibrare).

JOB FILE FORMAT


Fișierele jobului sunt în format „ini”. Acestea constau dintr-una sau mai multe definiții de post, care încep
cu un nume de job între paranteze drepte și extindeți la următorul nume de job. Numele postului poate fi
orice șir ASCII, cu excepția „global”, care are o semnificație specială. Urmează numele postului
o secvență de zero sau mai mulți parametri, unul pe linie, care definesc comportamentul jobului.
Orice linie care începe cu `;' sau caracterul „#” este considerat un comentariu și ignorat.

If fișă de muncă este specificat ca `-', fișierul job va fi citit din intrarea standard.

Caritate Secțiune
Secțiunea globală conține parametrii impliciti pentru joburile specificate în fișierul job. Un serviciu
este afectat numai de secțiunile globale care se află deasupra acestuia și poate exista orice număr de
secțiuni globale. Definițiile specifice de job pot suprascrie orice set de parametri în global
secțiuni.

JOB PARAMETRI


Tipuri de
Unii parametri pot lua argumente de un anumit tip. Oriunde este o valoare numerică
necesar, poate fi folosită o expresie aritmetică, cu condiția să fie înconjurată de paranteze.
Operatorii acceptați sunt:

plus (+)

scădere (-)

multiplicare (*)

divizare (/)

modulul (%)

exponentiare (^)

Pentru valorile de timp în expresii, unitățile sunt microsecunde în mod implicit. Acest lucru este diferit de
pentru valorile de timp care nu sunt în expresii (nu sunt incluse în paranteze). Tipurile folosite sunt:

str Șir: o secvență de caractere alfanumerice.

int SI întreg: un număr întreg, care poate conține un sufix care indică unitatea de bază a
valoarea. Sufixele acceptate sunt „k”, „M”, „G”, „T” și „P”, care denotă kilogram
(1024), mega (1024^2), giga (1024^3), tera (1024^4) și peta (1024^5)
respectiv. Dacă este prefixat cu „0x”, valoarea se presupune a fi baza 16
(hexazecimal). Un sufix poate include un „b” final, de exemplu „kb” este identic
la „k”. Puteți specifica o valoare de bază 10 utilizând „KiB”, „MiB”, „GiB”, etc. Acesta este
util pentru unitățile de disc unde valorile sunt adesea date în valori de bază 10. Precizând
„30GiB” vă va oferi 30*1000^3 octeți. La specificarea orelor sufixul implicit
semnificația se schimbă, denotă în continuare unitatea de bază a valorii, dar sufixe acceptate
sunt „D” (zile), „H” (ore), „M” (minute), „S” Secunde, „ms” (sau msec) mili
secunde, „noi” (sau „usec”) microsecunde. Valorile de timp fără o unitate specificată
secunde. Sufixele nu sunt sensibile la majuscule.

bool Boolean: o valoare adevărată sau falsă. „0” înseamnă fals, „1” înseamnă adevărat.

irange Interval întreg: un interval de numere întregi specificate în format LOWER:UPPER or
LOWER-UPPER. LOWER și UPPER poate conține un sufix așa cum este descris mai sus. Dacă o opțiune
permite două seturi de intervale, acestea sunt separate cu un caracter `,' sau `/'. Pentru
exemplu: `8-8k/8M-4G'.

float_list
Listă de numere flotante: o listă de numere flotante, separate prin caracterul „:”.

Parametru Listă
nume=str
Poate fi folosit pentru a înlocui numele jobului. Pe linia de comandă, acest parametru are
scop special de a semnala începutul unui nou loc de muncă.

descriere=str
Descrierea postului care poate fi citită de om. Este imprimat atunci când lucrarea este executată, dar
altfel nu are un scop special.

director=str
Prefixați numele fișierelor cu acest director. Folosit pentru a plasa fișiere într-o altă locație decât
`./'. Puteți specifica un număr de directoare separând numele cu un „:”
caracter. Aceste directoare vor fi repartizate în mod egal clonelor de locuri de muncă
creează cu numjobs atâta timp cât folosesc nume de fișiere generate. Dacă este specific
nume de fișier(e) sunt setate fio vor folosi primul director listat și, prin urmare, potrivirea
il nume de fișier semantică care generează câte un fișier pentru fiecare clonă dacă nu este specificat, dar let
toate clonele folosesc același lucru dacă se setează. Vedea nume de fișier pentru considerente referitoare la evadare
anumite personaje pe unele platforme.

nume de fișier=str
fir în mod normal, formează un nume de fișier bazat pe numele jobului, numărul firului de execuție și fișierul
număr. Dacă doriți să partajați fișiere între firele dintr-o lucrare sau mai multe lucrări,
specifică un nume de fișier pentru ca fiecare dintre ele să înlocuiască valoarea implicită. Dacă motorul I/O este
bazat pe fișiere, puteți specifica un număr de fișiere, separând numele cu un `:'
caracter. `-' este un nume rezervat, care înseamnă stdin sau stdout, în funcție de
direcția de citire/scriere setată. Pe Windows, dispozitivele de disc sunt accesate ca \.PhysicalDrive0
pentru primul dispozitiv, \.PhysicalDrive1 pentru al doilea etc. Notă: Windows și
FreeBSD împiedică accesul la scriere în zonele discului care conțin date în uz (de ex
sisteme de fișiere). Dacă numele fișierului dorit trebuie să includă două puncte, atunci evadați-l
cu caracterul „\”. De exemplu, dacă numele fișierului este „/dev/dsk/foo@3,0:c”, atunci
ați folosi filename="/dev/dsk/foo@3,0\:c".

format_nume_fișier=str
Dacă partajați mai multe fișiere între lucrări, de obicei este necesar să aveți fio
generați exact numele pe care le doriți. În mod implicit, fio va denumi un fișier pe baza
specificația implicită a formatului de fișier a jobname.jobnumber.filenumber. Cu asta
opțiune, care poate fi personalizată. Fio va recunoaște și va înlocui următoarele
cuvinte cheie din acest șir:

$nume job
Numele firului sau procesului de lucru.

$jobnum
Numărul incremental al firului de lucru sau al procesului.

$filenum
Numărul incremental al fișierului pentru acel fir de lucru sau proces.

Pentru ca joburile dependente să partajeze un set de fișiere, această opțiune poate fi setată să aibă fio
generați nume de fișiere care sunt partajate între cei doi. De exemplu, dacă
testfiles.$filenum este specificat, se va numi fișierul numărul 4 pentru orice job
dosare de testare.4. Valoarea implicită a $jobname.$jobnum.$filenum va fi folosit dacă nu altul
este dat specificatorul de format.

lockfile=str
Fio este implicit să nu blocheze niciun fișier înainte de a le face IO. Dacă un fișier sau un fișier
descriptorul este partajat, fio poate serializa IO în acel fișier pentru a obține rezultatul final
consistent. Acest lucru este obișnuit pentru emularea sarcinilor de lucru reale care partajează fișiere. Încuietoarea
modurile sunt:

nici unul Fără blocare. Aceasta este valoarea implicită.

exclusiv
Doar un fir sau proces poate face IO la un moment dat, excluzând toate celelalte.

Citeste, scrie
Blocare citire-scriere pe fișier. Mulți cititori pot accesa fișierul la
în același timp, dar scrierile primesc acces exclusiv.

opendir=str Deschide recursiv orice fișiere de sub director str.

Citeste, scrie=str, rw=str
Tipul modelului I/O. Valorile acceptate sunt:

citit Citiri secvențiale.

scrie Scrieri secvențiale.

tunde Trim secvențial (numai dispozitivele cu bloc Linux).

randread
Citiri aleatorii.

randwrite
Scrie aleatorii.

randtrim
Trim aleatoriu (numai dispozitivele cu bloc Linux).

rw, Citeste, scrie
Citiri și scrieri secvențiale mixte.

randrw Citiri și scrieri aleatorii mixte.

trimwrite
Tăiați și scrieți volumul de lucru mixt. Blocurile vor fi tăiate mai întâi, apoi
aceleași blocuri vor fi scrise.

Pentru I/O mixte, împărțirea implicită este 50/50. Pentru anumite tipuri de io rezultatul poate
fi totuși înclinată puțin, deoarece viteza poate fi diferită. Se poate specifica
un număr de I/-uri de făcut înainte de a obține un nou offset, acest lucru se face prin adăugarea unui a
`: până la sfârșitul șirului dat. Pentru o citire aleatorie, ar arăta ca
rw=randread:8 pentru trecerea unui modificator de offset cu valoarea 8. Dacă postfixul
este utilizat cu un model IO secvenţial, apoi valoarea specificată va fi adăugată la
offset generat pentru fiecare IO. De exemplu, folosind rw=scriere:4k va sări peste 4k pentru
fiecare scriere. Se transformă IO secvenţial în IO secvenţial cu găuri. Vezi
rw_sequencer opțiune.

rw_sequencer=str
Dacă un modificator de offset este dat prin adăugarea unui număr la rw= linie, atunci
această opțiune controlează modul în care acel număr modifică offset-ul IO generat.
Valorile acceptate sunt:

secventiala
Generați offset secvențial

identic
Generați același offset

secventiala este util doar pentru IO aleatoare, unde fio ar genera în mod normal un nou
offset aleatoriu pentru fiecare IO. Dacă adăugați, de exemplu, 8 la randread, veți obține un nou
offset aleatoriu pentru fiecare 8 IO-uri. Rezultatul ar fi o căutare numai pentru fiecare 8 IO-uri,
în loc de pentru fiecare IO. Utilizare rw=randread:8 pentru a preciza că. După cum este IO secvenţial
deja secvenţial, setare secventiala căci asta nu ar avea ca rezultat niciunul
diferențe. identic se comportă într-un mod similar, cu excepția faptului că trimite la fel
offset de 8 ori înainte de a genera un nou offset.

kb_base=int
Unitatea de bază pentru un kilooctet. Baza de facto este 2^10, 1024. Depozitare
producătorilor le place să folosească 10^3 sau 1000 ca unitate de bază zece, pentru evident
motive. Valorile permise sunt 1024 sau 1000, 1024 fiind implicit.

unified_rw_reporting=bool
Fio raportează în mod normal statistici pe direcția datelor, ceea ce înseamnă că citiți,
scrie și trim sunt contabilizate și raportate separat. Dacă această opțiune este setată fio
însumează rezultatele și le raportează în schimb ca „mixte”.

randrepeat=bool
Introduceți generatorul de numere aleatoare utilizat pentru modelele I/O aleatoare într-un mod previzibil
astfel încât modelul este repetabil pe rânduri. Implicit: adevărat.

allrandrepeat=bool
Însămânțați toți generatorii de numere aleatoare într-un mod previzibil, astfel încât rezultatele să fie repetabile
peste curse. Implicit: false.

randseed=int
Semează generatoarele de numere aleatoare pe baza acestei valori de semințe, pentru a putea controla
ce secvență de ieșire este generată. Dacă nu este setată, secvența aleatorie depinde
pe randrepeat setare.

falloca=str
Dacă se efectuează pre-alocarea la stabilirea fișierelor. Valorile acceptate sunt:

nici unul Nu prealocați spațiu.

POSIX Prealocați prin posix_fallocate(3).

păstra Prealocați prin falloca(2) cu FALLOC_FL_KEEP_SIZE setat.

0 Alias ​​compatibil cu versiunea inversă pentru „niciunul”.

1 Alias ​​compatibil cu versiunea inversă pentru „posix”.

Este posibil să nu fie disponibil pe toate platformele acceptate. „keep” este disponibil numai pe Linux.
Dacă utilizați ZFS pe Solaris, acesta trebuie setat la „niciunul”, deoarece ZFS nu îl acceptă.
Implicit: „posix”.

fadvise_hint=bool
Utilizare posix_fadvise(2) pentru a informa nucleul care sunt modelele I/O probabil
emis. Implicit: adevărat.

fadvise_stream=int
Utilizare posix_fadvise(2) pentru a informa nucleul ce ID de flux aparțin scrierile emise
la. Acceptat numai pe Linux. Rețineți că această opțiune se poate schimba în viitor.

mărimea=int
Dimensiunea totală a I/O pentru această lucrare. fir va rula până când nu au fost mulți octeți
transferate, cu excepția cazului în care sunt limitate de alte opțiuni (Runtime, de exemplu, sau
crescut/scazut cu io_size). Dacă nu nrfiles și mărime fișier sunt date optiuni,
această sumă va fi împărțită între fișierele disponibile pentru job. Dacă nu este setat,
fio va folosi dimensiunea completă a fișierelor sau dispozitivelor date. Dacă fișierele nu
există, dimensiunea trebuie dată. De asemenea, este posibil să dați dimensiunea ca procent între
1 și 100. Dacă dimensiunea = 20% este dată, fio va folosi 20% din dimensiunea completă a datei
fișiere sau dispozitive.

io_size=int, io_limit =int
În mod normal, fio operează în regiunea stabilită de mărimea, ceea ce înseamnă că mărimea
opțiunea setează atât regiunea, cât și dimensiunea IO de efectuat. Uneori nu este
Ce vrei. Cu această opțiune, este posibil să definiți doar cantitatea de IO
că fio ar trebui să facă. De exemplu, dacă mărimea este setat la 20G și io_limit este setat la 5G,
fio va efectua IO în primii 20G, dar va ieși când 5G a fost finalizat. The
este posibil și contrariul – dacă mărimea este setat la 20G și io_size este setat la 40G, atunci
fio va face 40G de IO în regiunea 0..20G.

umple_dispozitiv=bool, umple_fs=bool
Setează dimensiunea la ceva foarte mare și așteaptă ENOSPC (nu rămâne spațiu pe dispozitiv)
ca conditie de terminare. Are sens doar cu scrierea secvențială. Pentru o lectură
sarcina de lucru, punctul de montare va fi mai întâi completat, apoi IO a început pe rezultat. Acest
opțiunea nu are sens dacă funcționează pe un nod de dispozitiv brut, deoarece dimensiunea acestuia
este deja cunoscut de sistemul de fișiere. În plus, scrierea dincolo de sfârșitul dispozitivului
nu va returna ENOSPC acolo.

mărime fișier=irange
Dimensiuni individuale ale fișierelor. Poate fi un interval, caz în care fir va selecta dimensiuni pentru
fișiere la întâmplare în intervalul dat, limitat la mărimea în total (dacă este
dat). Dacă mărime fișier nu este specificat, fiecare fișier creat are aceeași dimensiune.

file_append=bool
Efectuați IO după sfârșitul fișierului. În mod normal, fio va funcționa în dimensiunea de
un fișier. Dacă această opțiune este setată, atunci fio va fi adăugat la fișier. Aceasta are
comportament identic cu setarea offset-ului la dimensiunea unui fișier. Această opțiune este ignorată
pe dosare neobișnuite.

bloc=int[,int], bs=int[,int]
Dimensiunea blocului pentru unitățile I/O. Implicit: 4k. Valorile pentru citiri, scrieri și tăieturi pot fi
specificate separat în format citit,scrie,tunde oricare dintre acestea poate fi gol la
lăsați valoarea implicită. Dacă nu este dată virgulă finală, restul
va moșteni ultima valoare setată.

blocksize_range=irange[,arange], bsrange=irange[,arange]
Specificați o gamă de dimensiuni de bloc I/O. Unitatea I/O emisă va fi întotdeauna un multiplu
de dimensiunea minimă, cu excepția cazului în care blocksize_unaligned este setat. Se aplică atât citirilor cât și
scrie dacă este dat un singur interval, dar poate fi specificat separat cu o virgulă
separarea valorilor. Exemplu: bsrange=1k-4k,2k-8k. De asemenea (vezi bloc).

bssplit=str
Această opțiune permite un control și mai fin al dimensiunilor blocurilor emise, nu doar
chiar se împarte între ei. Cu această opțiune, puteți cântări diferite dimensiuni de bloc pentru
controlul exact al IO-ului emis pentru un job care are dimensiuni de bloc mixte. Formatul de
opțiunea este bssplit=blocksize/percentage, adăugând opțional cât mai multe definiții
după cum este necesar, separate prin două puncte. Exemplu: ar emite bssplit=4k/10:64k/50:32k/40
50% blocuri 64k, 10% blocuri 4k și 40% blocuri 32k. bssplit sprijină de asemenea dăruirea
împărțiri separate pentru citiri și scrieri. Formatul este identic cu cel al bs opțiune
acceptă, părțile de citire și scriere sunt separate prin virgulă.

blocksize_unaligned, bs_unaligned
Dacă este setată, orice dimensiune în blocksize_range Poate fi folosit. De obicei, acest lucru nu va funcționa
I/O directă, deoarece aceasta necesită în mod normal alinierea sectorului.

blockalign=int[,int], ba=int[,int]
La ce graniță să se alinieze offset-urile aleatorii IO. Setarea implicită la aceeași cu „blocksize”
dimensiunea minimă a blocurilor dată. Alinierea minimă este de obicei 512b pentru utilizarea directă
IO, deși depinde de obicei de dimensiunea blocului hardware. Această opțiune este reciprocă
exclusiv cu utilizarea unei hărți aleatorii pentru fișiere, așa că va dezactiva această opțiune.

bs_is_seq_rand=bool
Dacă această opțiune este setată, fio va folosi setările normale de citire și scriere pentru dimensiunea blocului ca
secvenţial, în schimb aleatoriu. Orice citire sau scriere aleatorie va folosi dimensiunea blocului WRITE
setările și orice citire sau scriere secvențială va folosi setarea READ blocksize.

zero_tampoane
Inițializați bufferele cu toate zerourile. Implicit: umpleți memoria tampon cu date aleatorii.

refill_buffers
Dacă această opțiune este oferită, fio va reumple bufferele IO la fiecare trimitere. The
implicit este să îl completați numai la momentul inițial și să reutilizați acele date. Are sens doar dacă
zero_buffers nu este specificat, desigur. Dacă verificarea datelor este activată,
refill_buffers este, de asemenea, activat automat.

scramble_buffers=bool
If refill_buffers atunci este prea costisitor și ținta folosește deduplicarea datelor
setarea acestei opțiuni va modifica ușor conținutul tamponului IO pentru a învinge normalul
încercări de dedupe. Acest lucru nu este suficient pentru a învinge o comprimare a blocurilor mai inteligentă
încercări, dar va opri deducția naivă a blocurilor. Implicit: adevărat.

buffer_compress_percentage=int
Dacă acest lucru este setat, atunci fio va încerca să ofere conținut tampon IO (pe WRITE-uri).
comprimați la nivelul specificat. Fio face acest lucru furnizând un amestec de date aleatorii
și un model fix. Modelul fix este fie zerouri, fie modelul specificat
by buffer_pattern. Dacă se folosește opțiunea de model, compresia s-ar putea denatura
raportul ușor. Rețineți că aceasta este pe unitatea de dimensiune a blocului, pentru lățime fișier/disc
nivelul de compresie care se potrivește cu această setare. Rețineți că aceasta este pe unitatea de dimensiune a blocului,
pentru nivelul de compresie la nivel de fișier/disc care se potrivește cu această setare, veți dori, de asemenea
setați refill_buffers.

buffer_compress_chunk=int
Vedea buffer_compress_percentage. Această setare permite fio să gestioneze cât de mare este
intervale de date aleatorii și date zero este. Fără acest set, fio va oferi
buffer_compress_percentage de date aleatoare de dimensiune bloc, urmate de restul
pus la zero. Cu această dimensiune a unei bucăți mai mică decât dimensiunea blocului, fio poate
date alternative aleatorii și zero în întregul buffer IO.

buffer_pattern=str
Dacă este setat, fio va umple tampoanele IO cu acest model. Dacă nu este setat, conținutul
Bufferele IO sunt definite de celelalte opțiuni legate de conținutul bufferului. Setarea
poate fi orice model de octeți și poate fi prefixat cu 0x pentru valorile hexadecimale. Aceasta poate
fi, de asemenea, un șir, unde șirul trebuie apoi înfășurat cu „”, de exemplu:
buffer_pattern="abcd"
or
buffer_pattern= -12
or
buffer_pattern=0xfață moartă

De asemenea, puteți combina totul împreună în orice ordine:

buffer_pattern=0xdeadface"abcd"-12

dedupe_percentage=int
Dacă este setat, fio va genera acest procent de buffer-uri identice la scriere. Aceste
tampoanele vor fi dedublabile în mod natural. Conținutul tampoanelor depinde de ce
au fost setate alte setări de compresie a tamponului. Este posibil să aveți
tampoane individuale fie complet comprimabile, fie deloc. Doar această opțiune
controlează distribuția bufferelor unice.

nrfiles=int
Numărul de fișiere de utilizat pentru această lucrare. Implicit: 1.

openfiles=int
Numărul de fișiere de păstrat deschise în același timp. Mod implicit: nrfiles.

tip_serviciu_fișier=str
Definește modul în care sunt selectate fișierele de service. Sunt definite următoarele tipuri:

aleator Alegeți un fișier la întâmplare.

round-robin
Round robin peste fișierele deschise (implicit).

secventiala
Efectuați succesiv fiecare fișier din set.

Numărul de I/O-uri de emis înainte de a trece la un fișier nou poate fi specificat de
anexând `:int' la tipul de serviciu.

iomotor=str
Definește modul în care jobul emite I/O. Sunt definite următoarele tipuri:

sincronizaţi pachet de bază citit(2) sau scrie(2) I/O. fseek(2) este folosit pentru a poziționa I/O
locație.

sincronizare pachet de bază pread(2) sau pscrie(2) I/O.

vsync pachet de bază readv(2) sau scriev(2) I/O. Va emula coada prin coalescere
OI adiacente într-o singură transmitere.

pvsync pachet de bază preadv(2) sau pwritev(2) I/O.

libaio I/O asincron nativ Linux. Acest iomotor definește specificul motorului
opțiuni.

posixaio
Utilizarea I/O asincronă POSIX aio_read(3) și aio_scrie(3).

solarisaio
I/O asincron nativ Solaris.

windowsaio
I/O asincron nativ Windows.

mmap Fișierul este mapat cu memorie mmap(2) și datele copiate folosind memcpy(3).

lipitură lipitură(2) este utilizat pentru transferul datelor și vmsplice(2) a transfera
date din spațiul utilizatorului către nucleu.

syslet-rw
Utilizați apelurile de sistem syslet pentru a face citirea/scrierea obișnuită asincronă.

sg SCSI generic sg v3 I/O. Poate fi fie sincron folosind SG_IO
ioctl, sau dacă ținta este un dispozitiv cu caractere sg, folosim citit(2) și
scrie(2) pentru I/O asincron.

zero Nu transferă date, doar pretinde că o face. Folosit în principal pentru exerciții fizice
fir în sine și în scopuri de depanare și testare.

net Transfer prin rețea. Protocolul de utilizat poate fi definit
cu protocol parametru. În funcție de protocol, nume de fișier,
nume de gazdă, port, Sau asculta trebuie specificat. Acest iomotor definește
opțiuni specifice motorului.

netsplice
Aprecieri net, dar folosește lipitură(2) și vmsplice(2) pentru a cartografi date și
Trimite primește. Acest iomotor definește opțiunile specifice ale motorului.

cpuio Nu transferă date, dar arde ciclurile CPU în conformitate cu cpuload
și cpucicluri parametri.

guasi Motorul GUASI I/O este Generic Userspace Asynchronous Syscall
Abordarea interfeței la I/O asincron.
Vedeahttp://www.xmailserver.org/guasi-lib.html>.

rdma Motorul RDMA I/O acceptă atât semantica memoriei RDMA
(RDMA_WRITE/RDMA_READ) și semantica canalului (Send/Recv) pentru
Protocoale InfiniBand, RoCE și iWARP.

extern
Încarcă un fișier obiect motor I/O extern. Adăugați numele fișierului motorului
ca `:calea motorului'.

falloc
Motor IO care face apeluri fallocate native linux obișnuite
simula transferul de date ca motor fio
DDIR_READ face fallocare(,mode = FALLOC_FL_KEEP_SIZE,)
DIR_WRITE face fallocare(,mode = 0)
DDIR_TRIM face fallocare(,mode =
FALLOC_FL_KEEP_SIZE|FALLOC_FL_PUNCH_HOLE)

e4defrag
Motor IO care face EXT4_IOC_MOVE_EXT ioctls obișnuiți pentru a simula
cererea de defragmentare a activității la evenimentul DDIR_WRITE

rbd Motor IO care acceptă acces direct la Ceph Rados Block Devices (RBD)
prin lirbd fără a fi nevoie să utilizați driverul rbd kernel. Acest
ioengine definește opțiunile specifice ale motorului.

gfapi Utilizarea interfeței de sincronizare libgfapi Glusterfs pentru accesul direct la Glusterfs
volume fără a fi nevoie să treci prin FUSE. Acest iomotor definește
opțiuni specifice motorului.

gfapi_async
Folosind interfața asincronă Glusterfs libgfapi pentru acces direct la
Glusterfs volume fără a fi nevoie să treci prin FUSE. Acest iomotor
definește opțiunile specifice ale motorului.

libhdfs
Citiți și scrieți prin Hadoop (HDFS). The nume de fișier opțiunea este obișnuită
specificați gazdă, portul nodului-nume hdfs pentru a vă conecta. Acest motor
interpretează offset-urile puțin diferit. În HDFS, fișierele odată create
nu poate fi modificată. Deci scrierile aleatorii nu sunt posibile. A imita
acesta, motorul libhdfs se așteaptă să creeze o mulțime de fișiere mici
HDFS și motorul vor alege aleatoriu un fișier din acele fișiere pe baza
pe offset-ul generat de backend-ul fio. (vezi exemplul de fișier de job la
creați astfel de fișiere, utilizați opțiunea rw=write). Vă rugăm să rețineți, poate doriți
pentru a seta variabilele de mediu necesare pentru a lucra cu hdfs/libhdfs
în mod corespunzător.

MTD Citiți, scrieți și ștergeți un dispozitiv cu caractere MTD (de exemplu, /dev/mtd0).
Aruncările sunt tratate ca ștergeri. În funcție de dispozitivul de bază
tip, I/O poate trebui să meargă într-un anumit model, de exemplu, pe NAND,
scriind secvenţial pentru a şterge blocurile şi aruncând înainte
suprascrierea. Modul writetrim funcționează bine pentru această constrângere.

adâncimea de iod=int
Numărul de unități I/O de menținut în zbor împotriva fișierului. Rețineți că în creștere
adâncimea de io peste 1 nu va afecta motoarele io sincrone (cu excepția unei mici scăderi
când verify_async este în uz). Chiar și motoarele asincrone pot impune restricții ale sistemului de operare
adâncimea dorită să nu fie atinsă. Acest lucru se poate întâmpla pe Linux când utilizați libaio
și nu setarea direcționa=1, deoarece IO-ul tamponat nu este asincron pe acel sistem de operare. Stai cu ochii pe
distribuția adâncimii IO în ieșirea fio pentru a verifica dacă adâncimea atinsă este ca
așteptat. Implicit: 1.

iodepth_batch=int
Numărul de I/O-uri de trimis simultan. Mod implicit: adâncimea de iod.

iodepth_batch_complete=int
Aceasta definește câte bucăți de IO să fie preluate simultan. Este implicit 1 care
înseamnă că vom cere minim 1 IO în procesul de recuperare de la
nucleu. Recuperarea IO va continua până când atingem limita stabilită de iodepth_low. Dacă
această variabilă este setată la 0, apoi fio va verifica întotdeauna evenimentele finalizate înainte
la coadă mai multe IO. Acest lucru ajută la reducerea latenței IO, cu prețul unui sistem de recuperare mai mare
apeluri.

iodepth_low=int
Filigran scăzut care indică când să începeți din nou să umpleți coada. Mod implicit: adâncimea de iod.

io_submit_mode=str
Această opțiune controlează modul în care fio trimite IO către motorul IO. Valoarea implicită este
inline, ceea ce înseamnă că firele de execuție a jobului fio trimit și culeg direct IO. Dacă este setat
la descărcare, firele de lucru vor descărca trimiterea IO într-un grup dedicat de IO
fire. Acest lucru necesită o anumită coordonare și, prin urmare, are un pic de supraîncărcare suplimentară,
mai ales pentru adâncimea mai mică a cozii IO, unde poate crește latența. Beneficiul este
că fio poate gestiona ratele de trimitere independent de ratele de finalizare a dispozitivului.
Acest lucru evită raportarea distorsionată a latenței dacă IO revine pe partea dispozitivului (
problema omisiunii coordonate).

direcționa=bool
Dacă este adevărat, utilizați I/O fără tampon (de obicei, O_DIRECT). Implicit: false.

atomic=bool
Dacă valoarea este adevărată, încercați să utilizați IO direct atomic. Scrierile atomice sunt garantate
să fie stabil odată ce a fost recunoscut de sistemul de operare. Numai Linux acceptă O_ATOMIC
chiar acum.

tamponat=bool
Dacă este adevărat, utilizați I/O tamponat. Acesta este opusul direcționa parametru. Mod implicit:
Adevărat.

compensa=int
Offset în fișier pentru a porni I/O. Datele înainte de compensare nu vor fi atinse.

offset_increment=int
Dacă acest lucru este furnizat, atunci offset-ul real devine offset + offset_increment *
thread_number, unde numărul firului este un numărător care începe de la 0 și este
incrementat pentru fiecare sub-job (adică când este specificată opțiunea numjobs). Această opțiune
este util dacă există mai multe joburi care sunt destinate să opereze pe un fișier în
segmente paralele disjunse, cu o distanță uniformă între punctele de plecare.

număr_ios=int
Fio va efectua în mod normal IO-uri până când va epuiza dimensiunea regiunii stabilite de
mărimea, sau dacă epuizează timpul alocat (sau atinge o condiție de eroare). Cu asta
setare, intervalul/dimensiunea poate fi setat independent de numărul de IO-uri de efectuat.
Când fio ajunge la acest număr, va ieși în mod normal și va raporta starea. Rețineți că
acest lucru nu extinde cantitatea de IO care va fi făcută, va opri fio doar dacă
această condiție este îndeplinită înaintea altor criterii de încheiere a postului.

fsync=int
Câte I/O trebuie efectuate înainte de a emite un fsync(2) de date murdare. Dacă 0, nu
sincronizare. Implicit: 0.

fdatasync=int
Aprecieri fsync, dar folosește fdatasync(2) în schimb pentru a sincroniza doar părțile de date ale fișierului.
Implicit: 0.

barieră_scrie=int
Faceți fiecare N-a să scrie o barieră să scrie.

interval_fișier_de_sincronizare=str:int
Utilizare interval_fișier_de_sincronizare(2) pentru fiecare număr val de operații de scriere. Fio va urmări
serie de scrieri care au avut loc de la ultima interval_fișier_de_sincronizare(2) apel. str. can
în prezent să fie unul sau mai multe dintre:

așteaptă_înainte
SYNC_FILE_RANGE_WAIT_BEFORE

scrie SYNC_FILE_RANGE_WRITE

asteapta_dupa
SYNC_FILE_RANGE_WRITE

Deci, dacă faceți sync_file_range=wait_before,write:8, fio ar folosi
SYNC_FILE_RANGE_WAIT_BEFORE | SYNC_FILE_RANGE_WRITE pentru fiecare 8 scrieri. Vezi de asemenea
il interval_fișier_de_sincronizare(2) pagina de manual. Această opțiune este specifică Linux.

suprascrie=bool
Dacă scrieți, configurați mai întâi fișierul și suprascrieți. Implicit: false.

end_fsync=bool
Sincronizați conținutul fișierului când s-a încheiat o etapă de scriere. Implicit: false.

fsync_on_close=bool
Dacă este adevărat, sincronizați conținutul fișierului la închidere. Aceasta diferă de end_fsync prin aceea că va
se întâmplă la fiecare închidere, nu doar la sfârșitul lucrării. Implicit: false.

rwmixread=int
Procentul unui volum de lucru mixt care ar trebui citit. Implicit: 50.

rwmixwrite=int
Procentul unei sarcini de lucru mixte care ar trebui să fie scrise. Dacă rwmixread și rwmixwrite
sunt date și nu se însumează la 100%, ultimul dintre cele două îl înlocuiește pe primul. Acest
poate interfera cu o anumită setare a ratei, dacă fio i se cere să limiteze citirile sau scrierile
la o anumită rată. Dacă acesta este cazul, atunci distribuția poate fi denaturată.
Implicit: 50.

distribuție_aleatorie=str:float
În mod implicit, fio va folosi o distribuție aleatorie complet uniformă atunci când i se cere
efectua IO aleatoare. Uneori este util să deviezi distribuția în mod specific
moduri, asigurându-se că unele părți ale datelor sunt mai fierbinți decât altele. Fio include
urmatoarele modele de distributie:

aleator Distribuție aleatorie uniformă

zipf Distribuție Zipf

pareto Distribuția Pareto

Când utilizați o distribuție zipf sau pareto, este necesară și o valoare de intrare
definiți modelul de acces. Pentru zipf, acesta este zipf theta. Pentru Pareto, este
putere pareto. Fio include un program de testare, genzipf, care poate fi folosit vizualizați ce
valorile date de intrare vor rezulta în termeni de rate de hit. Dacă doriți să utilizați zipf
cu o valoare theta de 1.2, ați folosi random_distribution=zipf:1.2 ca opțiune. În cazul în care un
este utilizat un model neuniform, fio va dezactiva utilizarea hărții aleatorii.

procentaj_aleatoriu=int
Pentru o sarcină de lucru aleatorie, setați cât de mare ar trebui să fie aleatoriu un procent. Aceasta este implicită
100%, caz în care volumul de muncă este complet aleatoriu. Poate fi setat de oriunde
0 la 100. Setarea lui la 0 ar face ca volumul de lucru să fie complet secvenţial. Este posibil
pentru a seta valori diferite pentru citiri, scrieri și tăiere. Pentru a face acest lucru, pur și simplu utilizați o virgulă
listă separată. Vedea bloc.

norandommap
În mod normal fir va acoperi fiecare bloc al fișierului atunci când faceți I/O aleatorii. Dacă aceasta
parametrul este dat, se va alege un nou offset fără să se uite la I/O trecut
istorie. Acest parametru se exclude reciproc cu verifica.

softrandommap=bool
Vedea norandommap. Dacă fio rulează cu harta bloc aleatorie activată și nu reușește
alocați harta, dacă această opțiune este setată, va continua fără un bloc aleator
Hartă. Deoarece acoperirea nu va fi la fel de completă ca în cazul hărților aleatorii, această opțiune este
dezactivat implicit.

generator_aleatoriu=str
Fio acceptă următoarele motoare pentru generarea de compensații IO pentru IO aleatoare:

tausworthe
Generator puternic de numere aleatoare cu ciclu 2^88

lfsr Generator de registru de deplasare cu feedback liniar

tausworthe64
Generator puternic de numere aleatoare pe 64 de biți și 2^258 cicluri

Tausworthe este un generator puternic de numere aleatorii, dar necesită urmărire
il
partea dacă vrem să ne asigurăm că blocurile sunt citite sau scrise o singură dată. LFSR
garantează că nu generăm niciodată același offset de două ori și, de asemenea, este mai puțin
costisitoare din punct de vedere computațional. Cu toate acestea, nu este un adevărat generator aleatoriu pentru IO
scopuri, este de obicei suficient de bun. LFSR funcționează numai cu dimensiuni de bloc unice, nu
cu sarcini de lucru care utilizează mai multe dimensiuni de bloc. Dacă este utilizat cu o astfel de sarcină de lucru, fio poate
citește sau scrie unele blocuri de mai multe ori.

frumos=int
Rulați o lucrare cu o valoare bună dată. Vedea frumos(2).

Prio=int
Setați valoarea priorității I/O a acestui job între 0 (cel mai mare) și 7 (cel mai mic). Vedea
ioniza(1).

prioclasă=int
Setați clasa de prioritate I/O. Vedea ioniza(1).

timp de gândire=int
Lucrare blocată pentru un număr dat de microsecunde între emiterea I/O-urilor.

thinktime_spin=int
Pretindeți că petreceți timp CPU pentru un anumit număr de microsecunde, dormind restul
timpul specificat de timp de gândire. Valabil doar dacă timp de gândire este setat.

thinktime_blocks=int
Valabil doar dacă timpul de gândire este setat - controlați câte blocuri să emitați, înainte de a aștepta
timp de gândire microsecunde. Dacă nu este setat, valoarea implicită este 1, ceea ce va face fio să aștepte
timp de gândire microsecunde după fiecare bloc. Acest lucru face efectiv orice adâncime de coadă
setarea redundantă, deoarece nu mai mult de 1 IO va fi pus în coadă înainte de a fi necesar
completați-l și gândiți-vă. Cu alte cuvinte, această setare limitează efectiv
adâncimea cozii dacă aceasta din urmă este mai mare. Implicit: 1.

rată=int
Limitați lățimea de bandă utilizată de această lucrare. Numărul este în octeți/sec, postfixul normal
se aplică regulile. Poți să folosești rată=500k pentru a limita citirile și scrierile la 500k fiecare, sau tu
poate specifica citirea și scrierea separat. Folosind rată=1m,500k ar limita citirile la
1MB/sec și scrie la 500KB/sec. Limitarea numai citirilor sau scrierilor se poate face cu
rată=,500k sau rată=500k,. Primul va limita doar scrierile (la 500KB/sec), cel
acesta din urmă va limita doar citirile.

ratemin=int
Spune fir să facă tot posibilul pentru a menține cel puțin lățimea de bandă dată. Eșuând
pentru a îndeplini această cerință va determina părăsirea locului de muncă. Același format ca rată is
folosit pentru separarea citire vs scriere.

rate_iops=int
Limitați lățimea de bandă la acest număr de IOPS. Practic la fel ca rata, doar
specificat independent de lățimea de bandă. Același format ca rată este folosit pentru citire vs
separarea scrierii. Dacă bloc este un interval, cea mai mică dimensiune a blocului este folosită ca
metric.

rate_iops_min=int
Dacă această rată de I/O nu este îndeplinită, jobul se va ieși. Același format ca rată este utilizat
pentru separarea citire vs scriere.

ciclul ratei=int
Lățimea medie de bandă pentru rată și ratemin peste acest număr de milisecunde. Mod implicit:
1000ms.

latency_target=int
Dacă este setat, fio va încerca să găsească punctul maxim de performanță pentru sarcina de lucru dată
va rula la menținând o latență sub această țintă. Valorile sunt date în
microsecunde. Vedea latency_window și latency_percentile.

latency_window=int
Folosit cu latency_target pentru a specifica fereastra eșantion la care se rulează jobul
diferite adâncimi de coadă pentru a testa performanța. Valoarea este dată în microsecunde.

latency_percentile=pluti
Procentul de OI care trebuie să se încadreze în criteriile specificate de
latency_target și latency_window. Dacă nu este setată, aceasta este implicită la 100.0, adică
toate IO-urile trebuie să fie egale sau mai mici cu valoarea stabilită de latency_target.

max_latency=int
Dacă este setat, fio va părăsi jobul dacă depășește această latență maximă. Va iesi cu
o eroare ETIME.

cpumask=int
Setați afinitatea CPU pentru acest job. int este o mască de biți a procesoarelor permise pe care poate rula jobul.
Vedea sched_setaffinity(2).

cpus_permis=str
La fel ca cpumask, dar permite o listă delimitată prin virgulă de numere CPU.

cpus_allowed_policy=str
Setați politica modului în care fio distribuie procesoarele specificate de cpus_permis or
cpumask. Sunt acceptate două politici:

comun Toate joburile vor partaja setul de procesor specificat.

împărţi Fiecare job va primi un CPU unic din setul CPU.

comun este comportamentul implicit, dacă opțiunea nu este specificată. Dacă împărţi is
specificat, apoi fio va aloca un cpu per job. Dacă nu sunt date suficiente procesoare pt
joburile enumerate, apoi fio va combina procesoarele din set.

numa_cpu_nodes=str
Setați acest job care rulează pe procesoarele nodurilor NUMA specificate. Argumentele permit virgula
listă delimitată de numere CPU, intervale AB sau „toate”.

numa_mem_policy=str
Setați politica de memorie a acestui job și nodurile NUMA corespunzătoare. Formatul argumentelor:

[: ]

mod este una dintre următoarele politici de memorie:

Mod implicit, prefera, lega, intercalare, local

Pentru lipsă și local politica de memorie, nu nodelist is
trebuia precizat. Pentru a prefera, este permis un singur nod. Pentru lega și
intercalează, nodelist permite o listă de numere delimitată prin virgulă, intervale AB sau „toate”.

start întârziere=irange
Întârzie începerea lucrării pentru numărul specificat de secunde. Suporta toate sufixele de timp
pentru a permite specificarea orelor, minutelor, secundelor și milisecundelor - secunde sunt
implicit dacă o unitate este omisă. Poate fi dat ca un interval care cauzează fiecare fir
pentru a alege aleatoriu în afara intervalului.

Runtime=int
Opriți procesarea după numărul specificat de secunde.

bazat pe timp
Dacă este dat, rulați pentru cea specificată Runtime durata chiar dacă fișierele sunt complet
citit sau scris. Aceeași sarcină de lucru se va repeta de câte ori Runtime
permite.

ramp_time=int
Dacă este setat, fio va rula sarcina de lucru specificată pentru această perioadă de timp înainte de conectare
orice numere de performanță. Util pentru a lăsa performanța să se stabilească înainte de a vă conecta
rezultate, minimizând astfel timpul de rulare necesar pentru rezultate stabile. Rețineți că
ramp_time este considerat lead in time pentru un loc de munca, astfel va creste totalul
runtime dacă este specificat un timeout special sau runtime.

invalida=bool
Invalidați memoria-cache pentru fișier înainte de a porni I/O. Implicit: adevărat.

sincronizaţi=bool
Utilizați I/O sincron pentru scrierile în buffer. Pentru majoritatea motoarelor I/O, asta
înseamnă folosirea O_SYNC. Implicit: false.

iomem=str, în sine=str
Metoda de alocare pentru unitatea tampon I/O. Valorile permise sunt:

malloc Alocați memorie cu malloc(3).

shm Utilizați memorie tampon de memorie partajată alocate prin shmget(2).

shmuge
La fel ca shm, dar folosește pagini uriașe ca suport.

mmap Utilizare mmap(2) pentru alocare. Utilizează memoria anonimă, cu excepția cazului în care un nume de fișier
este dat după opțiunea în formatul `:fişier'.

mmaphuge
La fel ca mmap, dar folosiți fișiere uriașe ca suport.

Cantitatea de memorie alocată este maximul permis bloc pentru serviciu
înmulțit cu adâncimea de iod. Pentru shmuge or mmaphuge pentru a funcționa, sistemul trebuie să aibă liber
pagini uriașe alocate. mmaphuge de asemenea, trebuie să aibă hugetlbf-uri montate și fişier trebuie sa
punct acolo. Cel puțin pe Linux, paginile uriașe trebuie alocate manual. Vedea
/proc/sys/vm/nr_hugehages și documentația pentru asta. În mod normal, trebuie doar să o faci
ecou un număr adecvat, de exemplu, ecoul 8 va asigura că sistemul de operare are 8 pagini uriașe
gata de folosit.

iomem_align=int, mem_align=int
Aceasta indică alinierea memoriei bufferelor de memorie IO. Rețineți că dat
alinierea este aplicată la primul buffer de unitate IO, dacă este utilizat adâncimea de iod alinierea a
următoarele tampoane sunt date de bs folosit. Cu alte cuvinte, dacă utilizați un bs acea
este un multiplu al dimensiunii paginii din sistem, toate tampoanele vor fi aliniate la aceasta
valoare. Dacă utilizați un bs care nu este aliniat la pagină, alinierea IO ulterioară
memorie tampon este suma dintre iomem_align și bs folosit.

dimensiune uriașă a paginii=int
Definește dimensiunea unei pagini uriașe. Trebuie să fie cel puțin egal cu setarea de sistem.
Ar trebui să fie un multiplu de 1MB. Implicit: 4MB.

exitall
Încetați toate lucrările când una termină. Implicit: așteptați ca fiecare lucrare să se termine.

bwavgtime=int
Calcule medii ale lățimii de bandă pe perioada dată în milisecunde. Mod implicit:
500ms.

iopsavgtime=int
Calcule medii IOPS pe timpul dat, în milisecunde. Implicit: 500 ms.

create_serialize=bool
Dacă este adevărat, serializați crearea fișierelor pentru joburi. Implicit: adevărat.

create_fsync=bool
fsync(2) fișier de date după creare. Implicit: adevărat.

create_on_open=bool
Dacă este adevărat, fișierele nu sunt create până când sunt deschise pentru IO de către job.

create_only=bool
Dacă este adevărat, fio va rula doar faza de configurare a jobului. Dacă fișierele trebuie aranjate
sau actualizat pe disc, doar asta se va face. Conținutul real al postului nu este
executat.

allow_file_create=bool
Dacă este adevărat, fio are permisiunea de a crea fișiere ca parte a sarcinii sale de lucru. Acesta este
comportament implicit. Dacă această opțiune este falsă, atunci fio va da eroare în cazul în care o fișiere
trebuie folosite nu există deja. Implicit: adevărat.

allow_mounted_write=bool
Dacă nu este setat, fio va anula joburile care sunt distructive (de exemplu, care scrie) în ce
pare a fi un dispozitiv montat sau o partiție. Acest lucru ar trebui să ajute la crearea
teste distructive din neatenție, fără a realiza că testul va distruge datele despre
sistemul de fișiere montat. Implicit: false.

pre_citit=bool
Dacă acest lucru este dat, fișierele vor fi pre-citite în memorie înainte de a începe IO-ul dat
Operațiune. Acest lucru va șterge și invalida steag, deoarece este inutil să pre-
citiți și apoi aruncați memoria cache. Acest lucru va funcționa numai pentru motoarele IO care pot fi căutate,
deoarece vă permit să citiți aceleași date de mai multe ori. Deci nu va funcționa
de exemplu, rețea sau îmbinare IO.

deconectez=bool
Deconectați fișierele de lucru când ați terminat. Implicit: false.

bucle=int
Specifică numărul de iterații (execuții ale aceleiași sarcini de lucru) ale acestui job.
Implicit: 1.

verifica_numai=bool
Nu efectuați sarcina de lucru specificată, verificați doar datele care încă se potrivesc anterioare
invocarea acestui volum de muncă. Această opțiune vă permite să verificați datele de mai multe ori la
o dată ulterioară fără a o suprascrie. Această opțiune are sens numai pentru sarcinile de lucru
care scriu date și nu acceptă sarcini de lucru cu bazat pe timp set de opțiuni.

do_verify=bool
Rulați faza de verificare după o fază de scriere. Valabil doar dacă verifica este setat. Mod implicit:
Adevărat.

verifica=str
Metodă de verificare a conținutului fișierului după fiecare iterație a jobului. Fiecare
metoda de verificare implică și verificarea antetului special, care este scris
până la începutul fiecărui bloc. Acest antet include și informații meta, cum ar fi
offset al blocului, numărul blocului, marcajul de timp când a fost scris blocul etc.
verifica=str poate fi combinat cu verifica_model=str opțiunea. Valorile permise sunt:

md5 crc16 crc32 crc32c crc32c-intel crc64 crc7 sha256 sha512 sha1 xxhash
Păstrați suma de control corespunzătoare în antetul fiecărui bloc. crc32c-intel
este condus de SSE4.2 accelerat hardware, revine la crc32c obișnuit
dacă nu este suportat de sistem.

meta Această opțiune este depreciată, deoarece acum meta informațiile sunt incluse în
antetul de verificare generică și verificarea meta are loc implicit.
Pentru informații detaliate, consultați descrierea verifica=str
setare. Această opțiune este păstrată din cauza compatibilității cu vechiul
configuratii. Nu-l folosi.

model
Verificați un model strict. În mod normal, fio include un antet cu unele
informații de bază și sumă de verificare, dar numai dacă această opțiune este setată
modelul specific stabilit cu verifica_model este verificat.

zero Prefă-te că verifici. Folosit pentru testarea componentelor interne.

Această opțiune poate fi utilizată pentru teste repetate de ardere a unui sistem pentru a vă asigura că
datele scrise sunt de asemenea corect citite înapoi. Dacă direcția datelor dată este o citire
sau citit aleatoriu, fio va presupune că ar trebui să verifice un fișier scris anterior. Dacă
direcția de date include orice formă de scriere, verificarea va fi din nou
date scrise.

verifysort=bool
Dacă este adevărat, blocurile de verificare scrise sunt sortate dacă fir consideră că este mai rapid să le citească
înapoi într-o manieră sortată. Implicit: adevărat.

verifysort_nr=int
Preîncărcați și sortați blocurile de verificare pentru o sarcină de lucru de citire.

verify_offset=int
Schimbați antetul de verificare cu date în altă parte în bloc înainte de a scrie.
Este schimbat înainte de verificare.

interval_verificare=int
Scrieți antetul de verificare pentru acest număr de octeți, care ar trebui să împartă
bloc. Mod implicit: bloc.

verifica_model=str
Dacă este setat, fio va umple tampoanele io cu acest model. Fio se umple implicit
cu octeți total aleatori, dar uneori este interesant să umpleți cu un cunoscut
model în scopul verificării io. În funcție de lățimea modelului, fio
va umple 1/2/3/4 octeți din memoria tampon în acel moment (poate fi fie o zecimală, fie o
număr hex). Verifica_pattern, dacă este mai mare de o cantitate de 32 de biți, trebuie să fie un hex
număr care începe fie cu „0x”, fie cu „0X”. Foloseste cu verifica=str. De asemenea,
verify_pattern acceptă formatul %o, ceea ce înseamnă că pentru fiecare bloc va fi offset
scris și apoi verificat înapoi, de exemplu:
verifica_model=%o
Sau folosește o combinație a tuturor:

verifica_model=0xff%o"abcd"-21

verify_fatal=bool
Dacă este adevărat, părăsiți jobul la primul eșec de verificare observat. Implicit: false.

verifica_dump=bool
Dacă este setat, descărcați conținutul atât al blocului de date original, cât și al blocului de date we
citiți de pe disc în fișiere. Acest lucru permite analizei ulterioare să inspecteze exact ce fel de
a avut loc coruperea datelor. Oprit implicit.

verify_async=int
Fio va verifica în mod normal IO în linie din firul de trimitere. Această opțiune necesită un
întreg care descrie câte fire de descărcare asincrone trebuie create pentru verificarea IO
în schimb, determinând fio să descarce datoria de verificare a conținutului IO către unul sau mai mulți
fire separate. Dacă utilizați această opțiune de descărcare, chiar și motoarele IO de sincronizare pot beneficia
din folosirea unui adâncimea de iod setare mai mare decât 1, deoarece le permite să aibă IO în zbor
în timp ce verificările rulează.

verify_async_cpus=str
Spuneți fio să seteze afinitatea CPU dată pe firele de verificare a IO asincrone. Vedea
cpus_permis pentru formatul utilizat.

verify_backlog=int
Fio va verifica în mod normal conținutul scris al unui job care utilizează verificarea o singură dată
acea lucrare s-a terminat. Cu alte cuvinte, totul este scris, apoi totul este
citit înapoi și verificat. Poate doriți să verificați continuu, în schimb, pentru o varietate de
motive. Fio stochează metadatele asociate cu un bloc IO în memorie, deci pentru
Verifică încărcături mari de lucru, destul de multă memorie ar fi folosită pentru a păstra această meta
date. Dacă această opțiune este activată, fio va scrie numai N blocuri înainte de a verifica
aceste blocuri.

verify_backlog_batch=int
Controlați câte blocuri va verifica fio dacă verify_backlog este setat. Dacă nu este setat, va
implicit la valoarea de verify_backlog (înseamnă că întreaga coadă este citită înapoi și
verificat). Dacă verify_backlog_batch e mai puțin decât verify_backlog atunci nu toate blocurile
va fi verificat, dacă verify_backlog_batch este mai mare decât verify_backlog, Unele
blocurile vor fi verificate de mai multe ori.

trim_percentage=int
Numărul de blocuri de verificare de aruncat/decupat.

trim_verify_zero=bool
Verificați dacă blocurile tăiate/eliminate sunt returnate ca zerouri.

trim_backlog=int
Tăiați după ce sunt scrise acest număr de blocuri.

trim_backlog_batch=int
Tăiați acest număr de blocuri IO.

experimental_verify=bool
Activați verificarea experimentală.

verify_state_save=bool
Când un job iese în timpul fazei de scriere a unei sarcini de lucru de verificare, salvați-i curentul
stat. Acest lucru permite fio să relueze până în acel moment, dacă starea de verificare este încărcată
pentru faza de citire de verificare.

verificare_state_load=bool
Dacă a fost folosit un declanșator de terminare de verificare, fio stochează starea curentă de scriere a
fiecare fir. Acesta poate fi folosit la momentul verificării, astfel încât fio să știe cât de departe este
ar trebui să verifice. Fără aceste informații, fio va rula o trecere de verificare completă,
conform setărilor din fișierul de lucru utilizat.

perete de piatra , așteptați_pentru_anterior
Așteptați ca lucrările anterioare din fișierul de job să iasă înainte de a începe aceasta.
perete de piatra implică grup nou.

grup nou
Începeți un nou grup de raportare. Dacă nu sunt date, toate lucrările dintr-un fișier vor face parte din
același grup de raportare, cu excepția cazului în care sunt separate printr-un zid de piatră.

numjobs=int
Numărul de clone (procese/thread-uri care efectuează aceeași sarcină de lucru) ale acestui job.
Implicit: 1.

grup_raportare
Dacă este setat, afișați rapoarte per grup în loc de per-lucrare când numjobs este specificat.

fir Folosiți fire create cu pthread_create(3) în loc de procese create cu
furculiţă(2).

zonele=int
Împărțiți fișierul în zone de dimensiunea specificată în octeți. Vedea zonekip.

zonerange=int
Dați dimensiunea unei zone IO. Vedea zonekip.

zonekip=int
Omiteți numărul specificat de octeți când zonele au fost citiți octeți de date.

scrie_iolog=str
Scrieți modelele I/O emise în fișierul specificat. Specificați un fișier separat pentru
fiecare job, altfel iologurile vor fi intercalate și fișierul poate fi corupt.

read_iolog=str
Redați modelele I/O conținute în fișierul specificat generat de scrie_iolog,
sau poate fi o blktrace fisier binar.

replay_no_stall=int
În timp ce redați modelele I/O folosind read_iolog comportamentul implicit încearcă să
respectați informațiile de sincronizare dintre I/O-uri. Activare replay_no_stall determină I/O-urile
să fie reluat cât mai repede posibil respectând în continuare ordinea.

redirecționare_reluare=str
În timp ce redați modelele I/O folosind read_iolog comportamentul implicit este reluarea
IOPS pe dispozitivul major/minor de pe care a fost înregistrat fiecare IOP. Setare
redirecționare_reluare face ca toate IOPS să fie redate pe un singur dispozitiv specificat
indiferent de dispozitivul de pe care a fost înregistrat.

replay_align=int
Forțați alinierea offset-urilor și lungimii IO într-o urmă la această valoare a puterii 2.

replay_scale=int
Sectorul de scalare este compensat de acest factor la reluarea urmelor.

per_job_logs=bool
Dacă este setată, aceasta generează jurnal bw/clat/iops cu nume de fișiere private pentru fiecare fișier. Dacă nu
setate, joburile cu nume identice vor partaja numele fișierului jurnal. Implicit: adevărat.

scrie_bw_log=str
Dacă este dat, scrieți un jurnal de lățime de bandă al joburilor din acest fișier de job. Poate fi folosit pentru depozitare
date despre lățimea de bandă a joburilor pe durata de viață a acestora. Cele incluse
Scriptul fio_generate_plots folosește gnuplot pentru a transforma aceste fișiere text în grafice frumoase.
Vedea write_lat_log pentru comportamentul numelui de fișier dat. Pentru această opțiune, postfixul este
_bw.x.log, unde x este indicele jobului (1..N, unde N este numărul de joburi).
If per_job_logs este fals, atunci numele fișierului nu va include indexul jobului.

write_lat_log=str
La fel ca scrie_bw_log, dar scrie latențe de finalizare a I/O. Dacă nu este dat un nume de fișier
cu această opțiune, este folosit numele de fișier implicit „jobname_type.x.log”, unde x este
indicele locului de muncă (1..N, unde N este numărul de locuri de muncă). Chiar dacă numele fișierului este
dat, fio va adăuga în continuare tipul de jurnal. Dacă per_job_logs este fals, atunci
numele fișierului nu va include indexul jobului.

write_iops_log=str
La fel ca scrie_bw_log, dar scrie IOPS. Dacă nu este dat niciun nume de fișier cu această opțiune,
este folosit numele de fișier implicit „jobname_type.x.log”, unde x este indexul
loc de muncă (1..N, unde N este numărul de locuri de muncă). Chiar dacă numele fișierului este dat, fio o va face
adăugați în continuare tipul de jurnal. Dacă per_job_logs este fals, atunci numele fișierului nu
include indexul locurilor de muncă.

log_avg_msec=int
În mod implicit, fio va înregistra o intrare în jurnalul iops, latență sau bw pentru fiecare IO care
completează. Când scrieți în jurnalul de disc, acesta poate crește rapid la o valoare foarte mare
mărimea. Setarea acestei opțiuni face ca fio să fie medie pentru fiecare intrare de jurnal peste cea specificată
perioadă de timp, reducând rezoluția jurnalului. Implicit la 0.

log_offset=bool
Dacă este setat, opțiunile iolog vor include offset-ul de octeți pentru intrarea IO ca
precum și celelalte valori ale datelor.

log_compression=int
Dacă acest lucru este setat, fio va comprima jurnalele IO pe măsură ce se desfășoară, pentru a păstra memoria
amprenta mai jos. Când un jurnal atinge dimensiunea specificată, acea bucată este eliminată și
comprimat în fundal. Având în vedere că jurnalele IO sunt destul de comprimabile,
acest lucru generează o economie de memorie bună pentru rulări mai lungi. Dezavantajul este că
compresia va consuma unele cicluri CPU de fundal, deci poate afecta rularea.
Totuși, acest lucru este valabil și în cazul în care înregistrarea ajunge să consume cea mai mare parte a sistemului
memorie. Așa că alege-ți otrava. Jurnalele IO sunt salvate în mod normal la sfârșitul unei rulări, până la
decomprimarea bucăților și stocarea lor în fișierul jurnal specificat. Această caracteristică
depinde de disponibilitatea zlib.

log_store_compressed=bool
Dacă este setat, și log_compression este de asemenea setată, fio va stoca fișierele jurnal în a
format comprimat. Ele pot fi decomprimate cu fio, folosind --umflare-bușten
parametrul liniei de comandă. Fișierele vor fi stocate cu a .fz sufix.

block_error_percentiles=bool
Dacă este setat, înregistrați erorile în unități de dimensiune bloc de tăiere din scrieri și tăiere și ieșire a
histograma a câte tăieturi a fost nevoie pentru a ajunge la erori și ce fel de eroare a fost
întâlnite.

disable_lat=bool
Dezactivați măsurătorile numerelor totale de latență. Util doar pentru tăierea
numărul de apeluri către gettimeofday(2), deoarece acest lucru are un impact foarte ridicat asupra performanței
Rate IOPS. Rețineți că pentru a scăpa cu adevărat de o cantitate mare de aceste apeluri, aceasta
opțiunea trebuie folosită și cu disable_slat și disable_bw.

disable_clat=bool
Dezactivați măsurătorile numerelor de latență de finalizare. Vedea disable_lat.

disable_slat=bool
Dezactivați măsurătorile numerelor de latență de trimitere. Vedea disable_lat.

disable_bw_measurement=bool
Dezactivați măsurătorile numerelor de debit/lățime de bandă. Vedea disable_lat.

lockmem=int
Fixați cantitatea specificată de memorie cu mlock(2). Poate fi folosit pentru a simula a
cantitate mai mică de memorie. Suma specificată este pe lucrător.

exec_prerun=str
Înainte de a rula jobul, executați comanda specificată cu sistem(3).
Ieșirea este redirecționată într-un fișier numit jobname.prerun.txt

exec_postrun=str
La fel ca exec_prerun, dar comanda este executată după finalizarea jobului.
Ieșirea este redirecționată într-un fișier numit jobname.postrun.txt

iosscheduler=str
Încercați să comutați dispozitivul care găzduiește fișierul la programatorul I/O specificat.

disc_util=bool
Generați statistici de utilizare a discului dacă platforma o acceptă. Implicit: adevărat.

sursa ceasului=str
Utilizați sursa de ceas dată ca bază de sincronizare. Opțiunile acceptate sunt:

gettimeofday
gettimeofday(2)

clock_gettime
clock_gettime(2)

cpu Sursă internă de ceas a procesorului

cpu este sursa de ceas preferată dacă este fiabilă, deoarece este foarte rapidă
(și fio este greu la apeluri la timp). Fio va folosi automat această sursă de ceas dacă
este acceptat și considerat de încredere pe sistemul pe care rulează, cu excepția cazului în care
o altă sursă de ceas este setată special. Pentru procesoarele x86/x86-64, aceasta înseamnă suport
TSC Invariant.

gtod_reduce=bool
Activați toate gettimeofday(2) opțiuni de reducere (disable_clat, disable_slat,
disable_bw) plus reducerea oarecum precizia timeout-ului pentru a micșora cu adevărat
gettimeofday(2) număr de apeluri. Cu această opțiune activată, facem doar aproximativ 0.4% din
Apelurile gtod() pe care le-am fi făcut dacă ar fi fost activată menținerea tuturor timpului.

gtod_cpu=int
Uneori este mai ieftin să dedici un singur fir de execuție doar obținerii
ora curentă. Fio (și bazele de date, de exemplu) sunt foarte intense
gettimeofday(2) apeluri. Cu această opțiune, puteți seta un CPU deoparte pentru a face
nimic altceva decât înregistrarea orei curente într-o locație de memorie partajată. Apoi celălalt
firele/procesele care rulează sarcini de lucru IO trebuie doar să copieze acel segment, în loc de
intrând în nucleu cu a gettimeofday(2) apel. CPU-ul pus deoparte pentru a face acestea
apelurile de timp vor fi excluse din alte utilizări. Fio îl va șterge manual din
masca CPU a altor joburi.

ignore_error=str
Uneori doriți să ignorați unele erori în timpul testului, în acest caz, puteți specifica
lista de erori pentru fiecare tip de eroare.
ignore_error=READ_ERR_LIST,WRITE_ERR_LIST,VERIFY_ERR_LIST
erorile pentru un anumit tip de eroare este separată cu „:”. Eroare poate fi simbolul („ENOSPC”,
'ENOMEM') sau un număr întreg.
Exemplu: ignore_error=EAGAIN,ENOSPC:122 .
Această opțiune va ignora EAGAIN din READ și ENOSPC și 122(EDQUOT) din WRITE.

error_dump=bool
Dacă este setată, dump fiecare eroare, chiar dacă nu este fatală, adevărată în mod implicit. Doar dacă este dezactivat
eroarea fatală va fi eliminată

profil=str
Selectați un anumit test de performanță încorporat.

cgroup=str
Adăugați job la acest grup de control. Dacă nu există, va fi creat. Sistemul
trebuie să aibă un punct de montare cgroup blkio montat pentru ca acest lucru să funcționeze. Dacă sistemul dvs
nu o are montata, o poti face cu:

# mount -t cgroup -o blkio none /cgroup

cgroup_weight=int
Setați greutatea cgroup-ului la această valoare. Consultați documentația care vine cu
nucleul, valorile permise sunt în intervalul 100..1000.

cgroup_nodelete=bool
În mod normal, fio va șterge cgroup-urile pe care le-a creat după finalizarea lucrării. La
suprascrieți acest comportament și pentru a lăsa cgroups în jur după finalizarea lucrării, setați
cgroup_nodelete=1. Acest lucru poate fi util dacă cineva dorește să inspecteze diferite fișiere cgroup
după finalizarea lucrării. Implicit: false

uid=int
În loc să rulați ca utilizator care invocă, setați ID-ul utilizatorului la această valoare înainte de
firul/procesul funcționează.

ghid=int
Setați ID-ul grupului, vezi uid.

unitate_bază=int
Unitate de bază pentru raportare. Valorile permise sunt:

0 Utilizați detectarea automată (implicit).

8 Bazat pe octeți.

1 Bazat pe biți.

flow_id=int
ID-ul fluxului. Dacă nu este specificat, implicit este un flux global. Vedea debit.

debit=int
Greutate în controlul fluxului pe bază de jetoane. Dacă se utilizează această valoare, atunci există a debit
contracara care este folosit pentru a regla proporția de activitate între două sau mai multe
locuri de munca. fio încearcă să mențină acest contor de flux aproape de zero. The debit standuri de parametri
pentru cât de mult ar trebui adăugat sau scăzut la contorul de flux la fiecare iterație a
bucla principală I/O. Adică dacă un loc de muncă are debit=8 si un alt loc de munca are debit=-1, Apoi
va exista un raport de aproximativ 1:8 în ceea ce privește cât de mult rulează unul față de celălalt.

flow_watermark=int
Valoarea maximă pe care este permisă să o atingă valoarea absolută a contorului de debit
înainte de lucru trebuie să aștepte o valoare mai mică a contorului.

flow_sleep=int
Perioada de timp, în microsecunde, de așteptat după expirarea filigranului de flux
depășit înainte de a reîncerca operațiunile

clat_percentiles=bool
Activați raportarea percentilelor de latențe de finalizare.

listă_percentile=float_list
Suprascrie lista implicită de percentile pentru latențe de finalizare și bloc
histograma erorilor. Fiecare număr este un număr flotant în intervalul (0,100], iar
lungimea maximă a listei este de 20. Folosiți „:” pentru a separa numerele. De exemplu,
--percentile_list=99.5:99.9 va determina fio să raporteze valorile de finalizare
latența sub care au scăzut 99.5% și, respectiv, 99.9% din latența observată.

Iomotor parametrii Listă
Unii parametri sunt validi numai atunci când un anumit iomotor este în uz. Acestea sunt folosite
identic cu parametrii normali, cu avertismentul că atunci când sunt utilizați pe linia de comandă, aceștia
trebuie să vină după motorul ionic.

(cpu)cpuload=int
Încercați să utilizați procentul specificat de cicluri CPU.

(cpu)cpuchunks=int
Împărțiți sarcina în cicluri de timp dat. În microsecunde.

(cpu)exit_on_io_done=bool
Detectați când firele IO sunt terminate, apoi ieșiți.

(libaio)userspace_reap
În mod normal, cu motorul libaio în uz, fio va folosi apelul de sistem io_getevents
pentru a culege evenimente nou revenite. Cu acest steag pornit, inelul AIO va fi citit
direct din spațiul utilizatorului pentru a culege evenimente. Modul de recoltare este activat numai atunci când
sondaj pentru minim 0 evenimente (de exemplu, când iodepth_batch_complete=0).

(net,netsplice)nume gazdă=str
Numele gazdei sau adresa IP de utilizat pentru IO bazate pe TCP sau UDP. Dacă jobul este un TCP
ascultător sau cititor UDP, numele de gazdă nu este folosit și trebuie omis decât dacă este a
adresa multicast UDP validă.

(net,netsplice)port=int
Portul TCP sau UDP la care să se conecteze sau la care să se conecteze. Dacă aceasta este folosită cu numjobs a depune icre
mai multe instanțe ale aceluiași tip de job, atunci acesta va fi numărul portului de pornire
deoarece fio va folosi o serie de porturi.

interfață (net,netsplice).=str
Adresa IP a interfeței de rețea folosită pentru a trimite sau a primi UDP multicast
pachete.

(net,netsplice)ttl=int
Valoarea timpului de viață pentru pachetele multicast UDP de ieșire. Implicit: 1

(net,netsplice)nodelay=bool
Setați TCP_NODELAY pe conexiunile TCP.

(net,netsplice)protocol=str, proto=str
Protocolul de rețea de utilizat. Valorile acceptate sunt:

tcp Protocol de control al transmisiei

tcpv6 Protocolul de control al transmisiei V6

udp Protocol de datagramă utilizator

udpv6 Protocol de datagramă utilizator V6

unix Socket de domeniu UNIX

Când protocolul este TCP sau UDP, trebuie să fie dat și portul, precum și
nume de gazdă dacă jobul este un ascultător TCP sau un cititor UDP. Pentru prize Unix, normal
ar trebui folosită opțiunea nume de fișier și portul este invalid.

(net,netsplice)ascultă
Pentru conexiunile de rețea TCP, spuneți fio să asculte mai degrabă conexiunile de intrare
decât inițierea unei conexiuni de ieșire. Numele de gazdă trebuie omis dacă această opțiune
este folosit.

(net,tenis de masa)=bool
În mod normal, un scriitor de rețea va continua să scrie date și un cititor de rețea
va consuma doar pachete. Dacă pingpong=1 este setat, un scriitor va trimite normal
sarcină utilă către cititor, apoi așteptați ca cititorul să trimită aceeași sarcină utilă înapoi.
Acest lucru permite fio să măsoare latența rețelei. Depunerea și completarea
latențele măsoară apoi timpul local petrecut pentru trimiterea sau primirea și finalizarea
latența măsoară cât de mult a durat celălalt capăt să primească și să trimită înapoi. Pentru
Traficul multicast UDP pingpong=1 ar trebui setat doar pentru un singur cititor atunci când
mai mulți cititori ascultă aceeași adresă.

(net,dimensiunea_ferestrei)=int
Setați dimensiunea dorită a soclului tampon pentru conexiune.

(net,mss)=int
Setați dimensiunea maximă a segmentului TCP (TCP_MAXSEG).

(e4defrag,donname)=str
Fișierul va fi folosit ca donator de bloc (schimbați extensiile între fișiere)

(e4defrag,inplace)=int
Configurați strategia de alocare a blocurilor fișierelor donatoare
0 (implicit): Prealocați fișierul donatorului pe init

1: alocați spațiu imediat în cadrul evenimentului de defragmentare și liber imediat după
eveniment

(rbd)rbdname=str
Specifică numele RBD.

(rbd)piscina=str
Specifică numele pool-ului Ceph care conține RBD.

(rbd)nume client=str
Specifică numele de utilizator (fără prefixul „client.”) folosit pentru a accesa Ceph
cluster.

(mtd)skipbad=bool
Omite operațiunile împotriva blocurilor dăunătoare cunoscute.

REZULTATE


In timpul alergarii, fir va afișa starea locurilor de muncă create. De exemplu:

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

Caracterele din primul set de paranteze indică starea curentă a fiecărui fir.
Valorile posibile sunt:

P Configurare, dar nu a început.
C Thread creat.
I Inițializat, în așteptare.
R Alergă, fac citiri secvențiale.
r Alergă, fac citiri aleatorii.
W Alergă, fac scrieri secvențiale.
w Alergă, scrie la întâmplare.
M Rularea, efectuarea de citiri/scrieri secvențiale mixte.
m Alergă, fac citiri/scrieri aleatoare mixte.
F Alergând, în prezent aștept fsync(2).
V Rularea, verificarea datelor scrise.
E Ieșit, nerecoltat de firul principal.
- Ieșit, fir cules.

Al doilea set de paranteze arată procentul de finalizare estimat al grupului curent.
Al treilea set arată rata I/O de citire și, respectiv, de scriere. În sfârșit, rularea estimată
este afișată ora lucrării.

Cand fir se completează (sau este întrerupt de Ctrl-C), va afișa date pentru fiecare fir, fiecare
grup de fire și fiecare disc, în această ordine.

Statisticile per thread arată mai întâi numărul clientului firelor, ID-ul grupului și codul de eroare. The
cifrele rămase sunt următoarele:

io Numărul de megaocteți de I/O executați.

bw Rata medie de date (lățime de bandă).

țărănoi Timpul de rulare a firelor.

lamelă Latența de trimitere minimă, maximă, medie și abatere standard. Aceasta este
timpul necesar pentru trimiterea I/O-ului.

strălucire Latența de finalizare minimă, maximă, medie și abatere standard. Acest
este timpul dintre depunere și finalizare.

bw Lățimea de bandă minimă, maximă, procent din lățimea de bandă agregată primită,
medie și abatere standard.

cpu Statistici de utilizare a procesorului. Include ora utilizatorului și a sistemului, numărul de context
comută prin care a trecut acest fir și numărul de erori majore și minore de pagină.

IO adâncimi
Distribuția adâncimii I/O. Fiecare adâncime include totul mai mic decât (sau
egal) cu acesta, dar mai mare decât adâncimea anterioară.

IO eliberat
Numărul de solicitări de citire/scriere emise și numărul de scurte de citire/scriere
solicitări.

IO latențe
Distribuția latențelor de finalizare a I/O. Numerele urmează la fel
model ca IO adâncimi.

Statisticile grupului arată:
io Numărul de megaocteți I/O executați.
aggrb Lățimea de bandă agregată a firelor din grup.
min b Lățimea de bandă medie minimă un ferăstrău cu filet.
maxb Lățimea de bandă medie maximă a văzut un fir.
mentă Cea mai scurtă durată de rulare a thread-urilor din grup.
maxt Cea mai lungă durată de rulare a thread-urilor din grup.

În cele din urmă, statisticile discului sunt tipărite mai întâi cu citirile:
IOS Numărul de I/E efectuate de toate grupurile.
îmbina Numărul de îmbinări în planificatorul I/O.
căpușe Numărul de căpușe pe care am ținut discul ocupat.
io_queue
Timpul total petrecut în coada de disc.
utile Utilizarea discului.

De asemenea, este posibil să obțineți ca fio să elimine ieșirea curentă în timp ce funcționează, fără
încetarea serviciului. Pentru a face asta, trimite fio 1 USD semnal.

CONCIS REZULTATE


În cazul în care --minim / --adăugare-concis sunt date opțiuni, rezultatele vor fi tipărite/anexate
într-un format delimitat prin punct și virgulă, potrivit pentru utilizarea în scripturi. O descriere a postului (dacă
furnizat) urmează pe o nouă linie. Rețineți că primul număr din linie este versiunea
număr. Dacă ieșirea trebuie modificată dintr-un motiv oarecare, acest număr va fi incrementat
cu 1 pentru a semnifica acea schimbare. Câmpurile sunt:

concis versiune, fir versiune, numele locului de munca, grupid, eroare

Citire stare:
Total I / O (KB), lățime de bandă (KB/s), IOPS, Runtime (Domnișoară)

Latența trimiterii:
min, max, Rău, standard deviere
Latența finalizării:
min, max, Rău, standard deviere
Percentile de latență de finalizare (20 de câmpuri):
al X-lea percentile=usec
Latență totală:
min, max, Rău, standard deviere
Lățime de bandă:
min, max, agregat procent of total, Rău, standard deviere

Starea scrierii:
Total I / O (KB), lățime de bandă (KB/s), IOPS, Runtime (Domnișoară)

Latența trimiterii:
min, max, Rău, standard deviere
Latența finalizării:
min, max, Rău, standard deviere
Percentile de latență de finalizare (20 de câmpuri):
al X-lea percentile=usec
Latență totală:
min, max, Rău, standard deviere
Lățime de bandă:
min, max, agregat procent of total, Rău, standard deviere

Utilizarea procesorului:
utilizator, sistem, context comutatoare, major pagină defecte, minor pagină defecte

Distribuția adâncimii IO:
<=1, 2, 4, 8, 16, 32, > = 64

Distribuția latenței IO:
Microsecunde:
<=2, 4, 10, 20, 50, 100, 250, 500, 750, 1000
Milisecunde:
<=2, 4, 10, 20, 50, 100, 250, 500, 750, 1000, 2000, > = 2000

Utilizarea discului (1 pentru fiecare disc utilizat):
Nume, citit ios, scrie ios, citit fuzionează, scrie fuzionează, citit căpușe, scrie
căpușe, citit în coadă timp, scrie în coadă timp, disc folosire procent

Informații despre eroare (în funcție de continue_on_error, implicit dezactivat):
total # erori, primul eroare cod

a) Sport and Nutrition Awareness Day in Manasia Around XNUMX people from the rural commune Manasia have participated in a sports and healthy nutrition oriented activity in one of the community’s sports ready yards. This activity was meant to gather, mainly, middle-aged people from a Romanian rural community and teach them about the benefits that sports have on both their mental and physical health and on how sporting activities can be used to bring people from a community closer together. Three trainers were made available for this event, so that the participants would get the best possible experience physically and so that they could have the best access possible to correct information and good sports/nutrition practices. b) Sports Awareness Day in Poiana Țapului A group of young participants have taken part in sporting activities meant to teach them about sporting conduct, fairplay, and safe physical activities. The day culminated with a football match. descriere (dacă prevăzut in config - apare on linie nouă)

CLIENT / SERVER


În mod normal, ați rula fio ca o aplicație autonomă pe mașina unde IO
ar trebui generat volumul de lucru. Cu toate acestea, este, de asemenea, posibil să rulați frontend-ul și backend-ul
de fio separat. Acest lucru face posibilă existența unui server fio care rulează pe mașină(e)
unde ar trebui să ruleze sarcina de lucru IO, în timp ce o controlați de pe o altă mașină.

Pentru a porni serverul, ar trebui să faceți:

fir --server=args

pe acea mașină, unde args definește ce ascultă fio. Argumentele sunt de forma
„tip:nume gazdă sau IP:port”. „tip” este fie „ip” (sau ip4) pentru TCP/IP v4, „ip6” pentru TCP/IP
v6, sau „sock” pentru un socket de domeniu Unix local. „hostname” este fie un nume de gazdă, fie IP
adresa, iar „portul” este portul de ascultat (valid numai pentru TCP/IP, nu pentru un socket local).
Cateva exemple:

1) fio --server

Porniți un server fio, ascultând pe toate interfețele de pe portul implicit (8765).

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

Porniți un server fio, ascultând pe IP care aparține numelui de gazdă și pe portul 4444.

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

Porniți un server fio, ascultând pe IPv6 localhost ::1 și pe portul 4444.

4) fio --server=,4444

Porniți un server fio, ascultând pe toate interfețele de pe portul 4444.

5) fio --server=1.2.3.4

Porniți un server fio, ascultând pe IP 1.2.3.4 pe portul implicit.

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

Porniți un server fio, ascultând pe socket-ul local /tmp/fio.sock.

Când un server rulează, vă puteți conecta la acesta de la un client. Clientul este condus cu:

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

unde --local-args sunt argumente care sunt locale pentru clientul în care rulează,
„server” este șirul de conectare și --remote-args și sunt trimise la
Server. Șirul „server” urmează același format ca și pe partea serverului, to
permite IP/nume de gazdă/socket și șiruri de porturi. De asemenea, vă puteți conecta la mai mulți clienți,
pentru a face asta ai putea rula:

fio --client=server2 --client=server2

Dacă fișierul job este localizat pe serverul fio, atunci îi puteți spune serverului să încarce un local
dosar de asemenea. Acest lucru se face folosind --remote-config:

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

Apoi fio va deschide acest fișier de job local (la server) în loc să i se transmită unul de la
clientul.

Dacă aveți multe servere (de exemplu: 100 de VM/containere), puteți introduce o cale a unui fișier
care conține IP-uri/nume gazdă ca valoare a parametrului pentru opțiunea --client. De exemplu,
iată un exemplu de fișier „host.list” care conține 2 nume de gazdă:

gazdă1.domeniul.dns.dvs
gazdă2.domeniul.dns.dvs

Comanda fio ar fi atunci:

fio --client=host.list

În acest mod, nu puteți introduce parametri specifici serverului sau fișiere de job și toate serverele
primiți același dosar de muncă.

Pentru a activa fio --client rulează utilizând un sistem de fișiere partajat de la mai multe gazde,
fio --client înaintează acum adresa IP a serverului numelui fișierului. De exemplu, dacă
fio folosește directorul /mnt/nfs/fio și scrie numele fișierului fileio.tmp, cu un --client
fișier gazdă care conține două nume de gazdă h1 și h2 cu adrese IP 192.168.10.120 și
192.168.10.121, apoi fio va crea două fișiere:

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

AUTORI


fir a fost scris de Jens Axboe[e-mail protejat]>, acum Jens Axboe[e-mail protejat]>.
Această pagină de manual a fost scrisă de Aaron Carroll[e-mail protejat]> pe baza documentatiei
de Jens Axboe.

RAPORTAREA GANDACI


Raportați erori către fir listă de email-uri[e-mail protejat]>. Vedea README.

Utilizați fio online folosind serviciile onworks.net


Servere și stații de lucru gratuite

Descărcați aplicații Windows și Linux

  • 1
    OfficeFloor
    OfficeFloor
    OfficeFloor oferă inversarea
    controlul cuplajului, cu: - dependenta
    injectare - continuare injectare -
    injecție filet Pentru mai multe informații
    Viziteaza...
    Descărcați OfficeFloor
  • 2
    DivKit
    DivKit
    DivKit este o sursă deschisă bazată pe server
    cadru UI (SDUI). Îți permite
    lansați actualizările provenite de la server la
    diferite versiuni de aplicație. De asemenea, poate fi
    folosit pentru ...
    Descărcați DivKit
  • 3
    subconvertor
    subconvertor
    Utilitate pentru a converti între diverse
    format de abonament. Utilizatori Shadowrocket
    ar trebui să folosească ss, ssr sau v2ray ca țintă.
    Puteți adăuga &remark= la
    HT apreciat de Telegram...
    Descărcați subconvertorul
  • 4
    SPĂLARE
    SPĂLARE
    SWASH este o valoare numerică de uz general
    instrument pentru simularea instabilității,
    nehidrostatic, cu suprafață liberă,
    flux rotaţional şi fenomene de transport
    în apele de coastă ca...
    Descărcați SWASH
  • 5
    VBA-M (arhivat - Acum pe Github)
    VBA-M (arhivat - Acum pe Github)
    Proiectul s-a mutat la
    https://github.com/visualboyadvance-m/visualboyadvance-m
    Caracteristici:Creații de înșelăciune salvează stări multiple
    sistem, acceptă gba, gbc, gb, sgb,
    sgb2Tu...
    Descărcați VBA-M (arhivat - Acum pe Github)
  • 6
    Stacer
    Stacer
    Optimizator și monitorizare de sistem Linux
    Depozitul Github:
    https://github.com/oguzhaninan/Stacer.
    Public: utilizatori finali/desktop. Utilizator
    interfață: Qt. Programare La...
    Descărcați Stacer
  • Mai mult »

Comenzi Linux

Ad