HestiaCP дээр inode хэрэглээг хэрхэн шалгах вэ? Дискний зай хангалттай байсан ч файл бичих боломжгүй байгаагийн шалтгаан юу вэ?

Хэдэн өдрийн өмнө нэг найз маань шөнө оройтож надад сервер нь гацсан гэж мессеж бичсэн.

Тодорхой шинж тэмдгүүд нь маш хачин байсан: вэбсайт гэнэт алдаа гаргаж эхэлсэн, лог бичих боломжгүй болсон, мөн шинэ файл үүсгэхэд диск дүүрсэн гэсэн дохио шууд ирдэг байв.

Гэхдээ тэр `df -h`-г шалгаж үзэхэд дискэн дээр хэдэн арван гигабайтын сул зай байгааг олж хараад цочирдсон. Яаж дүүрсэн байж болох вэ?

Би тэр даруй түүнд "Ах аа, чи зүгээр л хадгалах зайгаар дүүрчихсэн юм биш, чиний Inode хэт ачаалалтай байна" гэж хэлсэн.

Тэр асуултын тэмдэгтэйгээр хариулав: Инод гэж яг юу вэ?

Үнэндээ олон хүн анх энэ урхинд орохдоо түүнтэй яг адилхан хариу үйлдэл үзүүлдэг, учир нь сургуульд хэн ч тэдэнд энэ зүйлийг зааж байгаагүй.

Эхлээд Inode гэж юу болохыг тодруулцгаая.

Үүнийг номын сангийн индекс карт гэж бодоорой, тэгвэл ойлгоход хялбар байх болно.

Дискний зай нь номын тавиуртай адил; түүн дээр хэдэн ном байрлуулах нь түүний багтаамжаас хамаардаг бөгөөд үүнийг хүн бүр ойлгоход хялбар байдаг.

Инод нь ном бүрийн нэр, байршил, хэн зөөсөн тухай тэмдэглэгээтэй индекс карттай адил юм.

Линукс дээр файл болон сан бүр нь хичнээн жижиг байсан ч хамаагүй inode-г эзлэх ёстой.

Хоосон файл байсан ч систем үүнд зориулж индекс картыг ашигласаар байх болно.

Систем нь үүсгэж болох файлуудын нийт тоонд хязгаарлалттай байдаг; энэ хязгаар нь innode-ийн нийт тоо юм.

Инод ашиглагдаж дууссаны дараа таны диск хэдэн зуун гигабайтын хоосон зайтай байсан ч үйлдлийн систем шинэ файл үүсгэхээс татгалзах болно.

Лог бичиж чадахгүй, кэш үүсгэж чадахгүй, вэбсайт бүрэн гацдаг - энэ бол таны харж байгаа хачин дүр зураг юм.

Үнэнийг хэлэхэд энэ бол үнэхээр төвөгтэй нөхцөл байдал юм, учир нь алдааны мессеж таны харахгүй байгаа газраас илгээгдсэн байна.

Эхний арга бол хурдан тойм авахын тулд `df -i` ашиглах явдал юм.

HestiaCP орчинд та терминал руу SSH хийж энэ мөрийг бичиж болно.

df -i

Энэ нь холбогдсон хуваалт бүрийн нийт индозын тоо, ашигласан тоо болон үлдсэн тоог жагсаах болно.

Гаралтад IUse% гэсэн багана байгаа бөгөөд энэ нь таны анхаарах ёстой гол хэмжүүр юм.

Хэрэв хуваалтын IUse% нь 100%-д хүрвэл, хэдийгээр тухайн хуваалт хангалттай дискний зайтай хэвээр байсан ч шинэ файл эсвэл бүртгэл үүсгэх боломжгүй болно.

Би найздаа үүнийг эхлээд ажиллуулахыг санал болгосон бөгөөд ингэснээр асуудал Inode-д байгаа эсэхийг хэдхэн секундын дотор тодорхойлох боломжтой бөгөөд энэ нь таахаас хамаагүй хурдан байх болно.

Хоёр дахь арга нь тодорхой хэрэглэгчийг нарийн тоолохын тулд `find`-г ашиглах явдал юм.

Асуудал нь innode-д байгааг баталгаажуулсны дараа дараагийн алхам бол индекс картыг хэн хэт их хэрэглэж байгааг олж мэдэх явдал юм.

HestiaCP нь хэрэглэгч бүрийн хувьд тусдаа гэрийн сантай байдаг. Та тодорхой вэбсайтын сан доторх файл болон сангийн нийт тоог тоолж болно.

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

"Хэрэглэгчийн нэр" болон "таны домэйн нэр"-ийг өөрийн жинхэнэ замаар солино уу. Терминалын буцаасан цэвэр тоо нь тухайн сан дахь бүх файл болон хавтасны нийлбэр юм.

Файл эсвэл сан бүр нэг инодтой тохирч байгаа тул энэ тоо нь инодын хэрэглээг илэрхийлнэ.

HestiaCP дээр inode хэрэглээг хэрхэн шалгах вэ? Дискний зай хангалттай байсан ч файл бичих боломжгүй байгаагийн шалтгаан юу вэ?

