LUE
Note
Vaikka pyrimme kaikin tavoin tekemään työkaluista helppokäyttöisiä, rinnakkaiset tiedostojärjestelmät, joissa on valtava määrä tiedostoja ja dataa, ovat monimutkaisia. Lue täydet ohjeet ennen työkalun käyttöä!
Sen seuraaminen, kuinka paljon dataa/tiedostoja levyllä on, ja niiden siirtäminen tai poistaminen ajoissa varmistaa paremmin toimivan tiedostojärjestelmän kaikille käyttäjille.
Kokoa koskevia tietoja kysyttäessä on tärkeää rajata käsiteltävä tiedostojoukko. Jotkin toiminnot voivat olla sekä hitaita että kuormittavia tiedostojärjestelmälle. Toisin sanoen älä suorita työkalua koko projektikansiossa (esim. /scratch/project_12345), vaan valitse sen sijaan pienempiä alikansioita, joissa arvelet olevan paljon tiedostoja tai dataa, joita voisi mahdollisesti siirtää/pakata/poistaa. Oletuksena työkalu hakee kokotietoja vain 30 minuutin ajan ennen lopettamista.
Lyhyt johdanto
LUE on CSC:n supertietokoneilla saatavilla oleva työkalu, joka näyttää annetussa kansiossa olevan datan määrän ja tiedostojen lukumäärän rinnakkaisessa tiedostojärjestelmässä.
Tärkeää on, että LUE on merkittävästi nopeampi kuin tavalliset työkalut kuten stat tai du (jotka voivat huonona päivänä olla niin hitaita, että niiden käyttö on epäkäytännöllistä), ja samalla se kuormittaa tiedostojärjestelmää vähemmän. Tähän liittyy kuitenkin mahdollinen pieni tarkkuuden heikkeneminen.
Toinen huomionarvoinen seikka on, että LUE esittää tulokset varsin helposti ymmärrettävällä tavalla, jolloin käyttäjän ei tarvitse itse kirjoittaa skriptiä raakamuotoisen du-tulosteen pohjalta.
Mahdollisen epätarkkuuden syyt ovat:
- Vanhoista tiedostoista, joita ei ole käytetty, puuttuvat kokotiedot.
- Vaikutuksen alaisten tiedostojen tarkka määrittäminen ei ole aina mahdollista riittävän tehokkaalla tavalla.
- Emme voi saada tiedostojen todellista asettelua levyllä, joten saatamme hieman yliarvioida todellisen levytilan käytön.
- Tiedosto, jonka koko on 95 MB, voi käyttää levytilaa vain 68 MB, jos se sisältää suuria määriä pelkkiä nollia.
- Tiedostoja, jotka ovat parhaillaan käytössä, ei välttämättä raportoida oikein.
Peruskäyttö
Lataa moduuli komennolla:
ja aloita suorittamalla
Tuloste
Total size: 8994868686 Processed files: 90551 Permission denied: 16 Missing size: 48955, Other err: 1
path, total size, in dir size, % of total, % of dir
---------------------------------------------------
/scratch/project_12345/dirA 8.4GB 356KB 100.0 100.0
results 3.7GB 458MB 44.15 44.15 NOSIZE:2
installations 1.4GB 48KB 16.2 16.2
datasetA 684MB 64KB 7.9 7.9
datasetB 530MB 56KB 6.12 6.12 NOPERM:1 NOSIZE:17
testing 512MB 8KB 5.92 5.92
images 395MB 764KB 4.56 4.56
numpy-git 292MB 12KB 3.37 3.37
newAB 263MB 412KB 3.04 3.04 NOPERM:9 NOSIZE:953
cuda_old 249MB 4KB 2.87 2.87
AI-simu 176MB 52KB 2.03 2.03 NOSIZE:43491
mpi-test 60MB 52KB 0.69 0.69
WARNING: Size information is missing for 48956 files
Rerun with --sync-size to update size information, estimated duration: 43 seconds
Työkalun suorittamisen aikana se tulostaa, kuinka monta tiedostoa se on käsitellyt, tiedostojen kokonaiskoon, kuinka monta hakemistoa ei voitu avata ja kuinka monelta tiedostolta puuttui raportoitu koko.
Info
Käyttämällä -c/--count-valitsinta voit näyttää tiedostojen lukumäärän datamäärän sijaan.
Kun työkalu on käynyt tiedostot läpi, se tulostaa <target_dir>-hakemiston koon sekä mahdollisten alikansioiden koot. Sarakkeet vasemmalta oikealle ovat:
- Hakemiston/tiedoston nimi
- Hakemiston kokonaiskoko (mukaan lukien alihakemistot) tai tiedoston koko
- Hakemistossa olevien kaikkien tiedostojen koko (pois lukien alihakemistot)
- Kuinka monta prosenttia hakemisto tai tiedosto on
<target_dir>-hakemiston kokonaiskoosta - Kuinka monta prosenttia hakemisto tai tiedosto on emohakemistonsa kokonaiskoosta
- Lukumäärät siitä, kuinka monta hakemistoa ei voitu avata (
NOPERM) tai kuinka monelta tiedostolta puuttui kokotieto (NOSIZE)
Info
Jos emme voineet avata hakemistoa, meillä ei ole arviota siitä, kuinka paljon dataa kyseinen hakemisto sisältää. Katso kokotietojen päivittäminen, miten NOSIZE-virhe korjataan. NOPERM-virheen korjaaminen edellyttää, että hakemistojen omistaja korjaa käyttöoikeudet.
Oletuksena tiedostoja tai tyhjiä kansioita ei näytetä tulosteessa. Käytä --show-all, jos haluat ohittaa tämän.
Käyttämällä --display-level=<n> voimme näyttää syvemmän hakemistohierarkian saadaksemme tarkempia tietoja.
$ lue --display-level=2 /scratch/project_12345/
path, total size, in dir size, % of total, % of dir
---------------------------------------------------
/scratch/project_12345/dirA 8.4GB 356KB 100.0 100.0
results 3.7GB 458MB 44.15 44.15
simu1 2.8GB 522MB 32.84 74.38 NOSIZE:1
simu2 521MB 521MB 6.02 13.64 NOSIZE:1
installation 1.4GB 48KB 16.2 16.2
gcc10 351MB 351MB 4.05 25.02
gcc11 351MB 351MB 4.05 25.02
clang15 351MB 351MB 4.05 25.02
intel 350MB 350MB 4.04 24.94
Vaihtoehtoisesti voimme suorittaa työkalun vain yhdessä alikansioista saadaksemme pienemmän ja selkeämmän tulosteen.
$ lue /scratch/project_12345/dirA/result
path, total size, in dir size, % of total, % of dir
---------------------------------------------------
/scratch/project_12345/dirA/result 3.7GB 458MB 100.0 100.0
simu1 2.8GB 522MB 74.38 74.38 NOSIZE:1
simu2 521MB 521MB 13.64 13.64 NOSIZE:1
LUE ylläpitää hyvin yksinkertaista ajokertojen välimuistia. Kun olet suorittanut LUEn hakemistossa /scratch/project_12345/dirA/, voit suorittaa sen missä tahansa alihakemistossa ilman, että tiedostojärjestelmältä tarvitsee kysyä tietoja uudelleen.
Pakottaaksesi työkalun päivittämään tiedot (esimerkiksi jos ajo tarvitsee muita valintoja tai välimuisti on liian vanha), käytä --refresh. Välimuisti tallennetaan hakemistoon $TMPDIR, joten jos vaihdat solmua, sinun täytyy suorittaa työkalu uudelleen.
Käyttämällä valintoja --yaml file.yaml ja --json file.json voit tallentaa tulosteen helpommin jäsennettävässä muodossa sen sijaan, että se tulostettaisiin näytölle.
Kokotietojen päivittäminen
Kuten mainittiin, vanhoilta tiedostoilta, joita ei ole käytetty viime aikoina, voi puuttua kokotieto, jolloin ne raportoidaan merkinnällä NOSIZE.
Seuraavaksi kuvataan vaiheet tämän korjaamiseksi. Tämä toimenpide tarvitsee tehdä vain kerran, minkä jälkeen koko pitäisi raportoida oikein:
- Suorita
lue <target_dir>.- Jos varoituksia ei tulostu eikä
NOSIZE-merkintöjä ole, raportoitu koko on todennäköisesti melko tarkka. Muita vaiheita ei tarvita.
- Jos varoituksia ei tulostu eikä
- Suorita uudelleen
lue --sync-size <target_dir>. Edellisen komennon olisi pitänyt ilmoittaa vaikutuksen alaisten tiedostojen määrä ja (hyvin) karkea arvio kestosta.- Edistymispalkki päivittyy näyttämään, kuinka monta tiedostoa on käsitelty ja kuinka montaa tiedostoa ei voitu päivittää riittämättömien käyttöoikeuksien vuoksi.
- Suorita uudelleen
lue --refresh <target_dir>.- Näytetyn koon pitäisi olla melko tarkka.
Jos NOSIZE-merkintöjä raportoidaan edelleen:
- Joitakin tiedostoja ei voitu päivittää riittämättömien käyttöoikeuksien vuoksi.
- Vaikutuksen alaisten tiedostojen määrä ilmoitettiin suoritettaessa komentoa valinnalla
--sync-size.- Jos määrä vastaa
NOSIZE-merkintöjen määrää, vaiheita 2. ja 3. ei tarvitse tehdä.
- Jos määrä vastaa
- Tämän voi korjata vain omistaja korjaamalla käyttöoikeudet.
- Jos vaikutuksen alaisten tiedostojen määrä on pieni (<1000), voit suorittaa komennon uudelleen muodossa
lue --refresh <target_dir> --stat-unsyncedsaadaksesi tarkemmat kokotiedot, vaikka tämä on hieman hitaampaa.
- Vaikutuksen alaisten tiedostojen määrä ilmoitettiin suoritettaessa komentoa valinnalla
- Jotkin tiedostot vaativat paljon raskaampia toimintoja kokotiedon synkronoimiseksi.
- Suorita uudelleen
lue --sync-size --slow-sync <target_dir>. HUOM! Valinnan--slow-synclisääminen tekee toiminnasta noin 10 kertaa hitaampaa kuin pelkällä--sync-size-valinnalla. - Ennen tämän tekemistä suorita
luejoissakin alikansioissa (ilman--refresh-valintaa) selvittääksesi, missäNOSISZE-tiedostot sijaitsevat. Käytä sittenls -ltaidu -hvarmistaaksesi, etteivät tiedostot oikeasti ole kooltaan nollia. Jos tiedostot näyttävät olevan kooltaan muuta kuin nolla, suorita komento valinnalla--slow-sync. Muussa tapauksessa siirry kohtaan 3. - Yleensä tätä vaihetta ei tarvita.
- Suorita uudelleen
- Jotkin tiedostot ovat hyvin vanhoja ja niiden todellinen koko on nolla -> olemme merkinneet ne virheellisesti.
- Jos tiedät, että sinulla on ohjelma/kehys, joka tuottaa paljon tyhjiä tiedostoja, harkitse niiden poistamista ennen työkalun suorittamista.
- Jos olet jo suorittanut komennon valinnalla
--slow-synctai varmistanut, ettei sitä tarvita, voit lisätä valinnan--no-guess, jolloin näitä tiedostoja ei raportoida.
Suoritusajan rajaaminen
Työkalun suoritusajan rajaaminen on hyvä ajatus, ja usein saamme hyödyllistä tietoa, vaikka kansiorakennetta ei olisi käyty läpi tyhjentävästi. Jos painat Ctrl-C keskeyttääksesi työkalun, käsitellyt tiedot tallennetaan ja voit suorittaa komennon uudelleen ilman --refresh-valintaa nähdäksesi tulokset. Muita tapoja rajoittaa suoritusaikaa ovat:
--timeout <n>-
Pysäytä
<n>minuutin jälkeen (oletus 30 min, jos--timeout-valintaa ei ole asetettu) --file-limit <n>-
Pysäytä haku, kun tietty määrä tiedostoja on käyty läpi.
--size-limit <n>-
Pysäytä haku, kun tietty kokonaiskoko on saavutettu. Tuetut yksiköt ovat K, M, G, T. Jos päätettä ei käytetä, oletetaan G.
--search-depth <n>-
Rajoita hakusyvyys arvoon
<n>. Oletuksena ei rajoitusta.