Cpustat - ຕິດຕາມກວດກາການ ນຳ ໃຊ້ CPU ໂດຍການເຮັດວຽກໃນ Linux


Cpustat ແມ່ນໂປແກຼມວັດແທກການປະຕິບັດລະບົບທີ່ມີປະສິດທິພາບ ສຳ ລັບ Linux, ຂຽນໂດຍໃຊ້ພາສາ Go programming. ມັນພະຍາຍາມເປີດເຜີຍການ ນຳ ໃຊ້ແລະຄວາມອີ່ມຕົວຂອງ CPU ໃນທາງທີ່ມີປະສິດທິພາບ, ໂດຍ ນຳ ໃຊ້ວິທີການໃຊ້ອີ່ມຕົວແລະຄວາມຜິດພາດ (USE) (ວິທີການວິເຄາະການເຮັດວຽກຂອງລະບົບໃດ ໜຶ່ງ).

ມັນສະກັດຕົວຢ່າງຄວາມຖີ່ສູງຂອງທຸກໆຂະບວນການທີ່ຖືກປະຕິບັດໃນລະບົບແລະຫຼັງຈາກນັ້ນສະຫຼຸບຕົວຢ່າງເຫລົ່ານີ້ໃນຄວາມຖີ່ຕ່ ຳ. ຍົກຕົວຢ່າງ, ມັນສາມາດວັດແທກທຸກໆຂະບວນການໃນທຸກໆ 200ms ແລະສະຫຼຸບຕົວຢ່າງເຫລົ່ານີ້ທຸກໆ 5 ວິນາທີ, ລວມທັງຄ່າ min/ໂດຍສະເລ່ຍ/ສູງສຸດ ສຳ ລັບການວັດແທກບາງອັນ

Cpustat ສົ່ງຂໍ້ມູນອອກເປັນສອງວິທີທີ່ເປັນໄປໄດ້: ບັນຊີລາຍຊື່ຕົວ ໜັງ ສືບໍລິສຸດຂອງໄລຍະຫ່າງສະຫຼຸບສັງລວມແລະແຖບເລື່ອນທີ່ມີສີສັນຂອງແຕ່ລະຕົວຢ່າງ.

ວິທີການຕິດຕັ້ງ Cpustat ໃນ Linux

ທ່ານຕ້ອງມີການຕິດຕັ້ງ Go (GoLang) ໃນລະບົບ Linux ຂອງທ່ານເພື່ອໃຊ້ cpustat, ໃຫ້ຄລິກໃສ່ລິ້ງຂ້າງລຸ່ມນີ້ເພື່ອປະຕິບັດຕາມຂັ້ນຕອນການຕິດຕັ້ງ GoLang ຖ້າທ່ານບໍ່ໄດ້ຕິດຕັ້ງມັນ:

<

  • ຕິດຕັ້ງ GoLang (Go Programming Language) ໃນ Linux
  • ເມື່ອທ່ານຕິດຕັ້ງ 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.

    <

  • ຮຽນຮູ້ວິທີ ກຳ ນົດຕົວປ່ຽນ $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. ແບ່ງປັນຄວາມຄິດຂອງທ່ານກັບພວກເຮົາຜ່ານພາກສະແດງຄວາມເຫັນຂ້າງລຸ່ມນີ້.