Sut ydw i'n gwirio defnydd inode yn HestiaCP? Beth sy'n achosi'r anallu i ysgrifennu ffeiliau hyd yn oed pan fo digon o le ar y ddisg?

Ychydig ddiwrnodau yn ôl, anfonodd ffrind neges ataf yn hwyr yn y nos yn dweud bod ei weinydd wedi chwalu.

Roedd y symptomau penodol yn arbennig o rhyfedd: dechreuodd y wefan daflu gwallau yn sydyn, ni ellid ysgrifennu logiau, a byddai creu ffeiliau newydd yn rhoi gwybod ar unwaith bod y ddisg yn llawn.

Ond pan wiriodd gyda `df -h`, cafodd sioc o ddarganfod bod gan y ddisg ddegau o gigabytes o le gwag yn amlwg. Sut allai fod yn llawn?

Dywedais wrtho ar y pryd ac yno, "Brawd, nid yn unig wyt ti'n llawn lle storio, mae dy Inode wedi'i orlwytho."

Atebodd gyda marc cwestiwn: Beth yn union yw Inode?

Mewn gwirionedd, mae llawer o bobl yn ymateb yn union yr un ffordd ag y gwnaeth ef pan syrthiasant i'r fagl hon gyntaf, oherwydd ni ddysgodd neb yn yr ysgol y pethau hyn iddynt erioed.

Gadewch i ni egluro beth yw Inode yn gyntaf.

Meddyliwch amdano fel cerdyn mynegai llyfrgell, a bydd yn hawdd ei ddeall.

Mae lle disg fel silff lyfrau; mae faint o lyfrau y gallwch chi eu rhoi arno yn dibynnu ar ei gapasiti, sy'n hawdd i bawb ei ddeall.

Mae inode fel cerdyn mynegai ar gyfer pob llyfr, gan gofnodi ei enw, ei leoliad, a phwy a'i symudodd.

Yn Linux , rhaid i bob ffeil a phob cyfeiriadur feddiannu inode, ni waeth pa mor fach yw'r ffeil.

Hyd yn oed os yw'n ffeil wag, bydd y system yn dal i ddefnyddio cerdyn mynegai ar ei chyfer.

Mae gan y system derfyn ar gyfanswm y ffeiliau y gall eu creu; y terfyn hwn yw cyfanswm y nifer o fewnodau.

Unwaith y bydd yr inode wedi'i ddefnyddio i gyd, hyd yn oed os oes gan eich disg gannoedd o gigabytes o le rhydd o hyd, bydd y system weithredu yn gwrthod creu unrhyw ffeiliau newydd.

Ni ellir ysgrifennu logiau, ni ellir creu storfa, ac mae'r wefan yn chwalu'n llwyr—dyna'r olygfa ryfedd rydych chi'n ei gweld.

A dweud y gwir, mae hon yn sefyllfa anodd iawn oherwydd bod y neges gwall yn cael ei hanfon o leoliad nad ydych chi'n edrych arno.

Y tric cyntaf yw defnyddio `df -i` i gael trosolwg cyflawn.

Yn amgylchedd HestiaCP , gallwch chi SSH i'r derfynell a theipio'r llinell hon.

df -i

Bydd yn rhestru cyfanswm y mewnodau, y nifer a ddefnyddiwyd, a'r nifer sy'n weddill ar gyfer pob rhaniad wedi'i osod.

Yn yr allbwn, mae colofn o'r enw IUse%, sef y metrig allweddol y dylech gadw llygad arno.

Os yw IUse% rhaniad yn cyrraedd 100%, hyd yn oed os oes gan y rhaniad hwnnw ddigon o le ar y ddisg o hyd, ni fydd yn gallu creu unrhyw ffeiliau na logiau newydd mwyach.

Awgrymais i fy ffrind y dylai redeg hwn yn gyntaf, fel y gallai nodi a oedd y broblem gyda'r Inode mewn eiliad , a fyddai'n llawer cyflymach na dyfalu.

Yr ail ddull yw defnyddio `find` i gyfrif defnyddiwr penodol yn fanwl gywir.

Ar ôl cadarnhau bod y broblem gyda'r innode, y cam nesaf yw darganfod pwy sy'n defnyddio'r cerdyn mynegai yn ormodol.

Mae gan HestiaCP gyfeiriadur cartref ar wahân ar gyfer pob defnyddiwr. Gallwch chi gyfrif cyfanswm y ffeiliau a'r cyfeiriaduron o dan gyfeiriadur gwefan penodol yn syml.

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

Amnewidiwch "enw defnyddiwr" ac "eich enw parth" gyda'ch llwybr gwirioneddol. Y rhif pur a ddychwelir gan y derfynell yw swm yr holl ffeiliau a ffolderi yn y cyfeiriadur hwnnw.

