perf-trace - ക്ലൗഡിൽ ഓൺലൈനിൽ

Ubuntu Online, Fedora Online, Windows online emulator അല്ലെങ്കിൽ MAC OS ഓൺലൈൻ എമുലേറ്റർ എന്നിങ്ങനെയുള്ള ഞങ്ങളുടെ ഒന്നിലധികം സൗജന്യ ഓൺലൈൻ വർക്ക്സ്റ്റേഷനുകളിലൊന്ന് ഉപയോഗിച്ച് OnWorks സൗജന്യ ഹോസ്റ്റിംഗ് ദാതാവിൽ പ്രവർത്തിപ്പിക്കാവുന്ന കമാൻഡ് പെർഫ്-ട്രേസ് ആണിത്.

പട്ടിക:

NAME


perf-trace - സ്‌ട്രേസ് പ്രചോദിത ഉപകരണം

സിനോപ്സിസ്


perf പിന്തുടരുക
perf പിന്തുടരുക റെക്കോര്ഡ്

വിവരണം


ഈ കമാൻഡ് ടാർഗെറ്റുമായി ബന്ധപ്പെട്ട ഇവന്റുകൾ കാണിക്കും, തുടക്കത്തിൽ syscalls, പക്ഷേ
പേജ് തെറ്റുകൾ, ടാസ്‌ക് ലൈഫ് ടൈം ഇവന്റുകൾ, ഷെഡ്യൂളിംഗ് ഇവന്റുകൾ മുതലായവ പോലുള്ള മറ്റ് സിസ്റ്റം ഇവന്റുകൾ.

മറ്റ് perf പോലെയുള്ള perf.data ഫയലുകൾക്കൊപ്പം പ്രവർത്തിക്കുന്നതിന് പുറമേ ഒരു തത്സമയ മോഡ് ടൂളാണിത്
ഉപകരണങ്ങൾ. ഉപയോഗിച്ച് ഫയലുകൾ സൃഷ്ടിക്കാൻ കഴിയും perf റെക്കോര്ഡ് കമാൻഡ് എന്നാൽ സെഷൻ ആവശ്യമാണ്
raw_syscalls ഇവന്റുകൾ ഉൾപ്പെടുത്തുക (-ഇ raw_syscalls:*). പകരമായി, perf പിന്തുടരുക റെക്കോര്ഡ് കഴിയും
ഇവന്റുകൾ എഴുതുമ്പോൾ raw_syscalls ഇവന്റുകൾ സ്വയമേവ ഉൾപ്പെടുത്തുന്നതിനുള്ള ഒരു കുറുക്കുവഴിയായി ഉപയോഗിക്കുന്നു
ഒരു ഫയലിലേക്ക്.

പെർഫ് ട്രെയ്‌സിന് ഇനിപ്പറയുന്ന ഓപ്ഷനുകൾ ബാധകമാണ്; ട്രേസ് റെക്കോർഡ് പെർഫ് ചെയ്യുന്നതിനുള്ള ഓപ്ഷനുകൾ ഇതിൽ കാണാം
പെർഫ് റെക്കോർഡ് മാൻ പേജ്.

ഓപ്ഷനുകൾ


-a, --all-cpus
എല്ലാ CPU-കളിൽ നിന്നും സിസ്റ്റം-വൈഡ് കളക്ഷൻ.

-e, --expr
കാണിക്കാനുള്ള syscalls ലിസ്റ്റ്, നിലവിൽ syscall പേരുകൾ മാത്രം. കൂടെ പ്രിഫിക്‌സ് ചെയ്യുന്നു! എല്ലാം കാണിക്കുന്നു
syscalls എന്നാൽ വ്യക്തമാക്കിയവ. നിങ്ങൾക്ക് അതിൽ നിന്ന് രക്ഷപ്പെടേണ്ടി വന്നേക്കാം.

-o, --output=
ഔട്ട്പുട്ട് ഫയലിന്റെ പേര്.

-p, --pid=
നിലവിലുള്ള പ്രോസസ്സ് ഐഡിയിൽ ഇവന്റുകൾ രേഖപ്പെടുത്തുക (കോമയാൽ വേർതിരിച്ച ലിസ്റ്റ്).

-t, --tid=
നിലവിലുള്ള ത്രെഡ് ഐഡിയിൽ ഇവന്റുകൾ രേഖപ്പെടുത്തുക (കോമയാൽ വേർതിരിച്ച ലിസ്റ്റ്).

-u, --uid=
യുഐഡിയുടെ ഉടമസ്ഥതയിലുള്ള ത്രെഡുകളിൽ ഇവന്റുകൾ രേഖപ്പെടുത്തുക. പേര് അല്ലെങ്കിൽ നമ്പർ.

--filter-pids=
ഈ പിഡുകൾക്കും വേണ്ടിയുള്ള ഇവന്റുകൾ ഫിൽട്ടർ ചെയ്യുക പിന്തുടരുക തന്നെ (കോമയാൽ വേർതിരിച്ച ലിസ്റ്റ്).

-v, --verbose=
വെർബോസിറ്റി ലെവൽ.

