Jinsi ya Kufuatilia Matumizi ya Mfumo, Kukatika na Kusuluhisha Seva za Linux - Sehemu ya 9


Ingawa Linux inategemewa sana, wasimamizi wa mfumo wenye busara wanapaswa kutafuta njia ya kuweka jicho kwenye tabia na matumizi ya mfumo wakati wote. Kuhakikisha muda wa nyongeza unaokaribiana na 100% iwezekanavyo na upatikanaji wa rasilimali ni mahitaji muhimu katika mazingira mengi. Kuchunguza hali ya zamani na ya sasa ya mfumo kutaturuhusu kuona na kuna uwezekano mkubwa wa kuzuia matatizo yanayoweza kutokea.

Tunakuletea Mpango wa Uthibitishaji wa Msingi wa Linux

Katika makala haya tutawasilisha orodha ya zana chache ambazo zinapatikana katika ugawaji mwingi wa juu ili kuangalia hali ya mfumo, kuchanganua kukatika, na kutatua masuala yanayoendelea. Hasa, kati ya maelfu ya data inayopatikana, tutazingatia CPU, nafasi ya kuhifadhi na utumiaji wa kumbukumbu, usimamizi wa mchakato wa kimsingi, na uchanganuzi wa kumbukumbu.

Matumizi ya Nafasi ya Hifadhi

Kuna amri 2 zinazojulikana katika Linux ambazo hutumika kukagua matumizi ya nafasi ya hifadhi: df na du.

Ya kwanza, df (ambayo inasimamia bila diski), kwa kawaida hutumika kuripoti matumizi ya jumla ya nafasi ya diski kwa mfumo wa faili.

Bila chaguo, df inaripoti matumizi ya nafasi ya diski kwa baiti. Kwa -h bendera itaonyesha maelezo sawa kwa kutumia MB au GB badala yake. Kumbuka kuwa ripoti hii pia inajumuisha saizi ya jumla ya kila mfumo wa faili (katika vizuizi 1-K), nafasi zisizolipishwa na zinazopatikana, na sehemu ya kupachika ya kila kifaa cha kuhifadhi.

# df
# df -h

Hiyo ni nzuri kwa hakika - lakini kuna kizuizi kingine ambacho kinaweza kufanya mfumo wa faili kutoweza kutumika, na hiyo inaisha ingizo. Faili zote kwenye mfumo wa faili zimechorwa kwa ingizo ambalo lina metadata yake.

# df -hTi

unaweza kuona idadi ya ingizo zilizotumika na zinazopatikana:

Kulingana na picha iliyo hapo juu, kuna 146 ingizo zilizotumika (1%) ndani /home, ambayo ina maana kwamba bado unaweza kuunda faili 226K katika mfumo huo wa faili.

Kumbuka kuwa unaweza kukosa nafasi ya kuhifadhi muda mrefu kabla ya kukosa ingizo, na kinyume chake. Kwa sababu hiyo, unahitaji kufuatilia sio tu matumizi ya nafasi ya kuhifadhi lakini pia idadi ya ingizo zinazotumiwa na mfumo wa faili.

Tumia amri zifuatazo kupata faili tupu au saraka (ambazo zinachukua 0B) zinazotumia ingizo bila sababu:

# find  /home -type f -empty
# find  /home -type d -empty

Pia, unaweza kuongeza -delete bendera mwishoni mwa kila amri ikiwa pia unataka kufuta faili na saraka hizo tupu:

# find  /home -type f -empty --delete
# find  /home -type f -empty

Utaratibu uliopita ulifuta faili 4. Wacha tuangalie tena nambari ya nodi zilizotumika/zinazopatikana tena ndani/nyumbani:

# df -hTi | grep home

Kama unavyoona, kuna 142 ingizo zilizotumika sasa (4 chini ya hapo awali).

