ນີ້ແມ່ນ operf ຄໍາສັ່ງທີ່ສາມາດດໍາເນີນການໄດ້ໃນ OnWorks ຜູ້ໃຫ້ບໍລິການໂຮດຕິ້ງຟຣີໂດຍໃຊ້ຫນຶ່ງໃນຫຼາຍສະຖານີເຮັດວຽກອອນໄລນ໌ຂອງພວກເຮົາເຊັ່ນ Ubuntu Online, Fedora Online, Windows online emulator ຫຼື MAC OS emulator ອອນໄລນ໌.
ໂຄງການ:
NAME
operf - ເຄື່ອງມື profiler ປະສິດທິພາບສໍາລັບ Linux
ສະຫຼຸບສັງລວມ
ປະຕິບັດການ [ ທາງເລືອກໃນການ ] [ --system-wide | --pid | [ຄໍາສັ່ງ [ args ] ] ]
ລາຍລະອຽດ
Operaf ເປັນເຄື່ອງມື profiler ທີ່ສະຫນອງໃຫ້ກັບ OProfile. Operaf ໃຊ້ Linux Performance Events
ລະບົບຍ່ອຍແລະດັ່ງນັ້ນ, ບໍ່ຕ້ອງການໄດເວີ oprofile kernel ທີ່ລ້າສະໄຫມ.
ໂດຍຄ່າເລີ່ມຕົ້ນ, operf ໃຊ້ /oprofile_data ເປັນ session-dir ແລະເກັບຮັກສາໂປຣໄຟລ໌
ຂໍ້ມູນຢູ່ທີ່ນັ້ນ. ທ່ານສາມາດປ່ຽນແປງນີ້ໂດຍວິທີການ --session-dir ທາງເລືອກ. ໂພດປົກກະຕິ -
ເຄື່ອງມືການວິເຄາະໂປຣໄຟລ໌ເຊັ່ນ: ບົດລາຍງານ(1) ແລະ ໝາຍເຫດ(1) ສາມາດນໍາໃຊ້ເພື່ອສ້າງ
ບົດລາຍງານໂປຣໄຟລ໌. ເວັ້ນເສຍແຕ່ ກ session-dir ຖືກລະບຸໄວ້, ເຄື່ອງມືການວິເຄາະຫຼັງການປຸງແຕ່ງ
ຈະຄົ້ນຫາຕົວຢ່າງໃນ /oprofile_data ກ່ອນ. ຖ້າໄດເລກະທໍລີນັ້ນບໍ່ໄດ້
ມີຢູ່, ເຄື່ອງມືຫຼັງການປຸງແຕ່ງໃຊ້ມາດຕະຖານ session-dir ຂອງ /var/lib/oprofile.
ສະຖິຕິ, ເຊັ່ນຕົວຢ່າງທັງຫມົດທີ່ໄດ້ຮັບແລະການສູນເສຍ, ຖືກຂຽນໄວ້ໃນ operf.log
ໄຟລ໌ທີ່ສາມາດໄດ້ຮັບການພົບເຫັນຢູ່ໃນ /sample directory.
RUN ຮູບແບບ
ຫນຶ່ງ (ແລະພຽງແຕ່ຫນຶ່ງ) ຂອງດັ່ງຕໍ່ໄປນີ້ ແລ່ນ ໂຫມດ ຕ້ອງລະບຸ:
ຄໍາສັ່ງ[args]
ຄໍາສັ່ງຫຼືຄໍາຮ້ອງສະຫມັກທີ່ຈະ profiled. ໂຕ້ຖຽງ ແມ່ນການໂຕ້ຖຽງການປ້ອນຂໍ້ມູນທີ່
ຄໍາສັ່ງຫຼືຄໍາຮ້ອງສະຫມັກຮຽກຮ້ອງໃຫ້ມີ.
--pid / -p ອັກເສບທ້ອງນ້ອຍ
ຕົວເລືອກນີ້ເຮັດໃຫ້ operf ໂປຣໄຟລ໌ແອັບພລິເຄຊັນທີ່ເຮັດວຽກຢູ່. ອັກເສບທ້ອງນ້ອຍ ຄວນຈະເປັນ
ID ຂະບວນການຂອງຂະບວນການທີ່ທ່ານຕ້ອງການໂປຣໄຟລ໌. ເມື່ອສໍາເລັດການສ້າງໂປຣໄຟລ໌ (ຕົວຢ່າງ, ເມື່ອ
ຂະບວນການ profiled ສິ້ນສຸດລົງ), ກົດ Ctrl-c ເພື່ອຢຸດ operf. ຖ້າເຈົ້າແລ່ນ ປະຕິບັດການ --pid ເປັນຫນຶ່ງ
ວຽກພື້ນຖານ (ie, ກັບ &), ທ່ານ ຕ້ອງ ຢຸດມັນໃນລັກສະນະຄວບຄຸມໃນຄໍາສັ່ງ
ເພື່ອໃຫ້ມັນປະມວນຜົນຂໍ້ມູນໂປຣໄຟລ໌ທີ່ມັນເກັບໄດ້. ໃຊ້ ຂ້າ -SIGINT
ສໍາລັບຈຸດປະສົງນີ້.
ຈໍາກັດ: ໃນເວລາທີ່ການນໍາໃຊ້ທາງເລືອກນີ້ເພື່ອ profile ຄໍາຮ້ອງສະຫມັກຫຼາຍກະທູ້ທີ່
ຍັງ fork ຂະບວນການໃຫມ່, ຈົ່ງຮູ້ວ່າຕົວຢ່າງສໍາລັບຂະບວນການທີ່ຖືກ forked
ກ່ອນທີ່ຈະເລີ່ມ profileing ອາດຈະບໍ່ຖືກບັນທຶກໄວ້ (ຂຶ້ນກັບໄລຍະເວລາຂອງ thread
ການສ້າງແລະໃນເວລາທີ່ operf ໄດ້ເລີ່ມຕົ້ນ).
-- ລະບົບ / -s
ຕົວເລືອກນີ້ແມ່ນເພື່ອປະຕິບັດໂປຣໄຟລ໌ທົ່ວລະບົບ. ທ່ານຕ້ອງມີສິດອໍານາດຮາກ
ເພື່ອດໍາເນີນການ operf ໃນຮູບແບບນີ້. ເມື່ອສຳເລັດການສ້າງໂປຣໄຟລ໌, Ctrl-c ເພື່ອຢຸດ operf. ຖ້າເຈົ້າ
ແລ່ນ ປະຕິບັດການ -- ລະບົບ ເປັນວຽກພື້ນຖານ (ie, ມີ &), ທ່ານ ຕ້ອງ ຢຸດມັນຢູ່ໃນ
ລັກສະນະທີ່ຄວບຄຸມເພື່ອໃຫ້ມັນປະມວນຜົນຂໍ້ມູນໂປຣໄຟລ໌ທີ່ມັນເກັບໄດ້.
ການນໍາໃຊ້ ຂ້າ -SIGINT ສໍາລັບຈຸດປະສົງນີ້. ມັນໄດ້ຖືກແນະນໍາວ່າໃນເວລາທີ່ແລ່ນ
operf ດ້ວຍຕົວເລືອກນີ້, ໄດເລກະທໍລີທີ່ເຮັດວຽກໃນປະຈຸບັນຂອງຜູ້ໃຊ້ຄວນຈະເປັນ / root ຫຼື
ບັນຊີຍ່ອຍຂອງ / root ເພື່ອຫຼີກເວັ້ນການເກັບຮັກສາໄຟລ໌ຂໍ້ມູນຕົວຢ່າງຢູ່ໃນສະຖານທີ່ທີ່ສາມາດເຂົ້າເຖິງໄດ້ໂດຍ
ຜູ້ໃຊ້ປົກກະຕິ.
ອື່ນໆ OPTIONS
--vmlinux / -k vmlinux_path
ໄຟລ໌ vmlinux ທີ່ກົງກັບ kernel ແລ່ນທີ່ມີສັນຍາລັກ ແລະ/ຫຼື debuginfo.
ຕົວຢ່າງ Kernel ຈະຖືກນໍາໄປໃຊ້ເປັນຄູ່ນີ້, ອະນຸຍາດໃຫ້ເຄື່ອງມືຫຼັງການປຸງແຕ່ງ
(ເຊັ່ນ: opreport) ເພື່ອສະແດງຕົວຢ່າງໃຫ້ກັບສັນຍາລັກ kernel ທີ່ເຫມາະສົມ.
ຂໍ້ມູນສັນຍາລັກ kernel ອາດຈະໄດ້ຮັບຈາກ /proc/kallsyms ຖ້າຜູ້ໃຊ້ເຮັດ
ບໍ່ລະບຸໄຟລ໌ vmlinux. ທີ່ຢູ່ສັນຍາລັກໄດ້ຖືກມອບໃຫ້ໃນ /proc/kallsyms if
ອະນຸຍາດໂດຍການຕັ້ງຄ່າຂອງ /proc/sys/kernel/kptr_restrict.
ຖ້າ --vmlinux ທາງເລືອກບໍ່ໄດ້ຖືກນໍາໃຊ້ແລະສັນຍາລັກ kernel ບໍ່ສາມາດໄດ້ຮັບຈາກ
/proc/kallsyms, ຫຼັງຈາກນັ້ນຕົວຢ່າງ kernel ທັງຫມົດແມ່ນຖືວ່າ "no-vmlinux", ເຊິ່ງແມ່ນ
ພຽງແຕ່ຖັງເກັບຕົວຢ່າງແລະບໍ່ແມ່ນໄຟລ໌ຕົວຈິງ.
--ເຫດການ / -e ເຫດການ1[,ເຫດການ2[,...]]
ທາງເລືອກນີ້ແມ່ນສໍາລັບການຖ່າຍທອດບັນຊີລາຍຊື່ທີ່ແຍກດ້ວຍເຄື່ອງໝາຍຈຸດຂອງສະເພາະເຫດການສໍາລັບ
ການສ້າງໂປຣໄຟລ໌. ແຕ່ລະເຫດການ spec ແມ່ນຂອງຮູບແບບ:
ຊື່:count[:unitmask[:kernel[:user]]]
ໄດ້ ນັບ ມູນຄ່າຖືກນໍາໃຊ້ເພື່ອຄວບຄຸມອັດຕາການເກັບຕົວຢ່າງສໍາລັບ profile; ມັນແມ່ນ
ຈໍານວນເຫດການທີ່ຈະເກີດຂຶ້ນລະຫວ່າງຕົວຢ່າງ. ອັດຕາຖືກຫຼຸດລົງໂດຍການລະບຸ a
ສູງ ນັບ value — ie, ຈໍານວນເຫດການທີ່ສູງຂຶ້ນທີ່ຈະເກີດຂຶ້ນລະຫວ່າງຕົວຢ່າງ.
ທ່ານສາມາດກໍານົດ ໜ້າກາກຫົວຫນ່ວຍ ຄ່າໂດຍໃຊ້ຄ່າຕົວເລກ (ຄ່າ hex ຕ້ອງ
ເລີ່ມຕົ້ນດ້ວຍ "0x") ຫຼືຊື່ສັນຍາລັກ (ຖ້າ ຊື່= ພາກສະຫນາມແມ່ນສະແດງຢູ່ໃນ
ໂພຊະນາການ ຜົນຜະລິດ). ສໍາລັບບາງຫນ້າກາກຫນ່ວຍທີ່ມີຊື່, ຄ່າ hex ແມ່ນບໍ່ເປັນເອກະລັກ; ດັ່ງນັ້ນ,
ເຄື່ອງມື OProfile ບັງຄັບໃຫ້ລະບຸຄ່າໜ້າກາກໜ່ວຍດັ່ງກ່າວຕາມຊື່. ຖ້າບໍ່ມີຫນ້າກາກຫົວຫນ່ວຍ
ຖືກກໍານົດໄວ້, ຄ່າເລີ່ມຕົ້ນຂອງຫນ້າກາກຫນ່ວຍບໍລິການສໍາລັບເຫດການແມ່ນຖືກນໍາໃຊ້.
ໄດ້ kernel ແລະ ຜູ້ໃຊ້ ພາກສ່ວນຂອງສະເພາະເຫດການແມ່ນຄ່າສອງ ('1' ຫຼື '0')
ຊີ້ບອກວ່າຈະເກັບຕົວຢ່າງສໍາລັບພື້ນທີ່ kernel ແລະພື້ນທີ່ຜູ້ໃຊ້ຫຼືບໍ່.
ຫມາຍເຫດ: ໃນຄໍາສັ່ງທີ່ຈະລະບຸ kernel/ຜູ້ໃຊ້ bits, ທ່ານຍັງຕ້ອງລະບຸ a ໜ້າກາກຫົວຫນ່ວຍ
ຄ່າ, ເຖິງແມ່ນວ່າປະເພດໂປເຊດເຊີ (ຫຼືເຫດການທີ່ລະບຸ) ບໍ່ໄດ້ໃຊ້ຫນ້າກາກຫນ່ວຍ
— ໃນກໍລະນີນີ້, ໃຊ້ຄ່າ '0' ເພື່ອຫມາຍຄວາມວ່າຫນ້າກາກຫນ່ວຍບໍລິການ null; ຍົກຕົວຢ່າງ:
-e INST_RETIRED_ANY_P:100000:0:1:0
^ ^ ^ ^
| | | |--- '0': ບໍ່ບັນທຶກຕົວຢ່າງພື້ນທີ່ຂອງຜູ້ໃຊ້
| | |-- '1': ບັນທຶກຕົວຢ່າງພື້ນທີ່ kernel
| |-- '0': ໜ້າກາກຫົວຫນ່ວຍ null
|-- ມູນຄ່ານັບ
ຊື່ເຫດການສໍາລັບບາງລະບົບ IBM PowerPC ປະກອບມີ a _GRP (ຈໍານວນກຸ່ມ) ຕໍ່ທ້າຍ.
ທ່ານສາມາດຜ່ານທັງຊື່ເຫດການເຕັມຫຼືຊື່ເຫດການພື້ນຖານ (ie, ໂດຍບໍ່ມີການ
suffix) ກັບ ປະຕິບັດການ. ຖ້າຊື່ເຫດການພື້ນຖານຖືກຜ່ານ, ປະຕິບັດການ ຈະອັດຕະໂນມັດ
ເລືອກຕົວຫຍໍ້ຂອງກຸ່ມທີ່ເໝາະສົມສຳລັບເຫດການ; ດັ່ງນັ້ນ, OProfile post-
ເຄື່ອງມືປະມວນຜົນຈະສະແດງຊື່ເຫດການທີ່ແທ້ຈິງທີ່ປະກອບມີຈໍານວນກຸ່ມ
ຕໍ່ທ້າຍ. ເມື່ອບໍ່ມີການລະບຸສະເພາະເຫດການ, ເຫດການເລີ່ມຕົ້ນສໍາລັບການແລ່ນ
ປະເພດໂປເຊດເຊີຈະຖືກໃຊ້ສໍາລັບການສ້າງໂປຣໄຟລ໌. ໃຊ້ ໂພຊະນາການ ເພື່ອບອກເຫດການທີ່ມີຢູ່
ສໍາລັບປະເພດໂປເຊດເຊີຂອງທ່ານ.
--callgraph / -g
ຕົວເລືອກນີ້ຊ່ວຍໃຫ້ບັນທຶກ callgraph ໃນລະຫວ່າງການສ້າງໂປຣໄຟລ໌. ຫມາຍເຫດ: ສະບັບເຕັມ
callchain ຖືກບັນທຶກໄວ້, ດັ່ງນັ້ນບໍ່ມີຂອບເຂດຈໍາກັດຄວາມເລິກ.
--ກະທູ້ແຍກຕ່າງຫາກ / -t
ຕົວເລືອກນີ້ຈັດປະເພດຕົວຢ່າງໂດຍ ID ກຸ່ມກະທູ້ (tgid) ແລະ ID thread (tid). ໄດ້
ທາງເລືອກ '--separate-thread' ແມ່ນເປັນປະໂຫຍດສໍາລັບການເບິ່ງຕົວຢ່າງຕໍ່ກະທູ້ໃນຫຼາຍ.
ຄໍາຮ້ອງສະຫມັກ threaded. ເມື່ອໃຊ້ຮ່ວມກັບທາງເລືອກ '--system-wide',
ທາງເລືອກ '--separate-thread' ຍັງເປັນປະໂຫຍດສໍາລັບການເບິ່ງຕໍ່ຂະບວນການ (ເຊັ່ນ, per-
thread group) ຕົວຢ່າງສໍາລັບກໍລະນີທີ່ຂະບວນການຫຼາຍອັນກໍາລັງປະຕິບັດຄືກັນ
ໂຄງການໃນລະຫວ່າງການດໍາເນີນການ profile.
--cpu ແຍກ / -c
ຕົວເລືອກນີ້ຈັດປະເພດຕົວຢ່າງໂດຍ CPU.
--session-dir / -d ເສັ້ນທາງ
ຕົວເລືອກນີ້ລະບຸເສັ້ນທາງຂອງເຊດຊັນເພື່ອເກັບຂໍ້ມູນຕົວຢ່າງ. ຖ້າບໍ່ລະບຸ,
ຂໍ້ມູນໄດ້ຖືກບັນທຶກໄວ້ໃນ opprofile_data ໄດເລກະທໍລີຢູ່ໃນເສັ້ນທາງປະຈຸບັນ.
--lazy-ແປງ / -l
ໃຊ້ທາງເລືອກນີ້ເພື່ອຫຼຸດຜ່ອນການ overhead ຂອງ ປະຕິບັດການ ໃນລະຫວ່າງການສ້າງໂປຣໄຟລ໌. ປົກກະຕິ, profile
ຂໍ້ມູນທີ່ໄດ້ຮັບຈາກ kernel ຈະຖືກປ່ຽນເປັນຮູບແບບ OProfile ໃນລະຫວ່າງການສ້າງ profile
ເວລາ. ໂດຍທົ່ວໄປແລ້ວນີ້ບໍ່ແມ່ນບັນຫາໃນເວລາສ້າງໂປຣໄຟລ໌ແອັບພລິເຄຊັນດຽວ. ແຕ່ໃນເວລາທີ່
ການນໍາໃຊ້ -- ລະບົບ ທາງເລືອກ, ນີ້ຂະບວນການປ່ຽນໃຈເຫລື້ອມໃສໃນການບິນສາມາດເຮັດໃຫ້ເກີດ
ເຫັນໄດ້ຊັດເຈນ, ໂດຍສະເພາະໃນລະບົບຫຼາຍໂປເຊດເຊີທີ່ຫຍຸ້ງຢູ່. ໄດ້ --ຂີ້ຄ້ານ-
ການປ່ຽນແປງ ທາງເລືອກຊີ້ນໍາ ປະຕິບັດການ ລໍຖ້າຈົນກ່ວາ profileing ສໍາເລັດເພື່ອເຮັດ
ການປ່ຽນຂໍ້ມູນໂປຣໄຟລ໌.
ຫມາຍເຫດ: ທາງເລືອກນີ້ແມ່ນ ບໍ່ ແນະນໍາໃຫ້ນໍາໃຊ້ຮ່ວມກັບ --pid
ທາງເລືອກສໍາລັບການ profileing ຂະບວນການຫຼາຍກະທູ້. ອີງຕາມຄໍາສັ່ງຂອງກະທູ້
ການສ້າງ (ຫຼື forking ຂອງຂະບວນການໃຫມ່), ທ່ານອາດຈະບໍ່ໄດ້ຮັບຕົວຢ່າງໃດໆສໍາລັບການໃຫມ່
ກະທູ້/ຂະບວນການ.
-- ຕື່ມໃສ່ / -a
ໂດຍຕົວຢ່າງ, ປະຕິບັດການ ຍ້າຍຂໍ້ມູນໂປຣໄຟລ໌ເກົ່າຈາກ /samples/ປະຈຸບັນເຖິງ
/sample/ກ່ອນໜ້ານີ້. ຖ້າໂປຣໄຟລ໌ 'ກ່ອນໜ້າ' ມີຢູ່ແລ້ວ, ມັນຈະ
ຖືກທົດແທນ. ຖ້າ -- ຕື່ມໃສ່ ທາງເລືອກແມ່ນຜ່ານ, ຂໍ້ມູນໂປຣໄຟລ໌ເກົ່າຖືກປະໄວ້
ແລະຂໍ້ມູນໂປຣໄຟລ໌ໃໝ່ຈະຖືກເພີ່ມໃສ່ມັນ, ແລະໂປຣໄຟລ໌ 'ກ່ອນໜ້າ' (ຖ້າອັນໜຶ່ງ
ທີ່ມີຢູ່ແລ້ວ) ຈະຍັງຄົງ untouched. ເພື່ອເຂົ້າເຖິງໂປຣໄຟລ໌ 'ກ່ອນໜ້າ', ພຽງແຕ່ເພີ່ມ a
ສະເພາະຂອງເຊດຊັນຕໍ່ກັບການຮຽກຮ້ອງປົກກະຕິຂອງເຄື່ອງມືຫຼັງການປະມວນຜົນ opprofile.
ຍົກຕົວຢ່າງ:
ບົດລາຍງານ ຊ່ວງເວລາ: ກ່ອນໜ້ານີ້
-- verbose / -V ລະດັບ
ບັນຊີລາຍຊື່ທີ່ຂັ້ນດ້ວຍເຄື່ອງໝາຍຈຸດຂອງຄ່າຄວບຄຸມການດີບັກ, ໃຊ້ເພື່ອເພີ່ມຄວາມຄ່ອງແຄ້ວ
ຂອງຜົນຜະລິດ. ຄ່າທີ່ຖືກຕ້ອງແມ່ນ: debug, record, convert, misc, sfile, arcs, or
ມູນຄ່າພິເສດ, 'ທັງຫມົດ'.
- ການປ່ຽນແປງ / -v
ສະແດງເວີຊັນ operf.
- ຊ່ວຍ / -h
ສະແດງຂໍ້ຄວາມການນໍາໃຊ້ໂດຍຫຍໍ້.
-- ການນໍາໃຊ້ / -u
ສະແດງຂໍ້ຄວາມການນໍາໃຊ້ໂດຍຫຍໍ້.
EXAMPLE
$ operf ເຮັດ
ເວີຊັ່ນ
ຫນ້າຜູ້ຊາຍນີ້ແມ່ນປະຈຸບັນສໍາລັບ opprofile-1.1.0.
ໃຊ້ operf ອອນໄລນ໌ໂດຍໃຊ້ບໍລິການ onworks.net