--അവകാശമില്ല
ചൈൽഡ് ടാസ്‌ക്കുകൾക്ക് കൗണ്ടറുകൾ പാരമ്പര്യമായി ലഭിക്കുന്നില്ല.

-m, --mmap-pages=
mmap ഡാറ്റ പേജുകളുടെ എണ്ണം (രണ്ടിന്റെ പവർ ആയിരിക്കണം) അല്ലെങ്കിൽ അനുബന്ധമായി വലിപ്പം സ്പെസിഫിക്കേഷൻ
യൂണിറ്റ് പ്രതീകം - B/K/M/G. ഏറ്റവും അടുത്തുള്ള പേജുകളുടെ പവർ രണ്ട് ഉള്ളതാക്കി വലുപ്പം റൗണ്ട് അപ്പ് ചെയ്‌തിരിക്കുന്നു
മൂല്യം.

-സി, --സിപിയു
നൽകിയിരിക്കുന്ന സിപിയു ലിസ്റ്റിൽ മാത്രം സാമ്പിളുകൾ ശേഖരിക്കുക. ഒന്നിലധികം CPU-കൾ a ആയി നൽകാം
ഇടമില്ലാത്ത കോമയാൽ വേർതിരിച്ച ലിസ്റ്റ്: 0,1. CPU-കളുടെ ശ്രേണികൾ -: 0-2 ഉപയോഗിച്ച് വ്യക്തമാക്കിയിരിക്കുന്നു. ഇൻ
ഇൻഹെറിറ്റൻസ് മോഡ് ഉള്ള ഓരോ ത്രെഡ് മോഡ് (ഡിഫോൾട്ട്), ഇവന്റുകൾ ക്യാപ്‌ചർ ചെയ്യപ്പെടുമ്പോൾ മാത്രം
നിയുക്ത CPU-കളിൽ ത്രെഡ് എക്സിക്യൂട്ട് ചെയ്യുന്നു. എല്ലാ CPU-കളും നിരീക്ഷിക്കുക എന്നതാണ് ഡിഫോൾട്ട്.

--duration: NM ms-ൽ കൂടുതൽ ദൈർഘ്യമുള്ള ഇവന്റുകൾ മാത്രം കാണിക്കുക.

--sched: ത്രെഡ് റൺടൈം ശേഖരിക്കുകയും സെഷന്റെ അവസാനം ഒരു സംഗ്രഹം നൽകുകയും ചെയ്യുക.

-i --ഇൻപുട്ട് നൽകിയിരിക്കുന്ന ഒരു പെർഫ് ഡാറ്റ ഫയലിൽ നിന്നുള്ള ഇവന്റുകൾ പ്രോസസ്സ് ചെയ്യുക.

-T --time ആദ്യ സാമ്പിളുമായി താരതമ്യപ്പെടുത്തുമ്പോൾ മുഴുവൻ സമയ സ്റ്റാമ്പ് പ്രിന്റ് ചെയ്യുക.

--കോം
പ്രോസസ്സ് COMM അതിന്റെ ഐഡിക്ക് സമീപം കാണിക്കുക, ഡിഫോൾട്ടായി ഓണാണ്, --no-comm ഉപയോഗിച്ച് പ്രവർത്തനരഹിതമാക്കുക.

-s, --സംഗ്രഹം
മിനിറ്റ്, പരമാവധി, ശരാശരി സമയങ്ങൾ (മിസെക്കിൽ) ഉള്ള ത്രെഡ് വഴിയുള്ള സിസ്‌കാലുകളുടെ ഒരു സംഗ്രഹം മാത്രം കാണിക്കുക
ബന്ധു stddev.

-എസ്, --സംഗ്രഹം
മിനിറ്റ്, പരമാവധി, ശരാശരി സമയങ്ങൾ (ഇൻ
msec) കൂടാതെ ബന്ധു stddev.

--ടൂൾ_സ്റ്റാറ്റ്സ്
എത്ര തവണ fd→പഥനാമം ഹുക്കിംഗ് വഴി കണ്ടെത്തി എന്നതുപോലുള്ള ടൂൾ സ്ഥിതിവിവരക്കണക്കുകൾ കാണിക്കുക
syscall return + vfs_getname അല്ലെങ്കിൽ റീഡിംഗ് /proc/pid/fd മുതലായവ വഴി തുറക്കുക.

-F=[എല്ലാം|മിനിറ്റ്|maj], --pf=[എല്ലാം|മിനിറ്റ്|maj]
പേജ് തെറ്റുകൾ കണ്ടെത്തുക. ഓപ്ഷണലായി, നിങ്ങൾക്ക് മൈനർ വേണോ മേജർ വേണോ അതോ എല്ലാം വേണോ എന്ന് വ്യക്തമാക്കാം
പേജ് തെറ്റുകൾ. സ്ഥിര മൂല്യം maj ആണ്.

--syscalls
സിസ്റ്റം കോളുകൾ കണ്ടെത്തുക. ഈ ഓപ്‌ഷനുകൾ സ്ഥിരസ്ഥിതിയായി പ്രവർത്തനക്ഷമമാക്കിയിരിക്കുന്നു.