Ikiwa matumizi ya mfumo fulani wa faili ni juu ya asilimia iliyotanguliwa, unaweza kutumia du (fupi kwa matumizi ya diski) ili kujua ni faili gani zinazochukua nafasi zaidi.

Mfano umetolewa kwa /var, ambayo kama unavyoona kwenye picha ya kwanza hapo juu, inatumika kwa asilimia 67%.

# du -sch /var/*

Kumbuka: Kwamba unaweza kubadili saraka yoyote kati ya zilizo hapo juu ili kujua ni nini hasa kilicho ndani yake na ni kiasi gani kila kitu kinachukua. Kisha unaweza kutumia maelezo hayo kufuta baadhi ya faili ikiwa hazihitajiki au kupanua saizi ya kiasi cha kimantiki ikiwa ni lazima.

Soma Pia

  1. Amri 12 Muhimu \df Kuangalia Nafasi ya Disk
  2. Amri 10 Muhimu za du Kupata Matumizi ya Diski ya Faili na Saraka

Kumbukumbu na Matumizi ya CPU

Zana ya kawaida katika Linux ambayo hutumiwa kufanya ukaguzi wa jumla wa utumiaji wa CPU/kumbukumbu na usimamizi wa mchakato ni htop, lakini nimetulia juu kwa sababu imesakinishwa nje ya kisanduku katika usambazaji wowote wa Linux.

Kuanza juu, chapa tu amri ifuatayo kwenye mstari wa amri yako, na ubofye Ingiza.

# top

Wacha tuchunguze pato la kawaida la juu:

Katika safu ya 1 hadi 5 habari ifuatayo inaonyeshwa:

1. Wakati wa sasa (8:41:32 pm) na nyongeza (saa 7 na dakika 41). Mtumiaji mmoja tu ndiye ameingia kwenye mfumo, na wastani wa mzigo wakati wa dakika 1, 5, na 15 za mwisho, mtawaliwa. 0.00, 0.01, na 0.05 zinaonyesha kuwa kwa vipindi hivyo vya wakati, mfumo haukufanya kazi kwa 0% ya wakati huo (0.00: hakuna michakato iliyokuwa ikingojea CPU), kisha ilizidiwa na 1% (0.01: wastani wa michakato 0.01). walikuwa wakisubiri CPU) na 5% (0.05). Ikiwa chini ya 0 na nambari ndogo (0.65, kwa mfano), mfumo haukuwa na shughuli kwa 35% wakati wa dakika 1, 5, au 15 iliyopita, kulingana na mahali 0.65 inaonekana.

2. Kwa sasa kuna michakato 121 inayoendeshwa (unaweza kuona uorodheshaji kamili katika 6). Ni 1 pekee kati yao anayeendesha (juu katika kesi hii, kama unavyoona kwenye safu wima %CPU) na 120 waliosalia wanangoja chinichini lakini wamelala na watabakia katika hali hiyo hadi tuwaite. Je! Unaweza kuthibitisha hili kwa kufungua kidokezo cha mysql na kutekeleza hoja kadhaa. Utagundua jinsi idadi ya michakato inayoendeshwa inavyoongezeka.

Vinginevyo, unaweza kufungua kivinjari cha wavuti na kwenda kwa ukurasa wowote ambao unahudumiwa na Apache na utapata matokeo sawa. Bila shaka, mifano hii inadhani kuwa huduma zote mbili zimewekwa kwenye seva yako.

3. sisi (michakato ya muda inayoendesha mtumiaji na kipaumbele ambacho hakijarekebishwa), sy (michakato ya kernel ya muda), ni (michakato ya muda inayoendeshwa na mtumiaji yenye kipaumbele kilichorekebishwa), wa (muda wa kusubiri kukamilika kwa I/O), hi (muda unaotumika kuhudumia maunzi hukatizwa), si (muda unaotumika kuhudumia programu hukatizwa), st (wakati ulioibiwa kutoka kwa vm ya sasa na hypervisor - katika mazingira yaliyoboreshwa pekee).

