Cpustat - ຕິດຕາມກວດກາການ ນຳ ໃຊ້ CPU ໂດຍການເຮັດວຽກໃນ Linux
Cpustat ແມ່ນໂປແກຼມວັດແທກການປະຕິບັດລະບົບທີ່ມີປະສິດທິພາບ ສຳ ລັບ Linux, ຂຽນໂດຍໃຊ້ພາສາ Go programming. ມັນພະຍາຍາມເປີດເຜີຍການ ນຳ ໃຊ້ແລະຄວາມອີ່ມຕົວຂອງ CPU ໃນທາງທີ່ມີປະສິດທິພາບ, ໂດຍ ນຳ ໃຊ້ວິທີການໃຊ້ອີ່ມຕົວແລະຄວາມຜິດພາດ (USE) (ວິທີການວິເຄາະການເຮັດວຽກຂອງລະບົບໃດ ໜຶ່ງ).
ມັນສະກັດຕົວຢ່າງຄວາມຖີ່ສູງຂອງທຸກໆຂະບວນການທີ່ຖືກປະຕິບັດໃນລະບົບແລະຫຼັງຈາກນັ້ນສະຫຼຸບຕົວຢ່າງເຫລົ່ານີ້ໃນຄວາມຖີ່ຕ່ ຳ. ຍົກຕົວຢ່າງ, ມັນສາມາດວັດແທກທຸກໆຂະບວນການໃນທຸກໆ 200ms ແລະສະຫຼຸບຕົວຢ່າງເຫລົ່ານີ້ທຸກໆ 5 ວິນາທີ, ລວມທັງຄ່າ min/ໂດຍສະເລ່ຍ/ສູງສຸດ ສຳ ລັບການວັດແທກບາງອັນ
Cpustat ສົ່ງຂໍ້ມູນອອກເປັນສອງວິທີທີ່ເປັນໄປໄດ້: ບັນຊີລາຍຊື່ຕົວ ໜັງ ສືບໍລິສຸດຂອງໄລຍະຫ່າງສະຫຼຸບສັງລວມແລະແຖບເລື່ອນທີ່ມີສີສັນຂອງແຕ່ລະຕົວຢ່າງ.
ວິທີການຕິດຕັ້ງ Cpustat ໃນ Linux
ທ່ານຕ້ອງມີການຕິດຕັ້ງ Go (GoLang) ໃນລະບົບ Linux ຂອງທ່ານເພື່ອໃຊ້ cpustat, ໃຫ້ຄລິກໃສ່ລິ້ງຂ້າງລຸ່ມນີ້ເພື່ອປະຕິບັດຕາມຂັ້ນຕອນການຕິດຕັ້ງ GoLang ຖ້າທ່ານບໍ່ໄດ້ຕິດຕັ້ງມັນ:
<
ເມື່ອທ່ານຕິດຕັ້ງ Go ແລ້ວ, ໃຫ້ພິມ ຄຳ ສັ່ງ go get ຢູ່ຂ້າງລຸ່ມເພື່ອຕິດຕັ້ງມັນ, ຄຳ ສັ່ງນີ້ຈະຕິດຕັ້ງ cpustat binary ໃນຕົວແປ GOBIN ຂອງທ່ານ:
# go get github.com/uber-common/cpustat
ວິທີການໃຊ້ Cpustat ໃນ Linux
ເມື່ອຂັ້ນຕອນການຕິດຕັ້ງ ສຳ ເລັດແລ້ວ, ເຮັດວຽກ cpustat ດັ່ງຕໍ່ໄປນີ້ໂດຍມີສິດທິພິເສດຮາກໂດຍໃຊ້ ຄຳ ສັ່ງ sudo ນັ້ນແມ່ນຖ້າທ່ານຄວບຄຸມລະບົບເປັນຜູ້ໃຊ້ທີ່ບໍ່ແມ່ນຮາກ, ຖ້າບໍ່ດັ່ງນັ້ນທ່ານຈະໄດ້ຮັບຂໍ້ຜິດພາດດັ່ງທີ່ສະແດງ:
$ $GOBIN/cpustat This program uses the netlink taskstats interface, so it must be run as root.
ໝາຍ ເຫດ: ເພື່ອເຮັດວຽກ cpustat ເຊັ່ນດຽວກັນກັບທຸກໆໂປແກຼມ Go ອື່ນໆທີ່ທ່ານໄດ້ຕິດຕັ້ງໄວ້ໃນລະບົບຂອງທ່ານຄືກັບ ຄຳ ສັ່ງອື່ນໆ, ລວມມີຕົວແປ GOBIN ໃນຕົວແປ PATH environment ຂອງທ່ານ. ເປີດລິ້ງດ້ານລຸ່ມເພື່ອຮຽນຮູ້ວິທີການ ກຳ ນົດ PATH ຕົວແປໃນ Linux.
<
ນີ້ແມ່ນວິທີການເຮັດວຽກຂອງ cpustat; ບັນດາໄດເລກະທໍລີ /proc
ຖືກສອບຖາມເພື່ອເອົາບັນຊີ ID ຂອງຂະບວນການ ສຳ ລັບທຸກໆໄລຍະ, ແລະ:
- ສຳ ລັບແຕ່ລະ PID, ອ່ານ/proc/pid/stat, ຈາກນັ້ນລວບລວມຄວາມແຕກຕ່າງຈາກຕົວຢ່າງທີ່ຜ່ານມາ.
- ໃນກໍລະນີມັນເປັນ PID ໃໝ່, ອ່ານ/proc/pid/cmdline.
- ສຳ ລັບແຕ່ລະ PID, ສົ່ງຂໍ້ຄວາມລິງທ໌ເພື່ອລວບລວມບັນດາວຽກງານ, ຄິດໄລ່ຄວາມແຕກຕ່າງຈາກຕົວຢ່າງທີ່ຜ່ານມາ.
- ເອົາ/proc/stat ເພື່ອໃຫ້ໄດ້ສະຖິຕິລະບົບໂດຍລວມ.
ອີກເທື່ອ ໜຶ່ງ, ແຕ່ລະໄລຍະເວລາຂອງການນອນຫຼັບແມ່ນຖືກປັບໃຫ້ເຂົ້າກັບ ຈຳ ນວນເວລາທີ່ໃຊ້ໃນການເກັບເອົາສະຖິຕິທັງ ໝົດ ນີ້. ຍິ່ງໄປກວ່ານັ້ນ, ຕົວຢ່າງແຕ່ລະຕົວຍັງໄດ້ບັນທຶກເວລາທີ່ມັນໃຊ້ເພື່ອຂະຫຍາຍການວັດແຕ່ລະຄັ້ງໂດຍເວລາທີ່ຜ່ານມາຕົວຈິງລະຫວ່າງຕົວຢ່າງ. ນີ້ພະຍາຍາມທີ່ຈະຄິດໄລ່ການຊັກຊ້າໃນ cpustat ຕົວມັນເອງ.
ເມື່ອ ດຳ ເນີນການໂດຍບໍ່ມີການໂຕ້ຖຽງ, cpustat ຈະສະແດງສິ່ງຕໍ່ໄປນີ້ໂດຍຄ່າເລີ່ມຕົ້ນ: ໄລຍະເວລາການເກັບຕົວຢ່າງ: 200ms, ໄລຍະເວລາສະຫຼຸບ: 2s (10 ຕົວຢ່າງ), ສະແດງໂປແກມສຸດ 10 ອັນດັບ, ຕົວກອງຜູ້ໃຊ້: ທັງ ໝົດ, pid filter: ທັງ ໝົດ ດັ່ງທີ່ສະແດງໃນ ໜ້າ ຈໍຂ້າງລຸ່ມນີ້:
$ sudo $GOBIN/cpustat
ຈາກຜົນໄດ້ຮັບຂ້າງເທິງ, ສິ່ງຕໍ່ໄປນີ້ແມ່ນຄວາມ ໝາຍ ຂອງເຄື່ອງວັດແທກລະບົບທົ່ວໄປທີ່ສະແດງກ່ອນທົ່ງນາ:
- usr - min/avg/max ຮູບແບບເວລາຂອງຜູ້ໃຊ້ໃຊ້ເວລາເປັນເປີເຊັນຂອງ CPU.
- sys - min/avg/max ລະບົບລະບົບເວລາເຮັດວຽກເປັນເປີເຊັນຂອງ CPU.
- ດີ - ແບບ min/avg/max ຂອງຜູ້ໃຊ້ທີ່ໃຊ້ເວລາ ໜ້ອຍ ທີ່ໃຊ້ເປັນສ່ວນຮ້ອຍຂອງ CPU.
- ບໍ່ເຮັດວຽກແບບບໍ່ໃຊ້ເວລາ - min/avg/max ໃຊ້ເວລາເປັນເປີເຊັນຂອງ CPU.
- iowait - min/avg/max ເວລາຊັກຊ້າລໍຖ້າ disk IO.
- prun - min/avg/max ນັບຂອງຂະບວນການຕ່າງໆໃນສະພາບທີ່ມີການເຄື່ອນໄຫວ (ເຊັ່ນດຽວກັນກັບສະເລ່ຍຂອງການໂຫຼດ).
- pblock - ຈຳ ນວນ min/avg/max ຂອງຂະບວນການທີ່ຖືກບລັອກໃນ disk IO.
- pstart - ຈຳ ນວນຂອງຂະບວນການ/ກະທູ້ເລີ່ມຕົ້ນໃນຊ່ວງສະຫຼຸບສັງລວມນີ້.
ຍັງມາຈາກຜົນໄດ້ຮັບຂ້າງເທິງ, ສຳ ລັບຂະບວນການໃດ ໜຶ່ງ, ຖັນທີ່ແຕກຕ່າງກັນ ໝາຍ ຄວາມວ່າ:
- ຊື່ - ຊື່ແບບທົ່ວໄປຈາກ/proc/pid/stat ຫຼື/proc/pid/cmdline.
- pid - process id, ເຊິ່ງເອີ້ນວ່າ "tgid".
- min - ຕົວຢ່າງຕ່ ຳ ສຸດຂອງເວລາຂອງຜູ້ໃຊ້ + ເວລາລະບົບ ສຳ ລັບ pid, ວັດຈາກ/proc/pid/stat. ຂະ ໜາດ ເປັນເປີເຊັນຂອງ CPU.
- ສູງສຸດ - ຕົວຢ່າງສູງສຸດຂອງເວລາລະບົບຂອງຜູ້ໃຊ້ + ສຳ ລັບ pid ນີ້, ຍັງວັດແທກຈາກ/proc/pid/stat.
- usr - ເວລາຂອງຜູ້ໃຊ້ໂດຍສະເລ່ຍ ສຳ ລັບການຈ່າຍເງິນໃນໄລຍະເວລາສະຫຼຸບສັງລວມ, ວັດແທກຈາກ/proc/pid/stat.
- sys - ເວລາສະເລ່ຍຂອງລະບົບ ສຳ ລັບ pid ໃນໄລຍະເວລາສະຫຼຸບສັງລວມ, ວັດຈາກ/proc/pid/stat.
- ງາມ - ສະແດງເຖິງມູນຄ່າ“ ງາມ” ໃນປະຈຸບັນ ສຳ ລັບຂະບວນການ, ທີ່ວັດແທກຈາກ/proc/pid/stat. ວິທີທີ່ສູງກວ່າ "ດີກວ່າ".
- runq - ເວລາທີ່ຂັ້ນຕອນແລະກະທູ້ທັງ ໝົດ ຂອງມັນໃຊ້ຈ່າຍລ້າໆແຕ່ລໍຖ້າແລ່ນ, ວັດຈາກ taskstats ຜ່ານ netlink. ຂະ ໜາດ ເປັນເປີເຊັນຂອງ CPU.
- iow - ເວລາທີ່ຂັ້ນຕອນແລະກະທູ້ທັງ ໝົດ ຂອງມັນໃຊ້ຈ່າຍຖືກບລັອກໂດຍ disk IO, ຖືກວັດແທກຈາກ taskstats ຜ່ານ netlink. ຂະ ໜາດ ແມ່ນເປີເຊັນຂອງ CPU, ສະເລ່ຍໃນໄລຍະເວລາສະຫຼຸບສັງລວມ.
- ແລກປ່ຽນ - ເວລາທີ່ຂັ້ນຕອນແລະກະທູ້ທັງ ໝົດ ຂອງມັນໃຊ້ເວລາລໍຖ້າທີ່ຈະຖືກດັດແປງ, ວັດແທກຈາກ taskstats ຜ່ານ netlink. ຂະ ໜາດ ແມ່ນເປີເຊັນຂອງ CPU, ສະເລ່ຍໃນໄລຍະເວລາສະຫຼຸບສັງລວມ.
- vcx ແລະ icx - ຈຳ ນວນສະພາບການໂດຍສະ ໝັກ ໃຈປ່ຽນແປງໂດຍຂະບວນການແລະກະທູ້ທັງ ໝົດ ໃນໄລຍະເວລາສະຫຼຸບສັງລວມ, ວັດແທກຈາກ taskstats ຜ່ານ netlink.
- rss - ມູນຄ່າ RSS ປັດຈຸບັນທີ່ເອົາມາຈາກ/proc/pid/stat. ມັນແມ່ນ ຈຳ ນວນຄວາມ ຈຳ ທີ່ຂະບວນການນີ້ ກຳ ລັງໃຊ້.
- ctime - ຜົນລວມຂອງເວລາ CPU ຂອງຜູ້ໃຊ້ + sys ທີ່ບໍລິໂພກໂດຍລໍຖ້າເດັກນ້ອຍທີ່ອອກຈາກຊ່ວງໄລຍະສະຫຼຸບສັງລວມນີ້, ວັດຈາກ/proc/pid/stat.
ໃຫ້ສັງເກດວ່າຂະບວນການເດັກທີ່ແລ່ນມາດົນນານສາມາດສັບສົນກັບການວັດແທກນີ້, ເພາະວ່າເວລາຈະຖືກລາຍງານພຽງແຕ່ເວລາທີ່ຂະບວນການເດັກອອກໄປ. ເຖິງຢ່າງໃດກໍ່ຕາມ, ສິ່ງນີ້ແມ່ນມີປະໂຫຍດ ສຳ ລັບການວັດຜົນກະທົບຂອງການເຮັດວຽກ cron ເລື້ອຍໆແລະການກວດສຸຂະພາບທີ່ເວລາທີ່ CPU ໃຊ້ເວລາຫຼາຍໂດຍຂະບວນການຂອງເດັກ.
- ຈຳ ນວນກະທູ້ໃນຕອນທ້າຍຂອງໄລຍະຫ່າງສະຫຼຸບສັງລວມ, ວັດຈາກ/proc/pid/stat.
- sam - ຈຳ ນວນຕົວຢ່າງ ສຳ ລັບຂະບວນການນີ້ລວມຢູ່ໃນສະຫຼຸບສັງລວມໄລຍະເວລາ. ຂະບວນການທີ່ໄດ້ເລີ່ມຕົ້ນຫຼືອອກມາເມື່ອບໍ່ດົນມານີ້ອາດຈະເຫັນໄດ້ ສຳ ລັບຕົວຢ່າງ ໜ້ອຍ ກວ່າໄລຍະເວລາສະຫຼຸບສັງລວມ.
ຄຳ ສັ່ງຕໍ່ໄປນີ້ສະແດງ 10 ຂັ້ນຕອນຂອງຜູ້ໃຊ້ຮາກທີ່ ກຳ ລັງເຮັດວຽກຢູ່ໃນລະບົບ:
$ sudo $GOBIN/cpustat -u root
ເພື່ອສະແດງຜົນຜະລິດໃນຮູບແບບປາຍທາງທີ່ສວຍງາມ, ໃຫ້ໃຊ້ -t
ທຸງດັ່ງຕໍ່ໄປນີ້:
$ sudo $GOBIN/cpustat -u roo -t
ເພື່ອເບິ່ງ 20 ຂະບວນການ Linux ທຳ ອິດທີ່ເຮັດວຽກຢູ່ໃນລະບົບ:
$ sudo $GOBIN/cpustat -n 20
ທ່ານຍັງສາມາດຂຽນໂປຼແກຼມຊີພີຢູໃສ່ເອກະສານໂດຍໃຊ້ຕົວເລືອກ -cpuprofile
ດັ່ງຕໍ່ໄປນີ້ແລະຈາກນັ້ນໃຊ້ ຄຳ ສັ່ງຂອງແມວເພື່ອເບິ່ງເອກະສານ:
$ sudo $GOBIN/cpustat -cpuprofile cpuprof.txt $ cat cpuprof.txt
ເພື່ອສະແດງຂໍ້ມູນການຊ່ວຍເຫຼືອ, ໃຫ້ໃຊ້ -h
ທຸງດັ່ງຕໍ່ໄປນີ້:
$ sudo $GOBIN/cpustat -h
ຊອກຫາຂໍ້ມູນເພີ່ມເຕີມຈາກບ່ອນເກັບມ້ຽນຂອງ cpustat Github: https://github.com/uber-common/cpustat
ຫມົດເທົ່ານີ້! ໃນບົດຂຽນນີ້, ພວກເຮົາໄດ້ສະແດງວິທີການຕິດຕັ້ງແລະ ນຳ ໃຊ້ cpustat, ເຄື່ອງມືວັດແທກປະສິດທິພາບຂອງລະບົບທີ່ມີປະໂຫຍດ ສຳ ລັບ Linux. ແບ່ງປັນຄວາມຄິດຂອງທ່ານກັບພວກເຮົາຜ່ານພາກສະແດງຄວາມເຫັນຂ້າງລຸ່ມນີ້.