Ինչպես սահմանափակել CPU-ի օգտագործումը CPULimit-ով Ubuntu Linux-ում
Այս էջում
- 1 Նախնական նշում
- 2 CPULimit տեղադրում
- 3 CPU-ի օգտագործման սահմանափակում
- 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՝ այն գնահատելու համար: Օրինակով պարզաբանենք.
- Ահա մի օրինակ, թե ինչպես օգտագործել ձեր պրոցեսորը մեկ միջուկային պրոցեսորի հավելվածով.
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-ի մեկ միջուկային բաշխման մեջ:
- Ահա մի օրինակ, թե ինչպես օգտագործել ձեր պրոցեսորը մի քանի միջուկային պրոցեսորի հավելվածով.
Ձեր պրոցեսորի միջուկը ստուգելու համար օգտագործեք հրամանը.
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