Perf- ເຄື່ອງມືການກວດສອບແລະການວິເຄາະຜົນ ສຳ ລັບ Linux
ເມື່ອພວກເຮົາເວົ້າເຖິງການປະຕິບັດວຽກງານໃນຄອມພີວເຕີ້, ພວກເຮົາ ໝາຍ ເຖິງຄວາມ ສຳ ພັນລະຫວ່າງຊັບພະຍາກອນຂອງພວກເຮົາແລະວຽກງານທີ່ພວກເຂົາອະນຸຍາດໃຫ້ພວກເຮົາເຮັດ ສຳ ເລັດໃນຊ່ວງເວລາໃດ ໜຶ່ງ.
ໃນມື້ທີ່ມີການແຂ່ງຂັນກັນຢ່າງດຸເດືອດລະຫວ່າງບໍລິສັດ, ມັນເປັນສິ່ງ ສຳ ຄັນທີ່ພວກເຮົາຕ້ອງຮຽນຮູ້ການ ນຳ ໃຊ້ສິ່ງທີ່ພວກເຮົາມີໃຫ້ສຸດຄວາມສາມາດຂອງມັນ. ສິ່ງເສດເຫຼືອຂອງຊັບພະຍາກອນຮາດແວຫລືຊອບແວຫລືຂາດຄວາມສາມາດທີ່ຈະຮູ້ວິທີການ ນຳ ໃຊ້ທີ່ມີປະສິດທິພາບຫຼາຍຂື້ນ, ມັນແມ່ນການສູນເສຍທີ່ພວກເຮົາບໍ່ສາມາດຈ່າຍໄດ້ຖ້າພວກເຮົາຕ້ອງການຢູ່ໃນອັນດັບ ໜຶ່ງ ຂອງເກມຂອງພວກເຮົາ.
ໃນເວລາດຽວກັນ, ພວກເຮົາຕ້ອງລະມັດລະວັງທີ່ຈະບໍ່ເອົາຊັບພະຍາກອນຂອງພວກເຮົາໄປໃນຂອບເຂດ ຈຳ ກັດບ່ອນທີ່ການ ນຳ ໃຊ້ທີ່ຍືນຍົງຈະສົ່ງຜົນເສຍຫາຍທີ່ບໍ່ສາມາດຕ້ານທານໄດ້.
ໃນບົດຄວາມນີ້ພວກເຮົາຈະແນະ ນຳ ທ່ານກ່ຽວກັບເຄື່ອງມືການວິເຄາະການປະຕິບັດທີ່ຂ້ອນຂ້າງ ໃໝ່ ແລະໃຫ້ ຄຳ ແນະ ນຳ ທີ່ທ່ານສາມາດໃຊ້ເພື່ອຕິດຕາມລະບົບ Linux ຂອງທ່ານ, ລວມທັງຮາດແວແລະແອັບພລິເຄຊັນຕ່າງໆ. ນີ້ຈະຊ່ວຍໃຫ້ທ່ານຮັບປະກັນວ່າພວກເຂົາປະຕິບັດງານເພື່ອໃຫ້ທ່ານມີຄວາມສາມາດໃນການຜະລິດຜົນທີ່ຕ້ອງການໂດຍບໍ່ຕ້ອງເສຍເງິນຫລືຊັບພະຍາກອນຂອງທ່ານເອງ.
ແນະ ນຳ ແລະຕິດຕັ້ງ Perf ໃນ Linux
ໃນບັນດາສິ່ງອື່ນໆ, Linux ສະ ໜອງ ເຄື່ອງມືຕິດຕາມແລະວິເຄາະການເຮັດວຽກທີ່ເອີ້ນວ່າສະດວກດີ. ດັ່ງນັ້ນສິ່ງທີ່ແຍກຕ່າງຫາກທີ່ດີເລີດຈາກເຄື່ອງມືທີ່ມີຊື່ສຽງອື່ນໆທີ່ທ່ານຄຸ້ນເຄີຍແລ້ວ?
ຄຳ ຕອບກໍ່ຄືວ່າ perf ສາມາດເຂົ້າເຖິງ ໜ່ວຍ ງານກວດສອບການປະຕິບັດງານໃນ CPU, ແລະດັ່ງນັ້ນຈຶ່ງຊ່ວຍໃຫ້ພວກເຮົາສາມາດເບິ່ງການປະພຶດຂອງຮາດແວແລະເຫດການທີ່ກ່ຽວຂ້ອງໄດ້ຢ່າງໃກ້ຊິດ.
ນອກຈາກນັ້ນ, ມັນຍັງສາມາດຕິດຕາມເຫດການຕ່າງໆຂອງຊອບແວ, ແລະສ້າງບົດລາຍງານຕ່າງໆນອກຈາກຂໍ້ມູນທີ່ຖືກເກັບ ກຳ.
ທ່ານສາມາດຕິດຕັ້ງ perf ໃນການແຈກຈ່າຍທີ່ອີງໃສ່ RPM ກັບ:
# yum update && yum install perf [CentOS / RHEL / Fedora] # dnf update && dnf install perf [Fedora 23+ releases]
ໃນ Debian ແລະອະນຸພັນ:
# sudo aptitude update && sudo aptitude install linux-tools-$(uname -r) linux-tools-generic
ຖ້າ ບໍ່ເປີດຊື່ -r
ໃນ ຄຳ ສັ່ງຂ້າງເທິງນີ້ຈະສົ່ງຄືນບັນດາສາຍຕ່າງໆນອກ ເໜືອ ຈາກລຸ້ນແທ້ (3.2.0-23-generic ໃນກໍລະນີຂອງຂ້ອຍ), ທ່ານອາດຈະຕ້ອງພິມ linux-tools-3.2.0-23 ແທນ ຂອງການນໍາໃຊ້ຜົນໄດ້ຮັບຂອງການ uname ໄດ້.
ມັນຍັງມີຄວາມສໍາຄັນທີ່ຈະສັງເກດວ່າຜົນຜະລິດທີ່ດີເລີດແມ່ນຜົນໄດ້ຮັບທີ່ບໍ່ຄົບຖ້ວນເມື່ອແລ່ນຢູ່ໃນແຂກທີ່ຢູ່ເທິງ XEN) ເຮັດ.
ນອກຈາກນັ້ນ, ຈົ່ງຈື່ໄວ້ວ່າບາງ ຄຳ ສັ່ງທີ່ດີເລີດອາດຈະຖືກ ຈຳ ກັດໃຫ້ຮາກໂດຍຄ່າເລີ່ມຕົ້ນ, ເຊິ່ງສາມາດຖືກປິດໃຊ້ງານ (ຈົນກ່ວາລະບົບຖືກເປີດໃຊ້ງານ ໃໝ່) ໂດຍການເຮັດ:
# echo 0 > /proc/sys/kernel/perf_event_paranoid
ຖ້າທ່ານຕ້ອງການປິດໂຫມດ paranoid ຢ່າງຖາວອນ, ໃຫ້ປັບປຸງການຕັ້ງຄ່າຕໍ່ໄປນີ້ໃນເອກະສານ /etc/sysctl.conf.
kernel.perf_event_paranoid = 0
ເມື່ອທ່ານໄດ້ຕິດຕັ້ງ perf ແລ້ວ, ທ່ານສາມາດອ້າງອີງໃສ່ ໜ້າ man ຂອງມັນ ສຳ ລັບລາຍຊື່ subcommands ທີ່ມີຢູ່ (ທ່ານສາມາດຄິດວ່າ subcommands ເປັນຕົວເລືອກພິເສດທີ່ເປີດ ໜ້າ ຕ່າງສະເພາະເຂົ້າໃນລະບົບ). ເພື່ອໃຫ້ໄດ້ຜົນທີ່ດີທີ່ສຸດແລະຄົບຖ້ວນ, ໃຫ້ໃຊ້ perf ທັງຮາກຫຼືຜ່ານ sudo.
ບັນຊີລາຍຊື່ທີ່ດີເລີດ (ໂດຍບໍ່ມີຕົວເລືອກ) ສົ່ງຄືນທຸກໆປະເພດເຫດການທີ່ເປັນສັນຍາລັກ (ບັນຊີລາຍຊື່ຍາວ). ຖ້າທ່ານຕ້ອງການເບິ່ງລາຍຊື່ຂອງເຫດການທີ່ມີຢູ່ໃນ ໝວດ ສະເພາະ, ໃຫ້ໃຊ້ລາຍຊື່ທີ່ດີເລີດຕາມດ້ວຍຊື່ປະເພດ ([hw | sw | cache | tracepoint | pmu | event_glob]), ເຊັ່ນວ່າ:
ສະແດງບັນຊີລາຍຊື່ຂອງເຫດການທີ່ ກຳ ນົດໄວ້ກ່ອນໃນໂປແກຼມ Linux:
# perf list sw
perf stat ໃຊ້ ຄຳ ສັ່ງແລະເກັບ ກຳ ສະຖິຕິການເຮັດວຽກຂອງ Linux ໃນໄລຍະ ດຳ ເນີນການ ຄຳ ສັ່ງດັ່ງກ່າວ. ມີຫຍັງເກີດຂື້ນໃນລະບົບຂອງພວກເຮົາໃນເວລາທີ່ພວກເຮົາແລ່ນ dd?
# perf stat dd if=/dev/zero of=test.iso bs=10M count=1
ສະຖິຕິທີ່ສະແດງຢູ່ຂ້າງເທິງຊີ້ບອກ, ໃນບັນດາສິ່ງອື່ນໆ:
<
ໃນຊ່ວງເວລານັ້ນ (21.812281 ມິນລິລິດ), ຈຳ ນວນຮອບວຽນຂອງ CPU ທີ່ໄດ້ຮັບການບໍລິໂພກແມ່ນ 62.025,623, ເຊິ່ງແບ່ງເປັນ 0.021812281 ວິນາທີໃຫ້ 2,843 GHz.
ຫຼັກການດຽວກັນນີ້ໃຊ້ໄດ້ກັບສະຖິຕິການລວບລວມ (ຫຼືເວົ້າອີກຢ່າງ ໜຶ່ງ, ການສະກົດຈິດ) ໃນຂະນະທີ່ແອັບພລິເຄຊັນ ກຳ ລັງແລ່ນຢູ່. ພຽງແຕ່ເປີດໂປແກຼມທີ່ທ່ານຕ້ອງການແລະຫຼັງຈາກໄລຍະເວລາທີ່ ເໝາະ ສົມ (ເຊິ່ງຂື້ນກັບທ່ານ) ປິດມັນ, ແລະ perf ຈະສະແດງສະຖິຕິໃນ ໜ້າ ຈໍ. ໂດຍການວິເຄາະສະຖິຕິເຫຼົ່ານັ້ນທ່ານສາມາດ ກຳ ນົດບັນຫາທີ່ອາດເກີດຂື້ນ.
perf top ແມ່ນຄ້າຍຄືກັບ ຄຳ ສັ່ງຊັ້ນເທິງ, ໃນນັ້ນມັນສະແດງໂປຼໄຟລ໌ລະບົບທີ່ໃຊ້ເວລາເກືອບແທ້ (ຍັງເອີ້ນວ່າການວິເຄາະສົດ).
ດ້ວຍຕົວເລືອກ -a
ທ່ານຈະສະແດງທຸກປະເພດເຫດການທີ່ຮູ້ຈັກ, ໃນຂະນະທີ່ຕົວເລືອກ -e
ຈະຊ່ວຍໃຫ້ທ່ານເລືອກປະເພດເຫດການສະເພາະ (ສົ່ງຄືນໂດຍລາຍຊື່ທີ່ສົມບູນແບບ) :
ຈະສະແດງທຸກເຫດການຮອບວຽນ.
perf top -a
ຈະສະແດງທຸກເຫດການທີ່ກ່ຽວຂ້ອງກັບ cpu.
perf top -e cpu-clock
ຖັນ ທຳ ອິດໃນຜົນໄດ້ຮັບຂ້າງເທິງສະແດງອັດຕາສ່ວນຂອງຕົວຢ່າງທີ່ໄດ້ປະຕິບັດຕັ້ງແຕ່ເລີ່ມຕົ້ນຂອງການແລ່ນ, ຈັດເປັນກຸ່ມໂດຍ ໜ້າ ທີ່ສັນຍາລັກແລະວັດຖຸທີ່ແບ່ງປັນ. ຕົວເລືອກເພີ່ມເຕີມມີຢູ່ໃນຜູ້ຊາຍ perf-top.
perf record ມີ ຄຳ ສັ່ງແລະບັນທຶກຂໍ້ມູນສະຖິຕິເຂົ້າໃນເອກະສານທີ່ມີຊື່ວ່າ perf.data ຢູ່ໃນລະບົບເຮັດວຽກປະຈຸບັນ. ມັນແລ່ນຄ້າຍຄືກັນກັບສະຖານະພາບທີ່ດີເລີດ.
ພິມບັນທຶກ perf ຕາມດ້ວຍ ຄຳ ສັ່ງ:
# perf record dd if=/dev/null of=test.iso bs=10M count=1
ບົດລາຍງານ perf ຈັດຮູບແບບຂໍ້ມູນທີ່ເກັບ ກຳ ມາໃນ perf.data ຂ້າງເທິງເຂົ້າໃນບົດລາຍງານຜົນງານ:
# sudo perf report
ທັງ ໝົດ ຂອງ subcommands ຂ້າງເທິງນີ້ມີ ໜ້າ ຜູ້ຊາຍທີ່ອຸທິດຕົນທີ່ສາມາດຖືກເອີ້ນວ່າ:
# man perf-subcommand
ບ່ອນທີ່ subcommand ແມ່ນທັງບັນຊີລາຍຊື່, ສະຖິຕິ, ອັນດັບ ໜຶ່ງ, ບັນທຶກ, ຫຼືລາຍງານ. ເຫຼົ່ານີ້ແມ່ນ subcommands ທີ່ຖືກນໍາໃຊ້ຫຼາຍທີ່ສຸດ; ສ່ວນອື່ນໆແມ່ນຢູ່ໃນເອກະສານ (ອ້າງອີງເຖິງພາກສະຫຼຸບສັງລວມ ສຳ ລັບການເຊື່ອມຕໍ່).
ບົດສະຫຼຸບ
ໃນຄູ່ມືນີ້ພວກເຮົາໄດ້ແນະ ນຳ ໃຫ້ທ່ານຮູ້ກ່ຽວກັບເຄື່ອງມືທີ່ດີເລີດ, ເຄື່ອງມືໃນການກວດສອບແລະການວິເຄາະ ສຳ ລັບ Linux. ພວກເຮົາຂໍແນະ ນຳ ໃຫ້ທ່ານຄຸ້ນເຄີຍກັບເອກະສານທີ່ຖືກຮັກສາໄວ້ໃນ https://perf.wiki.kernel.org.
ຖ້າທ່ານພົບແອັບພລິເຄຊັນທີ່ໃຊ້ຊັບພະຍາກອນສ່ວນຮ້ອຍ, ທ່ານອາດຈະພິຈາລະນາດັດແກ້ລະຫັດແຫຼ່ງ, ຫຼືໃຊ້ທາງເລືອກອື່ນ.
ຖ້າທ່ານມີ ຄຳ ຖາມກ່ຽວກັບບົດຂຽນນີ້ຫລື ຄຳ ແນະ ນຳ ເພື່ອປັບປຸງ, ພວກເຮົາທຸກຄົນເປັນຫູ. ຮູ້ສຶກວ່າບໍ່ເສຍຄ່າທີ່ຈະເຂົ້າຫາພວກເຮົາໂດຍໃຊ້ແບບຟອມ ຄຳ ເຫັນຂ້າງລຸ່ມນີ້.