Ինչպես սահմանափակել CPU-ի օգտագործումը CPULimit-ով Ubuntu Linux-ում


Այս էջում

  1. 1 Նախնական նշում
  2. 2 CPULimit տեղադրում
  3. 3 CPU-ի օգտագործման սահմանափակում 
  4. 4 Հղումներ

cpulimit հրամանը նախատեսված է սահմանափակելու CPU-ի օգտագործումը կոնկրետ գործընթացի վրա Linux-ում, ապահովելով, որ այն չի գերազանցում սահմանված շեմը: Սա կարող է հատկապես օգտակար լինել համակարգի ռեսուրսները կառավարելու և պրոցեսորի ժամանակի մենաշնորհից մեկ գործընթացի կանխարգելման համար, ինչը կարող է վատթարացնել համակարգի ընդհանուր կատարումը: Ցանկալի CPU-ի օգտագործման սահմանաչափը որպես տոկոս նշելով, օգտվողները կարող են սահմանափակումներ կիրառել ընթացիկ գործընթացների համար կամ սկսել նորերը՝ վերահսկվող պրոցեսորի սպառման ներքո: Գործիքը SIGSTOP և SIGCONT ազդանշաններ է ուղարկում թիրախային գործընթացին՝ դադարեցնելով և վերսկսելով դրանք՝ սահմանված օգտագործման սահմանաչափը պահպանելու համար:

1 Նախնական նշում

Այս ձեռնարկը փորձարկվել է Ubuntu 24.04-ում, սակայն այն աշխատում է նաև Ubuntu-ի ավելի հին թողարկումների վրա:

2 CPULimit տեղադրում

Նախ, մենք պետք է տեղադրենք cpulimit հետևյալ կերպ.

sudo apt update
sudo apt install cpulimit

3 CPU-ի օգտագործման սահմանափակում 

Այժմ մենք կստուգենք կոմունալը՝ CPU-ի օգտագործումը սահմանափակելու համար: Դրա համար մենք նախ կստուգենք CPU-ի օգտագործումը առանց CPUlimit-ի, այնուհետև կիրականացնենք CPUlimit՝ այն գնահատելու համար: Օրինակով պարզաբանենք.

  1. Ահա մի օրինակ, թե ինչպես օգտագործել ձեր պրոցեսորը մեկ միջուկային պրոցեսորի հավելվածով.
dd if=/dev/zero of=/dev/null &

Այնուհետև մենք կստուգենք պրոցեսորի օգտագործումը հրամանով.

top
top - 11:24:18 up 49 min,  1 user,  load average: 0.94, 1.02, 1.79
Tasks: 249 total,   2 running, 247 sleeping,   0 stopped,   0 zombie
%Cpu(s): 13.4 us, 11.6 sy,  0.0 ni, 74.9 id,  0.0 wa,  0.1 hi,  0.0 si,  0.0 st
KiB Mem:   1010540 total,   271652 used,   738888 free,    21760 buffers
KiB Swap:  1048572 total,        0 used,  1048572 free.   158204 cached Mem
  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                    
 1850 root      20   0    7224    616    520 R 100.0  0.1   1:20.33 dd                         
 1851 root      20   0   24952   1756   1180 R   0.3  0.2   0:00.03 top                        
    1 root      20   0   33480   2776   1456 S   0.0  0.3   0:05.31 init                       
    2 root      20   0       0      0      0 S   0.0  0.0   0:00.01 kthreadd        

Ինչպես տեսնում ենք, պրոցեսորի օգտագործումը հասել է 100%-ի: Այժմ մենք կօգտագործենք cpulimit-ը՝ CPU-ի օգտագործումը սահմանափակելու համար: Մենք կարող ենք այս գործընթացը բերել առաջին պլան՝ օգտագործելով fg հրամանը և չեղարկել այն CTRL+C-ով

fg

Այժմ մենք կարող ենք ստուգել cpulimit-ը` տեսնելու, թե արդյոք այն անում է այն, ինչ պետք է: Եկեք փորձարկենք այն հետևյալ կերպ.

cpulimit -l 30 dd if=/dev/zero of=/dev/null &

Այժմ մենք կստուգենք պրոցեսորի օգտագործումը վերին հրամանով.

top

Այժմ դուք կարող եք տեսնել, որ պրոցեսորի օգտագործումը նվազել է 100% -ից մինչև 33.8%, գրեթե 30%: Այսպիսով, մենք հաջողությամբ ստուգել ենք օգտակար cpulimit-ը, որը կարող է սահմանափակել պրոցեսորի սպառման օգտագործումը Ubuntu-ի մեկ միջուկային բաշխման մեջ:

  1. Ահա մի օրինակ, թե ինչպես օգտագործել ձեր պրոցեսորը մի քանի միջուկային պրոցեսորի հավելվածով.

Ձեր պրոցեսորի միջուկը ստուգելու համար օգտագործեք հրամանը.

nproc   

 Իմ դեպքում, պրոցեսորի միջուկների քանակը 4 էր:
Այժմ մենք կշարունակենք ստուգել CPU-ի օգտագործումը առանց cpulimit-ի բոլոր 4 միջուկներում հավելվածի համար հետևյալ կերպ.

for j in `seq 1 4`; do dd if=/dev/zero of=/dev/null & done

Այն կգործարկի հրամանը՝ օգտագործելով բոլոր միջուկները և արդյունքը կբերի հետևյալ կերպ՝


Այժմ ստուգեք պրոցեսորի օգտագործումը վերին հրամանով.

top


dd հրամանը սպառում է բոլոր միջուկների գրեթե 100% պրոցեսորը:  Հաջորդը, մենք կստուգենք հրամանը cpulimit կոմունալով: Դրա համար սպանեք dd հրամանի նախորդ հետքերը հետևյալ կերպ.

killall dd


Այժմ օգտագործեք cpulimit նույն հրամանով հետևյալ կերպ.

for j in `seq 1 4`; do cpulimit -l 20 dd if=/dev/zero of=/dev/null & done


Այժմ ստուգեք պրոցեսորի օգտագործումը cpulimit կոմունալ ծրագրի միջոցով:

top


Ինչպես տեսնում եք վերևում, պրոցեսորի օգտագործումը սահմանափակված է 100%-ից մինչև 20% գրեթե մի քանի միջուկային պրոցեսորների համար:

Շնորհավորում ենք: Մենք հաջողությամբ փորձարկել ենք cpulimit-ը Ubuntu-ում CPU-ի օգտագործումը սահմանափակելու համար:

4 Հղումներ

  •     Ubuntu: http://www.ubuntu.com/
  •     cpulimit : https://github .com/opsengine/cpulimit