Хэрэв та тус бүрийг нэг бүрчлэн шалгахаас залхуурч, сайтын бүх хэрэглэгчдийн хэрэглээний тархалтыг нэг дор харахыг хүсвэл ганц давталтын команд бас бий.

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

Энэ мөр нь хэрэглэгчийн сан бүрийн нийт файлын тоог /home дор хэвлэх бөгөөд ингэснээр аль хэрэглэгчийн сан хэвийн бус олон тооны файлтай байгааг олоход хялбар болно.

Гурав дахь стратеги бол хамгийн их иодыг хэрэглэдэг дэд сангуудыг тодорхойлох явдал юм.

Заримдаа та вэбсайтын Inode утга нь маш өндөр байгааг мэддэг ч дэлгэц дүүрэн файлын юу нь буруу байгааг олж чадахгүй хэвээр байх болно.

Ийм тохиолдолд та кэшийн сан, сессийн сан, бүртгэлийн сан гэх мэт олон тооны жижиг файлуудыг агуулсан дэд хавтаснуудыг олохын тулд нэг түвшинг доош ухаж үзэх хэрэгтэй бөгөөд эдгээр нь хамгийн асуудалтай хэсгүүд юм.

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

Энэ команд нь хамгийн их файл ашигладаг шилдэг 10 дэд хавтасыг жагсаах болно.

Жагсаалтын хамгийн дээд хэсэгт байгаа зам нь олон тооны жижиг файлуудыг нэгтгэсэн газар юм.

Би найздаа энэ нь жижиг файлуудыг нууцаар үүсгэдэг ямар нэгэн кэш хийх залгаас байж магадгүй гэж хэлсэн бөгөөд энэ мөрийг ажиллуулах нь үндсэндээ үүнийг батлах болно.

Дөрөв дэх зөвлөгөө бол repquota ашиглан квотын хязгаарыг шалгах явдал юм.

Хэрэв таны сервер Linux файлын системийн квотыг идэвхжүүлсэн бол та асуудлыг өөр өнцгөөс харж болно.

repquota -a

Энэ тушаал нь бүх хэрэглэгчдийн файлын хязгаар болон бодит файлын хэрэглээг нэмэгдүүлэх болно.

Гаралтын файлын хязгаар хэсэгт анхаарлаа хандуулаарай; ашигласан багана нь хэдэн файл ашигласныг заана.

"Зөөлөн" ба "хатуу" багана нь зөөлөн ба хатуу хязгаарын босгыг илэрхийлнэ. "Ашигласан" утга "хатуу" хэмжээнд хүрмэгц систем шинэ файл үүсгэхээс шууд татгалзана.

Энэ бол таны дискэн дээр хэр их зай үлдсэнээс огт өөр түүх юм.

Дүгнэж хэлэхэд, мөрдөн байцаалтын цэгүүдийг холбож үзье.

Шөнө дунд серверийг эвдсэн найзынхаа тухай яриа руу буцаж оръё.

Тэр миний тайлбарласан дөрвөн алхмыг дагаж, inode үнэхээр дүүрсэн эсэхийг баталгаажуулахын тулд `df -i`-с эхлэн хийсэн.

Дараа нь find ашиглан бид жижиг файлуудыг үүсгэж байсан орхигдсон хуучин вэбсайтын кэш санг оллоо.

Эцэст нь, 'repquota'-г шалгахад энэ нь үнэхээр хатуу хязгаарт хүрсэн болохыг баталсан.

Хог хаягдлын овоолгыг цэвэрлэсний дараа вэбсайт тэр даруй сэргэв.

Тиймээс дараагийн удаа "дискэнд зай байгаа нь илт боловч та файл бичиж чадахгүй" гэсэн хачин нөхцөл байдалтай тулгарахдаа хатуу диск нэмэх гэж яарах хэрэггүй.

Эхлээд inode-г харахын тулд `df -i` ашиглана уу; үнэн нь таны өмнө нь хэзээ ч анзаарч байгаагүй индекс картанд нуугдсан байж магадгүй юм.

Системийн гол цөмд нуугдсан эдгээр энгийн ойлголтууд нь зуун оновчлолын жагсаалтыг цээжлэхээс илүү хэрэгтэй гэдэгт би чин сэтгэлээсээ итгэдэг.

Чен Вэйлиангийн блог ( https://www.chenweiliang.com/ ) дээр хуваалцсан "HestiaCP дээр Inode хэрэглээг хэрхэн шалгах вэ? Дискний зай байгаа эсэх, гэхдээ файл бичих боломжгүй байгаагийн шалтгаан" нийтлэл танд тус болно гэж найдаж байна.

Энэ нийтлэлийн холбоосыг хуваалцахаас бүү эргэлзээрэй: https://www.chenweiliang.com/cwl-34619.html

Илүү олон далд заль мэхийг нээхийн тулд манай Telegram сувагт нэгдэнэ үү!

Хэрэв танд таалагдвал лайк дарж, хуваалцаарай! Таны шэйр, лайк бол бидний байнгын урам зориг юм!

 

发表 评论

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

TOP хүртэл гүйлгэж