Setările ZFS pe freebsd - blogul meu

Ce vei sti ...
• Cum să optimizați ZFS pentru diferite aplicații și încărcări de lucru
• Cum se măsoară și se evaluează eficiența cache-ului ZFS

Ce trebuie să știți ...






• Abilități de bază în administrarea ZFS
• Lucrul cu setările pentru sysctl (8) și loader (8)

Sfaturi de reglare de bază

Pe FreeBSD, de fiecare dată când are loc accesul la un fișier, timpul de acces (atime) este actualizat. Acesta poate genera un număr mare de înregistrări pe un disc pe un server care rulează cu un număr mare de fișiere. În acest caz, veți dori să dezactivați timpul (timp de acces) pentru datele afectate sau pentru întreaga piscină. Dezactivarea la timp poate îmbunătăți performanța tuturor tipurilor de aplicații.

# zfs setați atime = off set de date

Folosirea compresiei de date în ZFS păstrează spațiul, dar are un efect negativ asupra performanței și reacției sistemului CPU. Pe de altă parte, permiterea compresiei (în principal LZJB) poate îmbunătăți performanța datelor dvs., în special pe medii lente. În particular, costul compresiei gzip este mult mai mult timp CPU decât nivelul de compresie mai scăzut al compresiei LZJB. De aceea, vă recomandăm utilizarea de compresie a datelor numai dacă trebuie să comprimați date și seturi de date nu este o gâtuire a performanței sau dacă aveți suficient spațiu pe disc. Seturile de date cu activitate scăzută conțin, de exemplu, fișiere log, candidați buni pentru compresia gzip. Dacă aveți o unitate rapidă cu spațiu suficient și aveți nevoie de o performanță de primă clasă, dezactivați comprimarea setului de date pentru seturile de date corupte.

Setul de comprimare zfs setat = [on | off]

ZFS Deduplicarea este o caracteristică relativ nouă care se transformă pe tine pentru a economisi spațiu de stocare o singură copie a datelor care sunt disponibile în seturi de date ZFS în mai multe copii. Deduplicarea este necesară cu o cantitate mare de memorie RAM. Situația ideală este dacă întreaga dvs. tabelă de deduplicare se potrivește în memorie, altfel puteți obține experiență în reducerea performanțelor sistemului. Deduplicarea poate fi activată și / sau dezactivată pe baza unui set de date:

Pentru a afișa durata de funcționare și timpul real al activității ARC și a eficienței, consultați secțiunea din acest articol zfs-stats și zfs-mon.

Cel de-al doilea nivel de înlocuire a cache-ului adaptiv (L2ARC)

# zfs adăugați dispozitivul de stocare în memoria cache

# zfs eliminați dispozitivul bazinului

L2ARC oferă mai multe setări de sistem, voi da următorul exemplu:

vfs.zfs.l2arc_feed_again: încălzirea turbo

vfs.zfs.l2arc_feed_secs: interval secunde

vfs.zfs.l2arc_write_max: dimensiunea maximă de scriere

vfs.zfs.l2arc_write_boost: scriere suplimentară în timpul încălzirii

vfs.zfs.l2arc_headroom: numărul de scriere dev scrie la precache

vfs.zfs.l2arc_noprefetch: nu cache prefetch bufs

zfs-stats și zfs-mon: Instrumente statistice ZFS

kstat.zfs sysctl (8) Parametrul oferă acces la o varietate de contoare ZFS. Aceste variabile conțin datele originale și trag unele concluzii din aceste variabile, valorile intermediare trebuie să fie calculate. Scripturile Perl, zfs-stats și zfs-mon gestionează aceste date și furnizează o ieșire într-o formă care este prietenoasă cu oamenii. instrument ZFS-statistici se bazează pe arc_summary.pl Ben Rockwood și include modificările aduse Hellenthal Jason și cu mine. Ambele instrumente sunt disponibile în porturile FreeBSD în sysutils / zfs-stats. Datele din ZFS-statistici sunt adăugate și / sau valorile medii ale contoarelor care colectează date din sistem după zagrzilas. Un exemplu de extras din zfs-stats: Lista 1.







Durata de funcționare medie nu spune prea multe despre performanța reală a sistemului. Pentru a afișa cache-ul de eficiență (sau cantitatea sursă) în timp real, am scris utilitarul zfs-mon. Acesta monitorizează ARC, L2ARC și zfetch în timp real și afișează un 10 secunde, 60 a doua oară, iar valorile totale medii pe secundă (= total, deoarece programul a fost lansat).
Exemplu de ieșire zfs-mon -a după colectarea a 120 secunde de date: Lista 2.

