Obrati se podršci

Odgovaramo e-poštom, obično u roku od dva dana.

Google reCAPTCHA provjerava ovu prijavu radi zaštite od zlouporabe; podaci se šalju tvrtki Google. Skripta se učitava tek kada se otvori ovaj obrazac.

← Sve objave

Datoteka od 870 MB u tmpfs i ponovno pokretanje nakon nje

O sadržaju i njegovoj provjeri

U ovom članku

Dana 28. kolovoza u 19:35 raspakirao sam jedan dan pristupnog zapisnika u /tmp kako bi se dva dana mogla pročitati u jednom prolazu. U 19:44 stroj se ponovno pokrenuo.

što stroj ima i što je uzela jedna datoteka 3.794 MB memorije, od čega /tmp može držati 1.900 870 MB zapisano u njega u 19:35 19:35 — dan zapisnika raspakiran u /tmp radi čitanja dva dana odjednom 19:44 — SSH prestaje odgovarati, web-mjestu treba 11 s umjesto 0,1 s 19:47 — stroj se vratio, vrijeme rada 0 minuta MariaDB se pokreće uz oporavak nakon pada: gašenje nije bilo uredno zapisnik sustava ne preživljava ponovno pokretanje, pa se to ne može dokazati — samo datirati

Svojstvo koje nije provjereno

Na ovom stroju /tmp jest tmpfs. To je memorija. df prikazuje 1,9 GB slobodno i ništa ne govori o tome odakle taj prostor dolazi, a stroj ukupno ima 3.794 MB.

Tako je datoteka od 870 MB zauzela četvrtinu memorije malog poslužitelja koji je ujedno posluživao web-mjesto i izvršavao tuđi testni zadatak. Devet minuta kasnije SSH prestao je prihvaćati veze, web-mjesto odgovaralo je u 11 sekundi umjesto 0,1, a ubrzo se stroj vratio s vremenom rada od nula minuta.

Što se može, a što ne može reći

MariaDB se pokrenuo uz oporavak nakon pada, što znači da gašenje nije bilo uredno. Osim toga, iskren je odgovor da se ovo ne može dokazati: zapisnik sustava na ovom stroju nije trajan, pa ne preživljava ponovno pokretanje i nema kern.log s retkom o nedostatku memorije. Dokaz su vremenska oznaka devet minuta prije događaja i datoteka na pogrešnom mjestu.

To vrijedi zapisati upravo tako, a ne kao zaključak. «Napunila se memorija i jezgra je odustala» uvjerljiva je priča. Nije izmjerena i ta je razlika ovdje važnija nego što bi sigurnost bila.

Kakva je šteta nastala

Nijedna koja se mogla pronaći. CHECK TABLE na pet najvažnijih tablica vratio je OK, broj redaka bio je nepromijenjen, brojanje je i dalje bilježilo taj isti dan, a svih šesnaest zakazanih zadataka bilo je netaknuto. Web-mjesto ponovno je odgovaralo u 0,14 sekundi.

Jedna je stvar izgubljena: dugotrajan zadatak druge sesije na istom stroju. Nije imao veze s ovim radom i pao je zajedno sa svime ostalim, a to je dio prekida koji nijedna lokalna provjera ne prijavljuje.

Pravilo koje je iz toga proizašlo

Ovdašnje datoteke zapisnika imaju 700 do 900 MB dnevno. Raspakirati jednu u /tmp znači staviti četvrtinu memorije stroja negdje što izgleda kao disk, a ponaša se kao RAM.

Velike međudatoteke idu u /var/tmp ili korisnički direktorij, koji su oboje na disku. Još bolje, uopće se ne raspakiravaju: zcat -f file.gz | awk ... čita u toku i ne treba odredište. Sva mjerenja u objavama koje su slijedile provedena su tako.

Što vrijedi općenito

Datotečni sustav prijavljuje koliko prostora ima. Ne prijavljuje od čega je prostor napravljen, a ta dva pitanja imaju različite odgovore upravo na sustavima na kojima je to najvažnije.

Provjera je jedan redak i preskočena je jer je datoteka bila «privremena». Privremena je bila. Razmišljanje se usmjerilo na pogrešno svojstvo.

Oglas