Kā ierobežot laiku un atmiņu procesu procesiem Linux


Taimauta skripts ir noderīga resursu uzraudzības programma, lai ierobežotu Linux procesu laiku un atmiņas patēriņu. Tas ļauj palaist programmas kontrolētā veidā un izpildīt laika un atmiņas ierobežojumus, pārtraucot programmu, pārkāpjot šos parametrus.

Instalēšana nav nepieciešama, vienkārši izpildiet komandu kopā ar tās argumentiem, izmantojot taimauta programmu, un tā uzraudzīs komandas atmiņu un laika patēriņu, pārtraucot procesu, ja tā pārsniedz robežas, un paziņo jums ar iepriekš noteiktu ziņojumu.

Lai palaistu šo skriptu, Linux sistēmā ir jābūt instalētai Perl 5 un/proc failu sistēmai.

Lai Linux sistēmā pārbaudītu instalēto Perl versiju, izpildiet šo komandu.

$ perl -v

Pēc tam klonējiet taimauta krātuvi savā sistēmā, izmantojot parasto Linux komandu.

$ cd ~/bin
$ git clone https://github.com/pshved/timeout.git
$ cd timeout

Apskatīsim, kā darbojas taimauta skripts.

Šis pirmais piemērs parāda, kā ierobežot procesa atmiņas izmantošanu līdz 100 miljoniem virtuālās atmiņas, izmantojot karodziņu -m . Atmiņas noklusējuma vienība ir kilobaiti.

Šeit stress-ng komanda palaiž četrus virtuālās atmiņas stresa faktorus (VMS), kas kopā izmanto 40% no pieejamās atmiņas 10 minūtes. Tādējādi katrs stresa faktors izmanto 10% no pieejamās atmiņas.

$ ./timeout -m 100000 stress-ng --vm 4 --vm-bytes 40% -t 10m

Ņemot vērā iepriekš minētās noildzes komandas iznākumu, stresa-ng darba ņēmēja procesi tika pārtraukti tikai pēc 1,16 sekundēm. Tas ir tāpēc, ka VMS kopējais atmiņas patēriņš (438660 kilobaiti) ir lielāks par atļauto virtuālās atmiņas lietojumu stress-ng un tā pakārtotajiem procesiem.

Lai iespējotu procesa ierobežošanu laikā, izmantojiet karodziņu -t , kā parādīts.

$ ./timeout -t 4 stress-ng --vm 4 --vm-bytes 40% -t 10m

Iepriekš minētajā piemērā, kad stresa-ng CPU + SYS laiks pārsniedz noteikto vērtību 4, strādnieka procesi tiek nogalināti.

Varat arī vienlaikus ierobežot gan atmiņu, gan laiku šādi.

$ ./timeout -t 4 -m 100000 stress-ng --vm 4 --vm-bytes 40% -t 10m

Taimauts atbalsta arī dažas papildu opcijas, piemēram, --detect-hangups , kas ļauj atklāt Hangup.

$ ./timeout --detect-hangups -m 100000 stress-ng --vm 4 --vm-bytes 40% -t 10m

RSS (rezidentu kopas lieluma) atmiņas ierobežojumu varat pārraudzīt, izmantojot slēdzi --memlimit-rss vai -s .

$ ./timeout -m 100000 -s  stress-ng --vm 4 --vm-bytes 40% -t 10m

Turklāt, lai atgrieztu procesa izejas kodu vai signālu + 128, izmantojiet opciju --confess vai -c , kā parādīts.

$ ./timeout -m 100000 -c  stress-ng --vm 4 --vm-bytes 40% -t 10m

Lai iegūtu papildinformāciju un lietošanas piemēru, skatiet taimauta Github repozitoriju: https://github.com/pshved/timeout.

Iespējams, ka šie saistītie raksti būs vienlīdz noderīgi:

  1. Kā atrast 15 populārākos procesus, izmantojot atmiņu ar “top” pakešrežīmā
  2. CPUTool - ierobežojiet un kontrolējiet jebkura procesa procesoru Linux operētājsistēmā
  3. Kā ierobežot CPU izmantošanu procesam Linux ar CPULimit rīku

Taimauta skripts ir vienkārša resursu uzraudzības programma, kas būtībā ierobežo Linux procesu un laika patēriņu. Jūs varat sniegt mums atsauksmes par noildzes skriptu, izmantojot zemāk esošo komentāru veidlapu.