ວິທີການ ຈຳ ກັດເວລາແລະຄວາມ ຈຳ ຂອງການ ນຳ ໃຊ້ຂະບວນການຕ່າງໆໃນ Linux


ບົດຂຽນ ໝົດ ເວລາແມ່ນໂປແກຼມກວດສອບຊັບພະຍາກອນທີ່ມີປະໂຫຍດ ສຳ ລັບການ ຈຳ ກັດເວລາແລະຄວາມ ຈຳ ໃນການ ນຳ ໃຊ້ຂອງຂະບວນການຕ່າງໆໃນ Linux. ມັນຊ່ວຍໃຫ້ທ່ານສາມາດ ດຳ ເນີນໂຄງການຕ່າງໆພາຍໃຕ້ການຄວບຄຸມ, ແລະບັງຄັບໃຊ້ເວລາແລະ ຈຳ ກັດຄວາມ ຈຳ, ສິ້ນສຸດໂຄງການຕາມການລະເມີດຕົວ ກຳ ນົດເຫຼົ່ານີ້.

ບໍ່ ຈຳ ເປັນຕ້ອງຕິດຕັ້ງ, ພຽງແຕ່ປະຕິບັດ ຄຳ ສັ່ງພ້ອມກັບການໂຕ້ຖຽງຂອງມັນໂດຍໃຊ້ໂປແກຼມ ໝົດ ເວລາແລະມັນຈະຕິດຕາມກວດກາຄວາມຊົງ ຈຳ ແລະການໃຊ້ເວລາຂອງ ຄຳ ສັ່ງ, ຂັດຂວາງຂະບວນການຖ້າມັນເກີນຂອບເຂດແລະແຈ້ງໃຫ້ທ່ານຊາບດ້ວຍຂໍ້ຄວາມທີ່ໄດ້ ກຳ ນົດໄວ້ກ່ອນ.

ເພື່ອ ດຳ ເນີນການສະຄິບນີ້, ທ່ານຕ້ອງໄດ້ຕິດຕັ້ງ Perl 5 ໃນລະບົບ Linux ຂອງທ່ານແລະລະບົບ/proc files ທີ່ຕິດຕັ້ງໄວ້.

ເພື່ອກວດສອບເວີຊັນທີ່ຕິດຕັ້ງຂອງ Perl ໃນລະບົບ Linux ຂອງທ່ານ, ໃຫ້ເຮັດຕາມ ຄຳ ສັ່ງຕໍ່ໄປນີ້.

$ perl -v

ຖັດໄປ, ກົດບ່ອນເກັບມ້ຽນທີ່ ໝົດ ເວລາໃຫ້ກັບລະບົບຂອງທ່ານໂດຍໃຊ້ git command, ຈາກນັ້ນຍ້າຍເຂົ້າໄປໃນ repository ທ້ອງຖິ່ນໂດຍໃຊ້ ຄຳ ສັ່ງ cd ແລະຂໍເປັນ ຄຳ ສັ່ງ Linux ປົກກະຕິ.

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

ຕອນນີ້ໃຫ້ເບິ່ງວ່າສະຄິບ ໝົດ ເວລາເຮັດວຽກແນວໃດ.

ຕົວຢ່າງ ທຳ ອິດນີ້ສະແດງວິທີການ ຈຳ ກັດການ ນຳ ໃຊ້ ໜ່ວຍ ຄວາມ ຈຳ ຂອງຂະບວນການເຖິງ 100 ມຫນ່ວຍຄວາມ ຈຳ ເສມືນ, ໂດຍໃຊ້ທຸງ -m . ຫົວ ໜ່ວຍ ເລີ່ມຕົ້ນ ສຳ ລັບ ໜ່ວຍ ຄວາມ ຈຳ ແມ່ນເປັນກິໂລໄບ.

ຢູ່ທີ່ນີ້, ຄຳ ສັ່ງ stress-ng ແມ່ນເນັ້ນ 4 ຕົວຄວາມ ຈຳ ເສີຍໆ (VMS) ທີ່ປະສົມປະສານເພື່ອໃຊ້ 40% ຂອງ ໜ່ວຍ ຄວາມ ຈຳ ທີ່ໃຊ້ໄດ້ໃນເວລາ 10 ນາທີ. ດັ່ງນັ້ນຜູ້ທີ່ກົດດັນແຕ່ລະຄົນໃຊ້ 10% ຂອງຄວາມຊົງ ຈຳ ທີ່ມີ.

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