Mae pob ffeil neu gyfeiriadur yn cyfateb i un inode, felly mae'r rhif hwn yn cynrychioli'r defnydd o'r inode.

Sut ydw i'n gwirio defnydd inode yn HestiaCP? Beth sy'n achosi'r anallu i ysgrifennu ffeiliau hyd yn oed pan fo digon o le ar y ddisg?

Os ydych chi'n rhy ddiog i wirio pob un yn unigol ac eisiau gweld dosbarthiad defnydd yr holl ddefnyddwyr ar draws y wefan gyfan ar unwaith, mae gorchymyn dolen hefyd.

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

Bydd y llinell hon yn argraffu cyfanswm y ffeiliau ym mhob cyfeiriadur defnyddiwr o dan /home, gan ei gwneud hi'n hawdd gweld pa gyfeiriadur defnyddiwr sydd â nifer anarferol o uchel o ffeiliau.

Y drydedd strategaeth yw nodi'r is-gyfeiriaduron sy'n defnyddio'r mwyaf o ïodin.

Weithiau rydych chi'n gwybod bod gan wefan werthoedd Inode uchel iawn, ond rydych chi'n dal ddim yn gallu darganfod beth sy'n bod ar y sgrin yn llawn ffeiliau.

Mewn achosion o'r fath, mae angen i chi ddrilio i lawr un lefel i ddod o hyd i is-ffolderi sy'n cynnwys nifer fawr o ffeiliau bach, fel cyfeiriaduron storfa, cyfeiriaduron sesiwn, a chyfeiriaduron log—dyma'r meysydd mwyaf problemus.

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

Bydd y gorchymyn hwn yn rhestru'r 10 is-ffolder gorau sy'n defnyddio'r nifer fwyaf o ffeiliau.

Y llwybr ar frig y rhestr yw lle mae nifer fawr o ffeiliau bach wedi'u clystyru gyda'i gilydd.

Dywedais wrth fy ffrind ei fod yn debyg o fod yn ategyn storio ffeiliau bach yn gyfrinachol, a byddai rhedeg y llinell hon yn ei gadarnhau yn y bôn.

Y pedwerydd awgrym yw gwirio'r terfyn cwota gan ddefnyddio repquota.

Os oes cwotâu system ffeiliau Linux wedi'u galluogi ar eich gweinydd, gallwch edrych ar y broblem o safbwynt gwahanol.

repquota -a

Bydd y gorchymyn hwn yn dangos y terfyn ffeiliau a'r defnydd ffeiliau gwirioneddol ar gyfer pob defnyddiwr.

Rhowch sylw manwl i'r adran Terfynau Ffeiliau yn yr allbwn; mae'r golofn a ddefnyddiwyd yn nodi faint o ffeiliau sydd wedi'u defnyddio.

Mae'r colofnau "meddal" a "chaled" yn cynrychioli'r trothwyon terfyn meddal a chaled. Unwaith y bydd "defnyddiwyd" yn cyrraedd "caled", bydd y system yn gwrthod creu ffeiliau newydd yn uniongyrchol.

Mae hon yn stori hollol wahanol i faint o le sydd gennych ar ôl ar eich disg.

I gloi pethau, gadewch i ni gysylltu dotiau'r ymchwiliad.

Gadewch i ni fynd yn ôl at y ffrind a wnaeth chwalu'r gweinydd yng nghanol y nos ar y dechrau.

Dilynodd y pedwar cam a ddisgrifiais, gan ddechrau gyda `df -i` i gadarnhau bod yr inode yn llawn mewn gwirionedd.

Yna, gan ddefnyddio find, fe wnaethon ni leoli cyfeiriadur storfa hen wefan wag a oedd yn cynhyrchu ffeiliau bach fel wallgof.

Yn olaf, cadarnhaodd gwirio `repquota` ei fod wedi cyrraedd y terfyn caled mewn gwirionedd.

Ar ôl clirio'r pentwr hwnnw o storfa sothach, daeth y wefan yn ôl yn fyw ar unwaith.

Felly'r tro nesaf y byddwch chi'n dod ar draws y sefyllfa ryfedd hon lle mae "lle ar y ddisg yn amlwg ond ni allwch chi ysgrifennu ffeiliau," peidiwch â rhuthro i ychwanegu gyriant caled.

Yn gyntaf, defnyddiwch `df -i` i edrych ar yr inode; mae'n bosibl iawn bod y gwir wedi'i guddio ar y cerdyn mynegai hwnnw nad ydych erioed wedi sylwi arno o'r blaen.

Rwy'n credu'n wirioneddol fod y darnau bach hyn o synnwyr cyffredin sydd wedi'u cuddio yng nghraidd y system yn fwy defnyddiol na chofio cant o restrau optimeiddio.

发表 评论

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

Sgroliwch i'r brig