870 MB failas tmpfs ir po jo sekęs paleidimas iš naujo
Šiame straipsnyje
Rugpjūčio 28 d. 19:35 išpakavau vienos dienos prieigos žurnalą į /tmp dviem dienoms perskaityti vienu perėjimu. 19:44 kompiuteris pasileido iš naujo.
Nepatikrinta savybė
Šiame kompiuteryje /tmp yra tmpfs. Tai atmintis. df rodo 1,9 GB laisvos vietos ir nieko nesako, iš kur ji atsiranda, o kompiuteris iš viso turi 3 794 MB.
Taigi 870 MB failas pateko į ketvirtadalį mažo serverio atminties, kai jis dar aptarnavo svetainę ir vykdė kito žmogaus bandomąją užduotį. Po devynių minučių SSH nustojo priimti ryšius, svetainė atsakė per 11 sekundžių vietoj 0,1, o netrukus grįžo su nuliu minučių veikimo laiko.
Ką galima ir ko negalima pasakyti
MariaDB pradėjo atkūrimą po gedimo – vadinasi, išjungimas buvo netvarkingas. Toliau sąžiningas atsakymas toks: to neįmanoma įrodyti, nes šio kompiuterio žurnalas laikinas ir neišlieka paleidus iš naujo, o nėra kern.log su atminties trūkumo eilute. Įrodymai – laiko žyma devyniomis minutėmis prieš įvykį ir failas netinkamoje vietoje.
Verta tai užrašyti kaip yra, o ne kaip išvadą. «Užpildė atmintį, ir branduolys pasidavė» – įtikinama istorija. Bet ne išmatuota, o skirtumas čia svarbesnis už užtikrintumą.
Kokia buvo žala
Nieko, ką pavyko rasti. CHECK TABLE penkioms svarbiausioms lentelėms grąžino OK, eilučių skaičiai nepasikeitė, skaičiavimas tą pačią dieną toliau registravo, o visos šešiolika suplanuotų užduočių liko nepažeistos. Svetainė vėl atsakė per 0,14 sekundės.
Vienas dalykas prarastas: ilgai veikianti kitos sesijos užduotis tame pačiame kompiuteryje. Ji neturėjo nieko bendra su šiuo darbu ir nutrūko kartu su viskuo kitu – tai sutrikimo dalis, apie kurią jokia vietinė patikra nepraneša.
Iš to kilusi taisyklė
Žurnalo failai čia siekia nuo 700 iki 900 MB per dieną. Išpakuoti vieną į /tmp reiškia padėti ketvirtadalį kompiuterio atminties ten, kas atrodo kaip diskas ir elgiasi kaip RAM.
Dideli tarpiniai failai dedami į /var/tmp arba namų katalogą – abu yra diske. Dar geriau jų visai neišpakuoti: zcat -f file.gz | awk ... skaito srautu ir nereikalauja paskirties vietos. Kiekvienas vėlesnių įrašų matavimas atliktas taip.
Bendroji mintis
Failų sistema praneša, kiek turi vietos. Ji nepraneša, iš ko ta vieta padaryta, o abu klausimai turi skirtingus atsakymus būtent sistemose, kur tai svarbiausia.
Patikra – viena eilutė, praleista todėl, kad failas buvo «laikinas». Apibūdinimas „laikinas“ buvo teisingas. Tai buvo ne ta savybė, apie kurią reikėjo galvoti.