ພິຈາລະນາຜົນໄດ້ຮັບຂອງ ຄຳ ສັ່ງ ໝົດ ເວລາຂ້າງເທິງ, ຂະບວນການພະນັກງານເຮັດວຽກທີ່ມີຄວາມກົດດັນໄດ້ຢຸດຕິພາຍຫຼັງພຽງແຕ່ 1,16 ວິນາທີ. ນີ້ແມ່ນຍ້ອນວ່າການບໍລິໂພກຄວາມຊົງ ຈຳ ແບບລວມຂອງ VMS (438660 ກິໂລໄບ) ແມ່ນສູງກວ່າການ ນຳ ໃຊ້ຫນ່ວຍຄວາມ ຈຳ ແບບເສີຍໆທີ່ໄດ້ຮັບອະນຸຍາດ ສຳ ລັບຄວາມກົດດັນແລະຂະບວນການຂອງເດັກ.

ເພື່ອໃຫ້ສາມາດ ຈຳ ກັດເວລາຂອງຂັ້ນຕອນ, ໃຫ້ໃຊ້ -t ທຸງດັ່ງທີ່ສະແດງ.

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

ໃນຕົວຢ່າງຂ້າງເທິງ, ໃນເວລາທີ່ຄວາມກົດດັນ -ng CPU + ເວລາ SYS ເກີນມູນຄ່າທີ່ໄດ້ ກຳ ນົດຂອງ 4, ຂະບວນການ ກຳ ມະກອນຖືກຂ້າ.

ທ່ານຍັງສາມາດ ຈຳ ກັດທັງຄວາມ ຈຳ ແລະເວລາໃນເວລາດຽວກັນດັ່ງຕໍ່ໄປນີ້.

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

ເວລາ ໝົດ ເວລາຍັງສະ ໜັບ ສະ ໜູນ ບາງຕົວເລືອກທີ່ກ້າວ ໜ້າ ເຊັ່ນ: ລະຫັດ - ການຕິດຕັ້ງ hangup , ເຊິ່ງຊ່ວຍໃຫ້ສາມາດຊອກຫາ hangup ໄດ້.

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

ທ່ານສາມາດຕິດຕາມກວດກາ RSS (ຂະ ໜາດ ຂອງຜູ້ອາໄສຢູ່) ຈຳ ກັດຄວາມ ຈຳ ໂດຍໃຊ້ປຸ່ມ --memlimit-rss ຫຼື -s .

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

ນອກຈາກນັ້ນ, ເພື່ອກັບຄືນລະຫັດການທ່ອງທ່ຽວຫລືສັນຍານ + 128 ຂອງຂະບວນການ, ໃຫ້ໃຊ້ - ແບບບໍ່ຕ້ອງສົງໃສ ຫຼື -c ຕາມທີ່ສະແດງ.

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

ສຳ ລັບຕົວຢ່າງຂໍ້ມູນເພີ່ມເຕີມແລະການ ນຳ ໃຊ້, ເບິ່ງທີ່ໃຊ້ເວລາໃນ Github repository: https://github.com/pshved/timeout.

ທ່ານຍັງອາດຈະເຫັນບົດຄວາມທີ່ກ່ຽວຂ້ອງຕໍ່ໄປນີ້ທີ່ເປັນປະໂຫຍດເທົ່າທຽມກັນ:

<

  • ວິທີການຄົ້ນຫາຂັ້ນຕອນ 15 ຂັ້ນເທິງໂດຍການ ນຳ ໃຊ້ຫນ່ວຍຄວາມ ຈຳ ດ້ວຍ ‘ອັນດັບ ໜຶ່ງ’ ໃນແບບ Batch Mode
  • CPUTool - ຈຳ ກັດແລະຄວບຄຸມການ ນຳ ໃຊ້ CPU ຂອງຂະບວນການໃດໆໃນ Linux
  • ວິທີການ ຈຳ ກັດການ ນຳ ໃຊ້ CPU ຂອງຂະບວນການໃນ Linux ດ້ວຍ CPULimit Tool
  • ບົດຂຽນ ໝົດ ເວລາແມ່ນໂປແກຼມກວດສອບຊັບພະຍາກອນທີ່ລຽບງ່າຍທີ່ ຈຳ ກັດເວລາແລະຄວາມ ຈຳ ໃນການບໍລິໂພກຂອງຂະບວນການໃນ Linux ທ່ານສາມາດໃຫ້ ຄຳ ເຫັນກັບພວກເຮົາກ່ຽວກັບສະຄິບ ໝົດ ເວລາຜ່ານແບບຟອມ ຄຳ ເຫັນຂ້າງລຸ່ມນີ້.