4. Matumizi ya kumbukumbu ya kimwili.

5. Badilisha matumizi ya nafasi.

Kukagua kumbukumbu ya RAM na utumiaji wa kubadilishana unaweza pia kutumia amri ya bure.

# free

Bila shaka unaweza pia kutumia swichi za -m (MB) au -g (GB) ili kuonyesha maelezo sawa katika umbo linaloweza kusomeka na binadamu:

# free -m

Kwa njia yoyote ile, unahitaji kufahamu ukweli kwamba kernel huhifadhi kumbukumbu nyingi iwezekanavyo na kuifanya ipatikane kwa michakato wanapoiomba. Hasa, mstari wa -/+ buffers/cache unaonyesha thamani halisi baada ya akiba hii ya I/O kuzingatiwa.

Kwa maneno mengine, kiasi cha kumbukumbu kinachotumiwa na michakato na kiasi kinachopatikana kwa michakato mingine (katika kesi hii, 232 MB iliyotumiwa na 270 MB inapatikana, kwa mtiririko huo). Wakati michakato inahitaji kumbukumbu hii, kernel itapunguza kiotomati ukubwa wa kache ya I/O.

Soma Pia: Amri 10 Muhimu ya bure Ili Kuangalia Matumizi ya Kumbukumbu ya Linux

Kuangalia kwa karibu Taratibu

Wakati wowote, kuna michakato mingi inayoendeshwa kwenye mfumo wetu wa Linux. Kuna zana mbili ambazo tutatumia kufuatilia michakato kwa karibu: ps na psree.

Kwa kutumia chaguo za -e na -f zikiwa zimeunganishwa kuwa moja (-ef) unaweza kuorodhesha michakato yote inayoendeshwa kwenye mfumo wako kwa sasa. Unaweza kusambaza pato hili kwa zana zingine, kama vile grep (kama ilivyofafanuliwa katika Sehemu ya 1 ya safu ya LFCS) ili kupunguza pato kwa mchakato wako unaotaka:

# ps -ef | grep -i squid | grep -v grep

Mchakato ulioorodheshwa hapo juu unaonyesha habari ifuatayo:

mmiliki wa mchakato, PID, Mzazi PID (mchakato wa mzazi), utumiaji wa kichakataji, wakati ambapo amri ilianza, tty (? inaonyesha kuwa ni daemoni), muda wa CPU uliokusanywa, na amri inayohusishwa na mchakato.

Walakini, labda hauitaji habari hiyo yote, na ungependa kuonyesha mmiliki wa mchakato, amri iliyoianzisha, PID na PPID yake, na asilimia ya kumbukumbu inayotumia sasa - kwa mpangilio huo, na kupanga kwa utumiaji wa kumbukumbu kwa mpangilio wa kushuka (kumbuka kuwa ps kwa chaguo-msingi hupangwa na PID).

# ps -eo user,comm,pid,ppid,%mem --sort -%mem

Ambapo ishara ya kutoa mbele ya %mem inaonyesha kupanga kwa mpangilio wa kushuka.

Iwapo kwa sababu fulani mchakato utaanza kuchukua rasilimali nyingi za mfumo na kuna uwezekano wa kuhatarisha utendakazi wa jumla wa mfumo, utataka kusimamisha au kusitisha utekelezaji wake ukipitisha mojawapo ya mawimbi yafuatayo ukitumia programu ya kuua. Sababu zingine kwa nini ungezingatia kufanya hivi ni wakati umeanzisha mchakato kwa mbele lakini unataka kuusimamisha na kuanza tena chinichini.

Wakati utekelezaji wa kawaida wa mchakato fulani unamaanisha kuwa hakuna towe litakalotumwa kwa skrini wakati inaendesha, unaweza kutaka kuianzisha nyuma (kuongeza ampersand mwishoni mwa amri).

process_name &

