-
LUE
LUE
Huomio
Vaikka pyrimme tekemään työkaluista mahdollisimman 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 suorituskykyisemmän tiedostojärjestelmän kaikille käyttäjille.
Kokoa koskevia tietoja kysyttäessä on tärkeää rajata käsiteltävien tiedostojen joukkoa.
Jotkin toiminnot voivat olla sekä hitaita että kuormittaa tiedostojärjestelmää paljon. Toisin sanoen, älä
aja työkalua koko projektikansioon (esim. /scratch/project_12345), vaan valitse
sen sijaan pienempiä alikansioita, joissa arvelet olevan paljon tiedostoja tai dataa,
jotka voitaisiin 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ää datan määrän ja tiedostojen lukumäärän annetussa rinnakkaisen tiedostojärjestelmän kansiossa.
Tärkeää on, että LUE on merkittävästi nopeampi kuin tavalliset työkalut kuten stat tai du
(nämä voivat huonona päivänä olla niin hitaita, että niiden käyttö on käytännössä mahdotonta), ja samalla se kuormittaa
tiedostojärjestelmää vähemmän. Tähän liittyy kuitenkin mahdollinen pieni tarkkuuden heikkeneminen.
Toiseksi LUE esittää tulokset melko helposti ymmärrettävässä muodossa,
jolloin käyttäjän ei tarvitse kirjoittaa omaa skriptiä raakamuotoisen du-tulosteen pohjalta.
Mahdollisen epätarkkuuden lähteet ovat:
- Vanhoista tiedostoista, joita ei ole käytetty, puuttuu kokotieto.
- On olemassa tietty päivämäärä (2020-11-18), jota edeltävältä ajalta dataa ei ole saatavilla Puhdissa. Mahdissa ei ole tällaista rajoitusta.
- Tämän jälkeen luotujen/käytettyjen tiedostojen pitäisi olla kunnossa.
- Vaikutuksen alaisten tiedostojen tarkka määrittäminen ei aina ole mahdollista riittävän tehokkaalla tavalla.
- Emme voi saada tiedostojen todellista asettelua levyltä, joten saatamme hieman
yliarvioida todellisen levytilan käytön.
- Tiedosto, jonka koko on 95 MB, saattaa 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 ajamalla
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 ollessa käynnissä 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 koon. 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, emme voi arvioida lainkaan, 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
ohittaaksesi tämän.
Valitsimella --display-level=<n> voimme näyttää syvemmän hakemistohierarkian saadaksemme tarkempaa
tietoa.
$ 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 ajaa työkalun vain yhdessä alikansioista saadaksemme pienemmän, vähemmän sekavan 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 ajanut LUE:n hakemistossa /scratch/project_12345/dirA/,
voit ajaa sen missä tahansa alihakemistossa ilman, että tiedostojärjestelmältä tarvitsee tehdä uusia kyselyjä.
Pakottaaksesi työkalun päivittämään datan (esimerkiksi jos ajo tarvitsee muita valitsimia tai välimuisti
on liian vanha), käytä --refresh. Välimuisti tallennetaan hakemistoon $TMPDIR, joten jos vaihdat solmua,
sinun täytyy ajaa komento uudelleen.
Valitsimilla --yaml file.yaml ja --json file.json voit tallentaa tulosteen
helpommin jäsennettävään muotoon sen sijaan, että se tulostettaisiin näytölle.
Kokotietojen päivittäminen
Kuten mainittiin, tiedostoja, joita ei ole käytetty sitten päivän 2020-11-18, ei raportoida oikein. Huomaa, että tämä koskee vain Puhtia, Mahdissa tätä rajoitusta ei ole.
Seuraavaksi ovat vaiheet tämän korjaamiseksi. Tämä toimenpide tarvitsee tehdä vain kerran, jonka jälkeen koko pitäisi raportoida oikein:
- Aja
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ä
- Aja uudelleen
lue --sync-size <target_dir>. Edellisen komennon olisi pitänyt raportoida 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.
- Aja 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ä raportoitiin ajettaessa valitsimella
--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 ajaa uudelleen komennolla
lue --refresh <target_dir> --stat-unsyncedsaadaksesi tarkempaa kokotietoa, vaikka tämä onkin hieman hitaampaa.
- Vaikutuksen alaisten tiedostojen määrä raportoitiin ajettaessa valitsimella
- Jotkin tiedostot vaativat paljon raskaampia toimintoja kokotiedon synkronoimiseksi.
- Aja uudelleen komennolla
lue --sync-size --slow-sync <target_dir>. HUOM! Valitsimen--slow-synclisääminen on noin 10 kertaa hitaampaa kuin pelkkä--sync-size - Ennen tämän tekemistä aja
luejoissakin alikansioissa (ilman--refresh-valitsinta) 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, aja komento valitsimella--slow-sync. Muussa tapauksessa siirry kohtaan 3. - Tavallisesti tätä vaihetta ei tarvita.
- Aja uudelleen komennolla
- 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 ajamista.
- Jos olet jo ajanut valitsimella
--slow-synctai varmistanut, ettei sitä tarvita, voit lisätä valitsimen--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 täydellisesti. Jos painat
Ctrl-C keskeyttääksesi työkalun, käsitellyt tiedot tallennetaan ja voit
ajaa sen uudelleen ilman --refresh-valitsinta nähdäksesi tulokset. Muita tapoja rajoittaa suoritus aikaa ovat:
--timeout <n>-
Pysäytä
<n>minuutin jälkeen (oletus 30 min, jos--timeout-valitsinta 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 haun syvyys arvoon
<n>. Oletuksena ei rajoitusta.