Ca cache de eficiență obișnuită, memoria cache L2ARC este disponibilă numai pe un sistem fără ARC, astfel că cache-ul de eficiență generală este calculat folosind următoarea formulă:

[Eficiența ARC] + (100- [eficiența ARC]) * ([eficiența L2ARC] / 100).

Rezultatul pentru exemplul de mai sus:

89,96 + (100-89,96) * (71,15 / 100) = 97,10.

Interpretarea rezultatelor zfs-stats și zfs-mon

Producția zfs-stats și zfs-mon vă poate ajuta să deschideți ghearele și să decideți să schimbați unele sub-valori. Valoarea principală a afișării este utilizarea și eficiența diferitelor cache-uri. O valoare de 100% înseamnă că toate citește de pe disc sunt completate. Pentru scopurile mele, eficiența peste 80% este considerată eficientă, iar peste 90% este considerată foarte eficientă. Amintiți-vă că L2ARC necesită ceva timp pentru a se încălzi și este proiectat să îmbunătățească în totalitate memoria cache. Când utilizați zfs-mon, încercați să colectați date pe o perioadă lungă de timp și să vedeți coloana totală.

Iată câteva semnificații de bază:

Cache non-eficient ARC:
• Dacă aveți o dimensiune limitată a ARC, măriți sau eliminați limita
• Dezactivați ARC pentru unele seturi de date

Listing 2. Exemplu de ieșire zfs-mon (timp de pornire 120 secunde)

• Contabilizarea reducerii limitei mediane ARC
• Adăugați mai multă memorie RAM la sistem
• Luați în considerare utilizarea unui dispozitiv suplimentar de memorie cache L2ARC

Metadate cache nefuncționale ARC:

• Luați în considerare creșterea limitei metadatelor ARC
• Adăugați mai multă memorie RAM la sistem

Cache non-eficient L2ARC:

• Depinde foarte mult de structura lecturii tale
• Dacă ARC-ul dvs. este deja foarte eficient, L2ARC poate adăuga un mic avantaj pentru o perioadă de timp
• Dacă ARC-ul dvs. este ineficient, luați în considerare creșterea memoriei sistemului și L2ARC
• În anumite scenarii, eficiența a 30-40% din L2ARC poate fi deja disponibilă

• Luați în considerare oprirea zfetch

Ineficiența de preîncărcare vdev:

• Luați în considerare dezactivarea preloading-ului vdev
• Dacă este activată, curățarea și receptorul pot funcționa mult mai repede
• Modificați setările avansate de preload pentru vdev (numai pentru experți)

Tuning ZFS pentru aplicații

Pe FreeBSD, un utilizator experimentat poate vedea că acest avantaj sendfile și mmap off pe serverul web, dacă vă servi pagina cu un set de ZFS. În caz contrar, datele dvs. pot fi stocate în memoria din memorie de două ori, ceea ce reduce memoria sistemului.

Iată câteva exemple de directive de configurare pentru serverele web populare:

EnableMMAP dezactivat
EnableSendfile Oprit

Servere de baze de date

Pentru baze de date, cum ar fi PostgreSQL si MySQL, utilizatorii sunt sfătuiți să le stocați în setul de date creat de dimensiunea de înregistrare diferită decât valoarea implicită de 128 kilobytes.

Pentru postgreSQL și MySQL (depozitul MyISAM), dimensiunea înregistrării este setată la 8 kilobyte înainte de setul de date popular:

Într-un cadru cu un bloc de 4k, fișiere mici de până la 4k ocupă întotdeauna un bloc întreg. Metadatele ZFS sunt de mai multe ori mai mici de 4kb. Rețineți că utilizarea ashift = 12 mărește spațiul inițial necesar pentru metadate la o cantitate destul de mare (aproximativ 5% din dimensiunea totală a discului). În funcție de datele dvs., este posibil să existe o încărcare în bazin când datele sunt pline (de exemplu, multe fișiere mici). Deci, acesta este un compromis eficient între performanță și spațiul liber pe disc și va trebui să decideți ce este cel mai important pentru dvs.

Navigare după înregistrări







Articole similare

Trimiteți-le prietenilor: