870 MB fail tmpfs-is ja sellele järgnenud taaskäivitus
Sisust ja selle ülevaatamisest
Selles artiklis
28. augustil kell 19:35 pakkisin ühe päeva juurdepääsulogi lahti kataloogi /tmp selleks, et kahte päeva saaks ühe käiguga lugeda. Kell 19:44 käivitus masin uuesti.
Omadus, mida ei kontrollitud
Selle masina /tmp on tmpfs. See on mälu. df näitab 1,9 GB vaba ruumi ega ütle üldse, kust see ruum tuleb, ja masinal on kokku 3 794 MB.
Nii läks 870 MB fail väikese serveri mälu veerandisse, mis teenindas samal ajal ka saiti ja käitas kellegi teise testitööd. Üheksa minutit hiljem lakkas SSH ühendusi vastu võtmast, sait vastas 11 sekundi, mitte 0,1 sekundi jooksul, ning varsti pärast seda oli see tagasi tööajaga null minutit.
Mida saab öelda ja mida mitte
MariaDB tõusis krahhitaastega, mis tähendab, et väljalülitamine ei olnud puhas. Sellest kaugemale on aus vastus see, et seda ei saa tõestada: selle masina päevik on lenduv, nii et see ei ela taaskäivitust üle, ja ühtegi kern.log mälu otsasaamise reaga ei ole. Tõendiks on ajatempel üheksa minutit enne sündmust ja fail vales kohas.
Seda tasub üles kirjutada nii, nagu see on, mitte järeldusena. „Täitis mälu ja kernel andis alla“ on usutav lugu. See ei ole mõõdetud lugu ja vahe on siin olulisem kui kindlus oleks.
Mis kahju oli
Mitte ühtegi, mida leida sai. CHECK TABLE viiel kõige olulisemal tabelil tuli tagasi OK, ridade arv oli muutumatu, loendus salvestas samal päeval endiselt ja kõik kuusteist ajastatud tööd olid terved. Sait vastas jälle 0,14 sekundiga.
Üks asi läks kaotsi: sama masina teise seansi pikaajaline töö. See ei olnud selle tööga mingit pistmist ja läks alla koos kõigega muuga, mis on katkestuse osa, mida ükski kohalik kontroll ei raporteeri.
Reegel, mis sellest tuli
Logifailid on siin 700 kuni 900 MB päevas. Ühe lahtipakkimine kataloogi /tmp tähendab neljandiku masina mälu panemist kohta, mis näeb välja nagu ketas ja käitub nagu RAM.
Suured vahefailid lähevad kataloogi /var/tmp või kodukataloogi, mõlemad on kettal. Veel parem, kui neid üldse lahti ei pakita: zcat -f file.gz | awk ... loeb voona ega vaja sihtkohta. Kõik järgmiste postituste mõõtmised tehti nii.
Mida üldistada
Failisüsteem teatab, kui palju ruumi tal on. See ei teata, millest see ruum koosneb, ja need kaks küsimust saavad erineva vastuse just nendes süsteemides, kus see kõige rohkem loeb.
Kontroll on üks rida ja see jäi vahele, sest fail oli „ajutine“. Ajutine oli tõsi. See oli vale omadus, millele mõelda.