CPUTool - Punguza na Udhibiti Matumizi ya CPU ya Mchakato Wowote katika Linux


Mojawapo ya maeneo muhimu chini ya zana za ufuatiliaji wa utendaji wa Linux ili kuweka jicho jinsi mambo yanavyoendelea kwenye mfumo.

Idadi ya zana hizi hutoa tu hali/takwimu za mfumo huku zingine chache hukupa njia za kudhibiti utendakazi wa mfumo. Chombo kimoja kama hicho kinachoitwa CPUTool.

CPUTool ni zana rahisi lakini yenye nguvu ya mstari wa amri ya kuzuia na kudhibiti utumiaji wa CPU ya mchakato wowote kwa kikomo fulani na inaruhusu kukatizwa kwa mchakato ikiwa mfumo unapakia kupita kiwango kilichobainishwa.

Ili kupunguza matumizi ya CPU, cputool hutuma ishara za SIGSTOP na SIGCONT kwa michakato na hii inabainishwa na upakiaji wa mfumo. Inategemea /proc pseudo-filesystem kusoma PID na hatua zao za utumiaji za CPU.

Inaweza kutumika kupunguza matumizi ya CPU au upakiaji wa mfumo unaoathiriwa na mchakato mmoja au kikundi cha michakato hadi kikomo fulani na/au kusimamisha michakato ikiwa upakiaji wa mfumo utavuka kizingiti.

Sakinisha CPUTool ili Kupunguza Matumizi ya CPU na Wastani wa Kupakia

CPUTool inapatikana tu kusakinisha kwenye Debian/Ubuntu na viasili vyake kutoka kwa hazina za mfumo chaguomsingi kwa kutumia zana ya kudhibiti kifurushi.

$ sudo apt install cputool

Sasa hebu tuangalie jinsi cputool inavyofanya kazi kweli. Ili kuonyesha yote, tutaendesha dd amri ambayo inapaswa kusababisha asilimia kubwa ya CPU, nyuma na kuonyesha PID yake.

# dd if=/dev/zero of=/dev/null &

Ili kufuatilia matumizi ya CPU tunaweza kutumia zana za kutazama ambazo huturuhusu kuona hali iliyosasishwa mara kwa mara ya muda halisi ya michakato inayoendeshwa ya mfumo wa Linux:

# top

Kutoka kwa matokeo yaliyo hapo juu, tunaweza kuona kwamba dd amri ina asilimia kubwa zaidi ya muda wa CPU 99.7%) Sasa tunaweza kuzuia hili kwa kutumia cputool kama inavyoonyeshwa hapa chini.

Alama ya --cpu-limit au -c hutumika kuweka asilimia ya matumizi kwa mchakato au kikundi cha michakato na -p kubainisha. PID. Amri ifuatayo itaweka kikomo kwa dd amri (PID 8275) hadi 50% ya matumizi ya msingi mmoja wa CPU:

# cputool --cpu-limit 50 -p 8275 

Baada ya kuendesha cputool, tunaweza kuangalia matumizi mapya ya CPU kwa mchakato (PID 8275) mara nyingine tena. Sasa matumizi ya CPU kwa mchakato wa dd inapaswa kuanzia (49.0% -52.0%).

# top

Ili kuweka kikomo zaidi matumizi ya dd ya CPU hadi 20%, tunaweza kuendesha cputool kwa mara ya pili:

# cputool --cpu-limit 20 -p 8275 

Kisha angalia mara moja kutumia zana kama vile kutazama kama hii (matumizi ya CPU kwa dd sasa inapaswa kuanzia 19.0% -22.0% au zaidi ya hii):

# top

Kumbuka kuwa ganda halitarajii ingizo lolote la mtumiaji wakati cputool inafanya kazi; kwa hiyo anakuwa hana majibu. Ili kuiua (hii itasitisha oparesheni ya kizuizi cha matumizi ya CPU), bonyeza Ctrl + C.

Muhimu, kutaja kikundi cha mchakato (mpango mmoja na matukio kadhaa yanayoendesha kila moja na PID tofauti) kwa mfano seva ya wavuti ya HTTP:

# pidof apache2
9592 3643 3642 3641 3640 3638 3637 1780

Tumia -P bendera kama hii:

# cputool --cpu-limit 20 -P 1780

Chaguo la -l linatumika kubainisha kiwango cha juu cha mzigo ambacho mfumo unaweza kwenda ingawa kwa mchakato au kikundi cha mchakato kuendelea kufanya kazi. Tunaweza kutumia thamani ya sehemu (k.m. 2.5).

Mfano hapa chini unamaanisha endesha rsync kwa nakala rudufu ya ndani tu wakati upakiaji wa mfumo hauzidi 3.5:

# cputool --load-limit 3.5 --rsync -av /home/tecmint /backup/`date +%Y-%m-%d`/

Kwa habari zaidi na matumizi, tazama ukurasa wa mtu wa CPUTool:

# man cputool

Angalia miongozo ifuatayo ya kutafuta maelezo ya CPU na ufuatiliaji wa utendaji wa CPU:

  1. Amri 9 Muhimu Kupata Taarifa za CPU kwenye Linux
  2. Cpustat - Inafuatilia Utumiaji wa CPU kwa Mchakato wa Uendeshaji katika Linux
  3. CoreFreq - Zana Yenye Nguvu ya Kufuatilia CPU kwa Mifumo ya Linux
  4. Tafuta Michakato ya Uendeshaji Bora kwa Kumbukumbu ya Juu na Matumizi ya CPU katika Linux

Kwa kumalizia, CPUTool inakuja kwa manufaa kwa usimamizi wa utendaji wa Linux. Shiriki maoni yako kuhusu nakala hii kupitia fomu ya maoni hapa chini.