HestiaCP бағдарламасында inode пайдалануын қалай тексеруге болады? Дискіде жеткілікті орын болған кезде де файлдарды жазу мүмкін еместігінің себебі неде?

Бірнеше күн бұрын бір досым түнде маған хабарлама жазып, серверінің істен шыққанын айтты.

Нақты белгілер ерекше болды: веб-сайт кенеттен қателер жібере бастады, журналдарды жазу мүмкін болмады және жаңа файлдарды жасау дискінің толғанын бірден білдірді.

Бірақ ол df -h тіркесімі арқылы тексергенде, дискіде ондаған гигабайт бос орын бар екенін анықтап, таң қалды. Ол қалай толы болуы мүмкін?

Мен оған сол жерде: «Бауырым, сенде тек сақтау орны ғана емес, Inode-ың да шамадан тыс жүктелген», - дедім.

Ол сұрақ белгісімен жауап берді: Инод дегеніміз не?

Шын мәнінде, көптеген адамдар бұл тұзаққа алғаш түскенде дәл солай әрекет етті, өйткені мектепте ешкім оларға бұл нәрсені үйретпеген.

Алдымен Inode деген не екенін анықтап алайық.

Оны кітапхананың индекс картасы деп елестетіңіз, сонда түсіну оңай болады.

Дискілік кеңістік кітап сөресі сияқты; оған қанша кітап қоюға болатыны оның сыйымдылығына байланысты, бұл әркімге түсінікті.

Инод әрбір кітаптың атауын, орналасқан жерін және оны кім жылжытқанын жазып алатын индекс картасы сияқты.

Linux жүйесінде әрбір файл мен әрбір каталог, файл қаншалықты кішкентай болса да, инодты алуы керек.

Тіпті бос файл болса да, жүйе оған индекс картасын пайдаланады.

Жүйе жасай алатын файлдардың жалпы санына шектеу қояды; бұл шектеу интүйіндердің жалпы саны болып табылады.

Инод қолданылғаннан кейін, дискіңізде жүздеген гигабайт бос орын болса да, операциялық жүйе жаңа файлдар жасаудан бас тартады.

Журналдарды жазу мүмкін емес, кэшті жасау мүмкін емес және веб-сайт толығымен істен шығады — міне, сіз куә болып отырған таңқаларлық көрініс.

Шынымды айтсам, бұл өте қиын жағдай, себебі қате туралы хабарлама сіз қарамайтын жерден жіберіледі.

Бірінші әдіс - қысқаша шолу алу үшін df -i пайдалану.

HestiaCP ортасында сіз терминалға SSH жіберіп, осы жолды тере аласыз.

df -i

Онда әрбір орнатылған бөлім үшін интүйіндердің жалпы саны, пайдаланылған саны және қалған саны көрсетіледі.

Шығыста IUse% деп аталатын баған бар, ол сіз назар аударуыңыз керек негізгі метрика.

Егер бөлімнің IUse% мәні 100%-ға жетсе, тіпті сол бөлімде әлі де дискілік кеңістік жеткілікті болса да, ол енді жаңа файлдарды немесе журналдарды жасай алмайды.

Мен досыма алдымен осыны іске қосуды ұсындым, сонда мәселе Inode-да ма, жоқ па, бірден анықталады , бұл болжағаннан әлдеқайда жылдам болар еді.

Екінші әдіс - белгілі бір пайдаланушыны дәл санау үшін «табу» функциясын пайдалану.

Мәселе иннодта екенін растағаннан кейін, келесі қадам - ​​индекс картасын кім шамадан тыс тұтынып жатқанын анықтау.

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

Бұл пәрмен барлық пайдаланушылар үшін файл шегін және нақты файлды пайдалануды көрсетеді.

Шығыстағы Файл шектеулері бөліміне мұқият назар аударыңыз; пайдаланылған бағанда қанша файл пайдаланылғанын көрсетеді.

«Жұмсақ» және «қатты» бағандар жұмсақ және қатты шектеу шектерін білдіреді. «Қолданылған» «қатты» деңгейге жеткеннен кейін, жүйе жаңа файлдарды жасаудан тікелей бас тартады.

Бұл сіздің дискіңізде қанша орын қалдырғаныңыздан мүлдем басқа әңгіме.

Қорытындылай келе, тергеудің негізгі нүктелерін байланыстырайық.

Түннің басында серверді істен шығарған досымызға оралайық.

Ол инодтың шынымен толы екенін растау үшін мен сипаттаған төрт қадамды орындады, `df -i` қадамынан бастап.

Содан кейін, find функциясын пайдаланып, біз кішкентай файлдарды жасайтын тасталған ескі веб-сайттың кэш каталогын таптық.

Соңында, «репквотаны» тексеру оның шынымен де шектеу шегіне жеткенін растады.

Қоқыс кэшін тазалағаннан кейін, веб-сайт бірден қайта жанданды.

Сондықтан келесі жолы «дискіде орын бар, бірақ файлдарды жаза алмайсыз» деген оғаш жағдайға тап болғанда, қатты дискіні қосуға асықпаңыз.

Алдымен, инодты қарау үшін `df -i` пайдаланыңыз; шындық сіз бұрын-соңды байқамаған индекс картасында жасырын болуы мүмкін.

Жүйенің өзегінде жасырылған осы кішкентай ақыл-ой бөлшектері жүздеген оңтайландыру тізімін жаттап алудан гөрі пайдалырақ деп шын жүректен сенемін.

Чен Вэйлиангтың блогында ( https://www.chenweiliang.com/ ) бөлісілген «HestiaCP бағдарламасында Inode пайдалануын қалай тексеруге болады? Дискідегі бос орынның болуына, бірақ файлдарды жазу мүмкін еместігіне кінәлі» мақаласы сізге пайдалы болады деп үміттенемін.

Осы мақаланың сілтемесін бөлісуден тартынбаңыз: https://www.chenweiliang.com/cwl-34619.html

Көбірек жасырын трюктердің құлпын ашу үшін🔑 Telegram каналымызға қосылыңыз!

Бөлісу және ұнаса лайк! Сіздің бөлісулеріңіз бен лайктарыңыз біздің тұрақты мотивациямыз болып табылады!

 

Пікірлер

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

Топ Scroll