au,
Mara tu inapoanza kufanya kazi katika sehemu ya mbele, isitishe na uitume kwa mandharinyuma nayo

Ctrl + Z
# kill -18 PID

Tafadhali kumbuka kuwa kila usambazaji hutoa zana za kusimamisha/kuanzisha/kuanzisha upya/kupakia upya huduma za kawaida, kama vile huduma katika mifumo inayotegemea SysV au systemctl katika mifumo inayotegemea mfumo.

Ikiwa mchakato haujibu huduma hizo, unaweza kuua kwa nguvu kwa kutuma ishara ya SIGKILL kwake.

# ps -ef | grep apache
# kill -9 3821

Kwa hivyo.. Nini Kilifanyika/Kinatokea?

Wakati kumekuwa na aina yoyote ya hitilafu katika mfumo (iwe ni kukatika kwa umeme, hitilafu ya maunzi, ukatizaji uliopangwa au usiopangwa wa mchakato, au ukiukwaji wowote kabisa), kumbukumbu katika /var/log ni marafiki zako wa karibu ili kubaini kilichotokea au nini kinaweza kusababisha matatizo unayokumbana nayo.

# cd /var/log

Baadhi ya vipengee katika /var/log ni faili za maandishi za kawaida, vingine ni saraka, na bado vingine ni faili zilizobanwa za kumbukumbu zinazozungushwa (za kihistoria). Utataka kuangalia zile zilizo na makosa ya neno kwa jina lao, lakini kukagua zingine kunaweza kusaidia pia.

Fikiria hali hii. Wateja wako wa LAN hawawezi kuchapisha kwenye vichapishi vya mtandao. Hatua ya kwanza ya kutatua hali hii ni kwenda kwenye /var/log/cups saraka na kuona kilichomo.

Unaweza kutumia mkia amri ili kuonyesha mistari 10 ya mwisho ya faili ya error_log, au tail -f error_log kwa mwonekano wa wakati halisi wa kumbukumbu.

# cd /var/log/cups
# ls
# tail error_log

Picha ya skrini iliyo hapo juu hutoa habari muhimu ili kuelewa ni nini kinachoweza kusababisha suala lako. Kumbuka kuwa kufuata hatua au kusahihisha utendakazi wa mchakato bado kunaweza kusuluhisha shida ya jumla, lakini ikiwa utatumiwa tangu mwanzo kuangalia kumbukumbu kila wakati shida inapotokea (iwe ya ndani au ya mtandao) wewe. hakika utakuwa kwenye njia sahihi.

Ingawa hitilafu za maunzi zinaweza kuwa gumu kutatua, unapaswa kuangalia dmesg na kumbukumbu za ujumbe na grep kwa maneno yanayohusiana na sehemu ya maunzi inayodhaniwa kuwa na hitilafu.

Picha iliyo hapa chini imechukuliwa kutoka /var/log/messages baada ya kutafuta kosa la neno kwa kutumia amri ifuatayo:

# less /var/log/messages | grep -i error

Tunaweza kuona kwamba tuna tatizo la vifaa viwili vya kuhifadhi: /dev/sdb na /dev/sdc, ambavyo husababisha tatizo kwenye safu ya RAID.

Hitimisho

Katika makala haya tumechunguza baadhi ya zana zinazoweza kukusaidia kufahamu hali ya jumla ya mfumo wako kila wakati. Kwa kuongeza, unahitaji kuhakikisha kuwa mfumo wako wa uendeshaji na vifurushi vilivyosakinishwa vinasasishwa kwa matoleo yao ya hivi karibuni imara. Na kamwe, kamwe, usisahau kuangalia magogo! Kisha utaongozwa katika mwelekeo sahihi ili kupata suluhisho la uhakika kwa masuala yoyote.

Jisikie huru kuacha maoni yako, mapendekezo, au maswali -kama unayo- kwa kutumia fomu iliyo hapa chini.