Cumu possu verificà l'usu di l'inode in HestiaCP? Chì causa l'incapacità di scrive fugliali ancu quandu ci hè assai spaziu di discu?

Un paru di ghjorni fà, un amicu m'hà mandatu un missaghju tardi di notte dicendu chì u so servitore s'era piantatu.

I sintomi specifichi eranu particularmente bizzarri: u situ web hà cuminciatu di colpu à lancià errori, i logs ùn pudianu esse scritti, è a creazione di novi fugliali indicava subitu chì u discu era pienu.

Ma quandu hà verificatu cù `df -h`, hè statu scunvurgiutu di scopre chì u discu avia chjaramente decine di gigabyte di spaziu liberu. Cumu puderia esse pienu ?

Li aghju dettu subitu: "Fratellu, ùn site micca solu pienu di spaziu di almacenamentu, u vostru Inode hè sovraccaricu".

Hà rispostu cù un puntu interrogativu: Chì ghjè esattamente un Inode?

In fatti, assai persone reagiscenu esattamente cum'è ellu quandu sò cascati per a prima volta in sta trappula, perchè nimu in a scola ùn li hà mai insignatu ste cose.

Chiarifichemu prima ciò chì hè un Inode.

Pensate à ella cum'è una scheda d'indice di biblioteca, è serà faciule da capisce.

U spaziu di discu hè cum'è una libreria; quanti libri pudete mette dipende da a so capacità, ciò chì hè faciule da capisce per tutti.

Un inode hè cum'è una carta d'indice per ogni libru, chì registra u so nome, a so situazione è quale l'hà spustatu.

In Linux , ogni schedariu è ogni cartulare deve occupà un inode, ùn importa micca quantu chjucu sia u schedariu.

Ancu s'ellu hè un schedariu viotu, u sistema cunsumerà sempre una carta d'indice per questu.

U sistema hà un limite à u numeru tutale di fugliali ch'ellu pò creà; questu limite hè u numeru tutale di innodi.

Una volta chì l'inode hè adupratu, ancu s'è u vostru discu hà sempre centinaie di gigabyte di spaziu liberu, u sistema operativu si rifiuterà di creà novi fugliali.

I logs ùn ponu esse scritti, a cache ùn pò esse creata, è u situ web si blocca cumpletamente - hè a scena bizzarra chì state assistendu.

Onestamente, sta hè una situazione veramente difficiule perchè u missaghju d'errore hè mandatu da una locu chì ùn state micca guardendu.

U primu truccu hè di utilizà `df -i` per ottene una rapida panoramica.

In l'ambiente HestiaCP , pudete simpricimenti accede à u terminal per SSH è scrive sta linea.

df -i

Elencherà u numeru tutale di innodi, u numeru utilizatu è u numeru restante per ogni partizione muntata.

In l'output, ci hè una colonna chjamata IUse%, chì hè a metrica chjave chì duvete tene d'ochju.

Sè l'IUse% di una partizione righjunghji u 100%, ancu s'è quella partizione hà sempre assai spaziu nant'à u discu, ùn puderà più creà novi fugliali o logs.

Aghju suggeritu à u mo amicu di eseguisce questu prima, affinchì pudessi individuà se u prublema era cù l'Inode in un secondu , chì saria assai più veloce chè indovinà.

U secondu metudu hè di utilizà `find` per cuntà precisamente un utilizatore specificu.

Dopu avè cunfirmatu chì u prublema hè cù l'innode, u prossimu passu hè di scopre quale cunsuma eccessivamente a carta di l'indice.

HestiaCP hà un cartulare principale separatu per ogni utilizatore. Pudete simpricimenti cuntà u numeru tutale di fugliali è cartulari sottu à un cartulare specificu di u situ web.

find /home/用户名/web/你的域名/public_html | wc -l

Rimpiazzate "nome utilizatore" è "u vostru nome di duminiu" cù u vostru percorsu attuale. U numeru puru restituitu da u terminal hè a somma di tutti i fugliali è cartulari in quellu cartulare.