--സംഭവം
മറ്റ് ഇവന്റുകൾ കണ്ടെത്തുക, കാണുക perf പട്ടിക ഒരു പൂർണ്ണമായ ലിസ്റ്റിനായി.

--proc-map-timeout
നിലവിലുള്ള ത്രെഡുകൾ /proc/XXX/mmap പ്രോസസ്സ് ചെയ്യുമ്പോൾ, ഇതിന് വളരെയധികം സമയമെടുത്തേക്കാം, കാരണം
ഫയൽ വളരെ വലുതായിരിക്കാം. അത്തരം സന്ദർഭങ്ങളിൽ സമയപരിധി ആവശ്യമാണ്. ഈ ഓപ്ഷൻ സമയം സജ്ജമാക്കുന്നു
പരിധിക്ക് പുറത്ത്. ഡിഫോൾട്ട് മൂല്യം 500 ms ആണ്.

പേജ്ഫാൾട്ടുകൾ


പേജ് തെറ്റുകൾ കണ്ടെത്തുമ്പോൾ, ട്രേസിന്റെ ഫോർമാറ്റ് ഇപ്രകാരമാണ്:

തെറ്റ് [ + ] ⇒addr.dso@addr.offset[1]> (
ലെവൽ>).

· min/maj തെറ്റ് സംഭവം ചെറുതാണോ വലുതാണോ എന്ന് സൂചിപ്പിക്കുന്നു;

· ip.symbol ഇൻസ്ട്രക്ഷൻ പോയിന്ററിനുള്ള ചിഹ്നം കാണിക്കുന്നു (തകരാർ സൃഷ്ടിച്ച കോഡ്); എങ്കിൽ
ഡീബഗ് ചിഹ്നങ്ങളൊന്നും ലഭ്യമല്ല, പെർഫ് ട്രേസ് റോ ഐപി പ്രിന്റ് ചെയ്യും;

തെറ്റായ വിലാസത്തിനായി addr.dso DSO കാണിക്കുന്നു;

· മാപ്പ് തരം ഒന്നുകിൽ d നോൺ എക്സിക്യൂട്ടബിൾ മാപ്പുകൾക്കായി അല്ലെങ്കിൽ x എക്സിക്യൂട്ടബിൾ മാപ്പുകൾക്കായി;

· addr ലെവൽ ഒന്നുകിൽ ആണ് k കേർണൽ dso അല്ലെങ്കിൽ . ഉപയോക്താവിന് dso.

ചിഹ്നങ്ങളുടെ റെസല്യൂവിനായി നിങ്ങൾ ഡീബഗ്ഗിംഗ് ചിഹ്നങ്ങൾ ഇൻസ്റ്റാൾ ചെയ്യേണ്ടതായി വന്നേക്കാം.

ദൈർഘ്യം നിലവിൽ എപ്പോഴും 0 ആണെന്നും അത് യഥാർത്ഥ സമയം പ്രതിഫലിപ്പിക്കുന്നില്ലെന്നും ദയവായി ശ്രദ്ധിക്കുക
കൈകാര്യം ചെയ്യാനുള്ള തെറ്റ് എടുത്തു!

--verbose വ്യക്തമാക്കുമ്പോൾ, രണ്ട് IP-ക്കും ലഭ്യമായ എല്ലാ വിവരങ്ങളും പ്രിന്റ് ചെയ്യാൻ perf ട്രേസ് ശ്രമിക്കുന്നു
രൂപത്തിൽ തെറ്റ് വിലാസവും dso@ ചിഹ്നം[2]+ഓഫ്സെറ്റ്.

ഉദാഹരണങ്ങൾ


പ്രധാന പേജ് തെറ്റുകൾ മാത്രം കണ്ടെത്തുക:

$ പെർഫ് ട്രെയ്‌സ് --നോ-സിസ്‌കോൾസ് -എഫ്

സിസ്‌കാളുകൾ, വലുതും ചെറുതുമായ പേജ് തെറ്റുകൾ കണ്ടെത്തുക:

$ perf ട്രെയ്സ് -F എല്ലാം

1416.547 (0.000 ms): പൈത്തൺ/20235 majfault [CRYPTO_push_info_+0x0] => /lib/x86_64-linux-gnu/libcrypto.so.1.0.0@0x61be0 (x.)

നിങ്ങൾക്ക് കാണാനാകുന്നതുപോലെ, പൈത്തൺ പ്രക്രിയയിൽ പ്രധാന പേജ് തെറ്റ് ഉണ്ടായിരുന്നു
CRYPTO_push_info_ പതിവ്, libcrypto.so-ൽ എവിടെയോ തെറ്റി.

onworks.net സേവനങ്ങൾ ഉപയോഗിച്ച് പെർഫ്-ട്രേസ് ഓൺലൈനായി ഉപയോഗിക്കുക



ഏറ്റവും പുതിയ ലിനക്സ്, വിൻഡോസ് ഓൺലൈൻ പ്രോഗ്രാമുകൾ