Bii O ṣe le Diwọn Aago ati Lilo Iranti ti Awọn ilana ni Lainos


Iwe afọwọkọ akoko jẹ eto ibojuwo ohun elo wulo fun didi akoko ati agbara iranti ti awọn ilana ni Lainos. O fun ọ laaye lati ṣiṣe awọn eto labẹ iṣakoso, ati mu lagabara akoko ati awọn opin iranti, fopin si eto naa lori o ṣẹ si awọn ipo wọnyi.

Ko si fifi sori ẹrọ ti o nilo, ṣiṣe pipaṣẹ papọ pẹlu awọn ariyanjiyan rẹ nipa lilo eto akoko ipari ati pe yoo ṣe atẹle iranti aṣẹ ati lilo akoko, da gbigbi ilana naa ti o ba jade lọ si awọn aala, ati sọ fun ọ pẹlu ifiranṣẹ ti a ti pinnu tẹlẹ.

Lati ṣiṣẹ iwe afọwọkọ yii, o gbọdọ ni Perl 5 sori ẹrọ lori ẹrọ Linux rẹ ati eto eto/proc ti a fi sii.

Lati ṣayẹwo ẹya ti a fi sori ẹrọ ti Perl lori ẹrọ Linux rẹ, ṣiṣe aṣẹ atẹle.

$ perl -v

Nigbamii, ṣe ẹda ibi ipamọ akoko ipari si eto rẹ nipa lilo pipaṣẹ Linux deede.

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

Jẹ ki a wo bayi bi akosile akoko-iṣẹ ṣe n ṣiṣẹ.

Apẹẹrẹ akọkọ yii fihan bi a ṣe le fi opin si lilo iranti ti ilana kan si 100M ti iranti foju, ni lilo asia -m . Ẹrọ aiyipada fun iranti wa ni kilobytes.

Nibi, aṣẹ wahala-ng nṣakoso awọn ipọnju iranti iranti mẹrin (VMS) ti o ṣopọ lati lo 40% ti iranti ti o wa fun awọn iṣẹju 10. Nitorinaa wahala kọọkan nlo 10% ti iranti ti o wa.

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

Ṣiyesi iṣejade aṣẹ pipa-akoko loke, awọn ilana aapọn wahala ng pari lẹhin awọn iṣẹju-aaya 1,16 kan. Eyi jẹ nitori agbara iranti iranti ti VMS (438660 kilobytes) tobi ju lilo iranti iranti laye lọ fun wahala-ng ati awọn ilana ọmọ rẹ.

Lati mu idiwọn akoko ti ilana ṣiṣẹ, lo asia -t bi o ti han.

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

Ninu apẹẹrẹ ti o wa loke, nigbati akoko wahala-ng CPU + akoko SYS kọja iye ti a ṣalaye ti 4, a pa awọn ilana oṣiṣẹ.

O tun le ṣe idinwo iranti mejeeji ati akoko ni ẹẹkan bi atẹle.

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

Akoko-akoko tun ṣe atilẹyin diẹ ninu awọn aṣayan ilọsiwaju bi --detect-hangups , eyiti o jẹ ki iṣawari hangup.

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

O le ṣe atẹle RSS (iwọn ṣeto olugbe) opin iranti nipa lilo iyipada -memlimit-rss tabi -s yipada.

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

Ni afikun, lati da koodu ijade pada tabi ifihan agbara + 128 ti ilana kan, lo aṣayan --confess tabi -c bi a ti han.

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

Fun alaye diẹ sii ati apẹẹrẹ lilo, wo ibi ipamọ Github akoko-ipari: https://github.com/pshved/timeout.

O tun le rii awọn nkan wọnyi ti o ni ibatan ti o wulo bakanna:

  1. Bii o ṣe le Wa Awọn ilana 15 Naa nipasẹ Lilo Iranti pẹlu ‘oke’ ni Ipo Ipele
  2. CPUTool - Iwọn ati Iṣakoso Sipiyu Lilo ti Ilana Kankan ni Lainos
  3. Bii o ṣe le Fi opin si Lilo Sipiyu ti Ilana kan ni Linux pẹlu Ọpa CPULimit

Iwe afọwọkọ akoko jẹ eto ibojuwo ohun elo ti o ṣe pataki ni ihamọ akoko ati agbara iranti ti awọn ilana ni Lainos. O le fun wa ni esi nipa iwe afọwọkọ akoko nipasẹ fọọmu asọye ni isalẹ.