Тунелот престанува да прима врски, услугата се рестартира двапати, а потоа ништо не се појавува во нејзиниот дневник. Таа тишина е трагата, бидејќи дневникот е тоа што го наполни дискот и демонот нема каде да ја запише грешката што ја чекате. Секоја долготрајна услуга може да дојде во таа состојба, а бришењето директориум наречен logs ретко го поправа. Трајното решение е да знаете кое складиште пораснало, кој ја поседува неговата политика на задржување и дали пишувачот навистина го ослободил просторот.

Најдете го складиштето што порасна и темпото со кое растеше

Започнете со два броја што лесно се забораваат: слободни блокови и слободни inode. Датотечен систем може да пријави многу простор и сепак да одбие запис затоа што нема преостанати inode, а тоа се случува кога услугата создава по една датотека на сесија. Побарајте двете читања на истиот волумен, бидејќи одговорите може да се разидат уште истото попладне. Направете го тоа додека домаќинот е здрав, за да ги опишуваат броевите нормалното работење, а не прекин.

df -h /var
df -i /var

Потоа припишете го растот на сопственик. Сопствената бројка за потрошувачка на journal опфаќа само journal и никогаш нема да види демон што пишува на патека од својата конфигурациска датотека.

journalctl --disk-usage

Растот со текот на времето кажува повеќе од кое било поединечно мерење. Вклучено оставено ниво за отстранување грешки, циклус за повторување што го запишува секој обид или датотека за снимање што никој не ја запрел: секое од нив може да изгледа обично во еден момент и загрижувачко еден час подоцна. Земете едно мерење, почекајте низ зафатен период, земете друго и поделете со интервалот. Темпото што можете да го наведете ја претвора моќноста во одлука наместо во пожар.

Што прави ротацијата со отворена датотека

Датотеката на дневникот е име што покажува на inode, а просторот се враќа само кога ќе се затвори последниот отворен рачун. Преименувајте ја датотеката и пишувачот продолжува да го полни истиот inode; избришете ја и пишувачот продолжува да полни inode сосема без име. Заради оваа состојба реченицата „ја избришав датотеката, а дискот остана полн“ опишува датотечни дескриптори, а не расипан датотечен систем. Рестартирање на пишувачот или избирање режим на ротација што ја отвора датотеката повторно е она што навистина ги враќа блоковите.

lsof +L1 | head

Политиката им припаѓа на компонентата што ја пишува датотеката. Journal ги наметнува своите граници за складирање од својата конфигурациска датотека, додека услуга заснована на датотеки обично се потпира на logrotate, или со правило за создавање и сигнал за повторно отворање, или со режим на скратување на самото место кога пишувачот не може да отвори повторно. Прво потврдете ја одлуката без да смените ништо:

logrotate -d /etc/logrotate.conf

Каде им припаѓа границата и колку голема треба да биде

Ставете ја границата таму каде што е конфигуриран пишувачот, а не на точката на монтирање. Квотата на целиот волумен го штити домаќинот, но не кажува која услуга прва ќе падне, а глобалната скрипта за чистење има тенденција да ги брише доказите што ќе им требаат на следниот инцидент. Граница на journal, број на ротации со максимална големина и задржување на ниво на апликација: секое ограничува по еден производител. Заедно ја ограничуваат целината; одделно секое е претпоставка.

Димензионирајте ја таа граница според задржувањето што можете да го одбраните, а не според слободниот простор. Ако за преглед е потребна една недела обиди за поврзување, journal мора да држи една недела при најзафатеното очекувано темпо, а тоа темпо е бројот измерен претходно.

Дневникот за отстранување грешки е привремен режим со запишано време на почеток, а не план за складирање. Држете го прашањето за приватност во истата одлука, бидејќи дневниците на врски носат адреси и идентификатори. Подолгото задржување е исто така избор за обработка на податоци и треба да го донесе некој што ги знае двете ограничувања.

Проверете ја границата по рестартирање

Промената на задржувањето што трае до следното рестартирање не е промена. Рестартирајте го пишувачот, потврдете дека новото ограничување важи и проверете дали ротацијата се уште работи потоа. За journal, едно рестартирање и едно читање на потрошувачката одговараат на двете прашања:

systemctl restart systemd-journald
journalctl --disk-usage

За услуга заснована на датотеки, извршете ја задачата за ротација еднаш рачно и потврдете дека датотеката е заменета и дескрипторот е повторно отворен. Пишувач што го држи стариот рачун поминува површна проверка и паѓа следниот пат кога волуменот ќе се наполни. Следете го слободниот простор за време на тестот, бидејќи датотека што се намалила додека просторот не се вратил значи дека стариот inode се уште се држи.

Споредете го следното читање со ова

Вратете се по една недела и споредете го темпото на раст со запишаното. Совпаѓачко темпо значи дека границата држи и оптоварувањето е стабилно; удвоено темпо значи дека нешто се сменило, а корисното прашање е што. Прво прочитајте ја содржината на дневникот за повторливи неуспеси, бидејќи циклусот за повторување е истовремено симптом и причина за обемот. Потоа проверете се ново овозможено, вклучително нивоата за отстранување грешки вклучени за време на инцидент и никогаш исклучени.

Држете ги резервните копии надвор од истиот волумен или прифатете дека еден полн диск ќе ја земе копијата со себе. Копија запишана на домаќинот што го штити не е план за враќање, а нејзиното задржување бара свој одговор.

Запишете што се задржува, каде, колку долго и кој го отстранува. Таа реченица е резултатот и единствениот дел од оваа работа што го преживува следното рестартирање.

Поврзани статии