Toată lumea ajunge, la un moment dat, să plângă după mai mult spațiu pe hard disk. De multe ori stai și te întrebi: unde s-a dus spațiul liber de pe discul meu? Sunt multe unelte pentru aflarea spațiului consumat (una din preferatele mele este comanda du -sh
), dar majoritatea sunt destul de mari consumatoare de timp. Zilele astea, citind despre sistemul de performanță în Linux, am dat peste un instrument nu numai util, dar și plăcut ochiului pentru determinarea spațiului disponibil pe disc: graficele "în flăcări" sau, pe limba lui Shakespeare, flame graphs.
Instrumentul a fost realizat de celebrul Brendan Gregg, folosind flame graphs ca vizualizare finală. Pentru exemplificare, mai jos este conținutul directorului meu /usr - click pe imagine, din nou click pentru Zoom, CTRL+F pentru căutare:
Veți vedea că lățimea totală (baza de jos a graficului) corespunde dimensiunii totale. În continuare, vizualizarea este arborescentă și prezintă procentual și numeric dimensiunea fiecărui folder sau fișier din total, putând să vă dați seama doar aruncându-vă privirea pe grafic care este fișierul ce vă mănâncă spațiul. Pentru amănunte, treceți cu mouse-ul peste grafic; pentru a intra în adâncime, click pe ceea ce vă interesează.
Instalare flame graphs pentru sistemele de fișiere Linux
Se face foarte ușor din git cu comanda:
git clone https://github.com/brendangregg/FlameGraph
Pentru a începe utilizarea uneltei:
cd FlameGraph
./files.pl /cale_director_analizat | ./flamegraph.pl --hash --countname=bytes > out.svg
Fișierul out.svg se deschide în browser și rezultă ceea ce am inserat mai sus în articol. Dacă vreți să aflați ce dimensiune au fișierele din întregul vostru sistem, înlocuiți /cale_director_analizat cu /
Instalare fără git:
Se descarcă două fișiere: files.pl și flamegraph.pl, fie folosind clasicul wget, fie în browser. După descărcare:
chmod 755 files.pl flamegraph.pl
./files.pl /cale_director_analizat | ./flamegraph.pl --hash --countname=bytes > out.svg
Pentru imaginea inserată în articol am dat comanda:
./files.pl /usr | ./flamegraph.pl --hash --countname=bytes \--title="Arbore director /usr" --width=800 > out.svg
Pentru mai multe opțiuni:
$
./flamegraph.pl -h
Option h is ambiguous (hash, height, help)
USAGE: ./flamegraph.pl [options] infile > outfile.svg--title # change title text
--width # width of image (default 1200)
--height # height of each frame (default 16)
--minwidth # omit smaller functions (default 0.1 pixels)
--fonttype # font type (default "Verdana")
--fontsize # font size (default 12)
--countname # count type label (default "samples")
--nametype # name type label (default "Function:")
--colors # set color palette. choices are: hot (default), mem, io,
# wakeup, chain, java, js, perl, red, green, blue, aqua,
# yellow, purple, orange
--hash # colors are keyed by function name hash
--cp # use consistent palette (palette.map)
--reverse # generate stack-reversed flame graph
--inverted # icicle graph
--negate # switch differential hues (blue<->red)
--help # this messageeg,
./flamegraph.pl --title="Flame Graph: malloc()" trace.txt > graph.svg
Vă place acest instrument? 🙂
[…] am povestit despre FlameGraphs, o unealtă grafică pentru aflarea spațiului liber pe hard disk în Linux. Astăzi voi prezenta […]