Ogni schedariu o cartulare currisponde à un inode, dunque questu numeru rapprisenta l'usu di l'inode.

Cumu possu verificà l'usu di l'inode in HestiaCP? Chì causa l'incapacità di scrive fugliali ancu quandu ci hè assai spaziu di discu?

Sè vo site troppu pigru per verificà ognunu individualmente è vulete vede a distribuzione di l'usu di tutti l'utilizatori in tuttu u situ in una volta, ci hè ancu un cumandamentu di ciclu unicu.

for d in /home/*; do echo -n "$d: "; find "$d" 2>/dev/null | wc -l; done

Questa linea stamperà u numeru tutale di fugliali in ogni cartulare d'utilizatore sottu /home, rendendu faciule di individuà quale cartulare d'utilizatore hà un numeru anormalmente altu di fugliali.

A terza strategia hè di identificà i sottudirectori chì cunsumanu u più iodu.

Calchì volta sapete chì un situ web hà valori Inode ridiculamente alti, ma ùn pudete ancu capisce ciò chì hè sbagliatu cù u schermu pienu di fugliali.

In tali casi, avete bisognu di scavà un livellu più bassu per truvà sottocartelle chì cuntenenu un gran numeru di picculi fugliali, cum'è i cartulari di cache, i cartulari di sessione è i cartulari di log - queste sò e zone più problematiche.

find /home/用户名/web/你的域名/public_html -type d -exec sh -c 'echo -n "{}: "; find "{}" -maxdepth 1 | wc -l' \; | sort -n -r -k 2 | head -n 10

Stu cumandamentu elencherà i primi 10 sottucartelle chì cunsumanu u più grande numeru di fugliali.

U percorsu in cima di a lista hè induve un gran numeru di picculi fugliali sò raggruppati inseme.

Aghju dettu à u mo amicu ch'ellu era probabilmente qualchì plugin di caching chì generava secretamente picculi fugliali, è eseguisce sta linea u cunfermerebbe basicamente.

U quartu cunsigliu hè di verificà u limite di quota cù repquota.

Sè u vostru servitore hà e quote di u sistema di fugliali Linux attivate, pudete guardà u prublema da una perspettiva diversa.

repquota -a

Stu cumandamentu tirerà u limite di fugliali è l'usu attuale di i fugliali per tutti l'utilizatori.

Fate attenzione à a sezzione Limiti di File in l'output; a colonna utilizata indica quanti file sò stati utilizati.

E colonne "soft" è "hard" rapprisentanu i limiti soft è hard. Una volta chì "used" ghjunghje à "hard", u sistema rifiuterà direttamente di creà novi fugliali.

Questa hè una storia cumpletamente diversa da quantu spaziu vi resta nant'à u vostru discu.

Per cunclude, culleghemu i punti di l'inchiesta.

Tornemu à l'amicu chì hà fattu cascà u servitore in piena notte à l'iniziu.

Hà seguitu i quattru passi chì aghju discrittu, cuminciendu cù `df -i` per cunfirmà chì l'inode era veramente pienu.

Dopu, aduprendu u metudu di ricerca, hè statu truvatu chì un cartulare di cache di un vechju situ web abbandunatu generava picculi fugliali cum'è pazzi.

Infine, a verificazione di `repquota` hà cunfirmatu ch'ellu avia effettivamente righjuntu u limite rigidu.

Dopu avè sbulicatu quellu mucchiu di cache spazzatura, u situ web hè tornatu subitu in vita.

Dunque, a prossima volta chì vi scuntrate cù sta strana situazione induve "u discu hà chjaramente spaziu ma ùn pudete micca scrive fugliali", ùn vi precipitate micca à aghjunghje un discu duru.

Prima, aduprate `df -i` per dà un'ochjata à l'inode; a verità puderia esse benissimo piattata in quella carta d'indice chì ùn avete mai nutatu prima.

Credu sinceramente chì sti picculi pezzi di sensu cumunu piattati in u core di u sistema sò più utili chè memorizà centu liste di ottimizazione.

发表 评论

您的邮箱地址不会被公开。必填项已用*标注

Libru di Top