GoGPT Best VPN GoSearch

Favicon OnWorks

jejak-cmd-record - Dalam talian di Awan

Jalankan jejak-cmd-record dalam penyedia pengehosan percuma OnWorks melalui Ubuntu Online, Fedora Online, emulator dalam talian Windows atau emulator dalam talian MAC OS

Ini ialah arahan jejak-cmd-rekod yang boleh dijalankan dalam penyedia pengehosan percuma OnWorks menggunakan salah satu daripada berbilang stesen kerja dalam talian percuma kami seperti Ubuntu Online, Fedora Online, emulator dalam talian Windows atau emulator dalam talian MAC OS.

JADUAL:

NAMA


trace-cmd-record - merekodkan jejak daripada pengesan dalaman Ftrace Linux

SINOPSIS


jejak-cmd rekod [PILIHAN] [arahan]

DESCRIPTION


. jejak-cmd(1) arahan rekod akan menyediakan pengesan kernel Ftrace Linux untuk merekodkan
pemalam atau peristiwa tertentu yang berlaku semasa arahan melaksanakan. Jika tiada arahan
diberikan, maka ia akan merakam sehingga pengguna menekan Ctrl-C.

Perintah rekod jejak-cmd akan menyediakan pengesan Ftrace untuk mula menjejak pelbagai
peristiwa atau pemalam yang diberikan pada baris arahan. Ia kemudiannya akan mencipta beberapa
proses mengesan (satu setiap CPU) yang akan mula merakam daripada penimbal cincin kernel
terus ke dalam fail sementara. Apabila arahan selesai (atau Ctrl-C dipukul) semua
fail akan digabungkan menjadi fail trace.dat yang kemudian boleh dibaca (lihat
jejak-cmd-laporan(1)).

PILIHAN


-p Pasangkan
Tentukan pemalam jejak. Pemalam ialah pengesan Ftrace khas yang biasanya melakukan lebih daripada
hanya menjejaki sesuatu peristiwa. Pemalam biasa ialah fungsi, graf_fungsi, preemptirqsoff,
irqsoff, preemptoff, dan bangun. Pemalam mesti disokong oleh kernel yang sedang berjalan. Kepada
lihat senarai pemalam yang tersedia, lihat jejak-cmd-senarai(1).

-e kategori acara
Tentukan peristiwa untuk dikesan. Pelbagai titik jejak statik telah ditambahkan pada Linux
isirong. Mereka dikumpulkan mengikut subsistem di mana anda boleh mendayakan semua acara yang diberikan
subsistem atau tentukan peristiwa tertentu untuk didayakan. The kategori acara adalah dalam format
"subsistem: nama-acara". Anda juga boleh hanya menentukan subsistem tanpa
:nama acara atau nama acara tanpa "subsistem:". Menggunakan "-e sched_switch" akan
dayakan acara "sched_switch" manakala, "-e sched" akan membolehkan semua acara di bawah
subsistem "jadual".

'Acara' juga boleh mengandungi ungkapan glob. Iaitu, "*stat*" akan
pilih semua peristiwa (atau subsistem) yang mempunyai aksara "stat" dalam mereka
nama.

Kata kunci 'semua' boleh digunakan untuk mendayakan semua acara.

-a
Setiap peristiwa yang sedang direkodkan mempunyai fail format output yang disimpan dalam fail output
untuk dapat memaparkannya kemudian. Tetapi jika acara lain didayakan dalam jejak tanpa
pengetahuan trace-cmd, format acara tersebut tidak akan direkodkan dan trace-cmd
laporan tidak akan dapat memaparkannya. Jika ini berlaku, maka nyatakan -a
pilihan dan format untuk semua acara dalam sistem akan disimpan.

-T
Dayakan surih tindanan pada setiap acara. Sebagai contoh:

-0 [003] 58549.289091: sched_switch: kworker/0:1:0 [120] R ==> trace-cmd:2603 [120]
-0 [003] 58549.289092: kernel_stack:
=> jadual (ffffffff814b260e)
=> cpu_idle (ffffffff8100a38c)
=> permulaan_menengah (ffffffff814ab828)

--func-stack
Dayakan surih tindanan pada semua fungsi. Ambil perhatian bahawa ini hanya terpakai untuk "fungsi"
pengesan pemalam, dan hanya akan berkuat kuasa jika pilihan -l digunakan dan berjaya
mengehadkan fungsi. Jika pengesan fungsi tidak ditapis, dan jejak tindanan adalah
didayakan, anda boleh mengunci mesin secara langsung.

-f menapis
Tentukan penapis untuk acara sebelumnya. Ini mesti datang selepas a -e. Ini akan menapis
apakah peristiwa yang direkodkan berdasarkan kandungan acara tersebut. Penapisan dihantar ke
kernel secara langsung jadi penapisan yang dibenarkan mungkin bergantung pada versi kernel
kamu ada. Pada asasnya, ia akan membolehkan anda menggunakan notasi C untuk menyemak sama ada sesuatu peristiwa itu sepatutnya
diproses atau tidak.

==, >=, <=, >, <, &, |, && dan ||

Di atas biasanya selamat digunakan untuk membandingkan medan.

-R mencetuskan
Tentukan pencetus untuk acara sebelumnya. Ini mesti datang selepas a -e. Ini akan menambah a
pencetus yang diberikan kepada peristiwa yang diberikan. Untuk hanya mendayakan pencetus dan bukan peristiwa itu sendiri,
kemudian letak acara selepas -v pilihan.

Lihat Documentation/trace/events.txt dalam sumber kernel Linux untuk maklumat lanjut
maklumat mengenai pencetus.

-v
Ini akan menyebabkan semua peristiwa yang dinyatakan selepasnya pada baris arahan tidak dapat dikesan.
Ini berguna untuk memilih subsistem untuk dikesan tetapi untuk meninggalkan pelbagai peristiwa.
Sebagai Contoh: "-e sched -v -e "*stat\*"" akan mendayakan semua acara dalam subsistem jadual
kecuali mereka yang mempunyai "stat" dalam nama mereka.

Nota: pilihan *-v* telah diambil dari jalan grep(1) menyongsangkan yang berikut
perlawanan.

-F
Ini akan menapis hanya boleh laku yang diberikan pada baris arahan. Jika tiada arahan
diberikan, maka ia akan menapis sendiri (agak sia-sia). menggunakan -F akan membiarkan anda mengesan
hanya peristiwa yang disebabkan oleh arahan yang diberikan.

-P pid
Sama seperti -F tetapi membolehkan anda menentukan ID proses untuk dikesan.

-c
Digunakan dengan sama ada -F untuk mengesan anak-anak proses itu juga.

-C jam
Tetapkan jam surih kepada "jam".

Penggunaan jejak-cmd(1) senaraikan -C untuk melihat jam yang tersedia.

-o fail keluaran
Secara lalai, laporan jejak-cmd akan mencipta a jejak.dat fail. Anda boleh menentukan yang berbeza
fail untuk menulis dengan -o pilihan.

-l nama fungsi
Ini akan mengehadkan fungsi and graf_fungsi pengesan untuk hanya mengesan yang diberikan
nama fungsi. Lebih daripada satu -l boleh ditentukan pada baris arahan untuk mengesan lebih banyak lagi
daripada satu fungsi. Penggunaan ekspresi glob yang terhad juga dibenarkan. Ini adalah
perlawanan* untuk hanya menapis fungsi yang bermula dengan sepadan dengan. *perlawanan untuk menapis sahaja
fungsi yang berakhir dengan sepadan dengan. *perlawanan\* untuk hanya menapis pada fungsi yang mengandungi
sepadan dengan.

-g nama fungsi
Pilihan ini adalah untuk pemalam function_graph. Ia akan membuat graf fungsi yang diberikan. Itu
ialah, ia hanya akan mengesan fungsi dan semua fungsi yang dipanggil. Anda boleh mempunyai lebih banyak
daripada satu -g pada baris arahan.

-n nama fungsi
Ini mempunyai kesan yang bertentangan dengan -l. Fungsi yang diberikan dengan -n pilihan tidak akan
dikesan. Ini diutamakan, iaitu, jika anda memasukkan fungsi yang sama untuk kedua-duanya -n
and -l, ia tidak akan dikesan.

-d
Sesetengah pemalam pengesan mendayakan pengesan fungsi secara lalai. Seperti pengesan latensi.
Pilihan ini menghalang pengesan fungsi daripada didayakan semasa permulaan.

-D
pilihan -d akan cuba menggunakan pilihan jejak fungsi untuk melumpuhkan pengesan fungsi
(jika ada), jika tidak, ia lalai kepada fail proc:
/proc/sys/kernel/ftrace_enabled, tetapi tidak akan menyentuhnya jika pilihan jejak fungsi adalah
ada. The -D pilihan akan melumpuhkan kedua-dua fail proc ftrace_enabled serta fail
pilihan jejak fungsi jika ia wujud.

Ambil perhatian, ini melumpuhkan pengesanan fungsi untuk semua pengguna, termasuk pengguna
di luar pengesan ftrace (stack_tracer, perf, dll).

-O pilihan
Ftrace mempunyai pelbagai pilihan yang boleh didayakan atau dilumpuhkan. Ini membolehkan anda menetapkan
mereka. Melampirkan teks tidak kepada pilihan menyahdayakannya. Contohnya: "-O nograph-time"
akan melumpuhkan pilihan Ftrace "masa graf".

-s selang
Proses-proses yang dihasilkan oleh trace-cmd untuk merakam daripada penimbal cincin perlu dibangkitkan
buat rakaman. Menetapkan selang kepada sifar akan menyebabkan proses bangun
setiap kali data baharu ditulis ke dalam penimbal. Tetapi kerana Ftrace sedang merakam kernel
aktiviti, tindakan proses ini kembali tidur boleh menyebabkan peristiwa baru ke dalam
penimbal cincin yang akan membangkitkan proses kembali. Ini tidak perlu menambah data tambahan
ke dalam penampan gelang.

Metrik 'selang' ialah mikrosaat. Lalai ditetapkan kepada 1000 (1 ms).
Ini adalah masa setiap proses rakaman akan tidur sebelum bangun
merekodkan sebarang data baharu yang telah ditulis pada penimbal cincin.

-r keutamaan
Keutamaan untuk menjalankan utas tangkapan di. Dalam sistem yang sibuk menangkap jejak
benang mungkin terputus dan peristiwa boleh hilang. Ini meningkatkan keutamaan mereka
utas kepada keutamaan masa nyata (FIFO). Tetapi gunakan pilihan ini dengan berhati-hati, ia juga boleh
mengubah tingkah laku sistem yang dikesan.

-b saiz
Ini menetapkan saiz penimbal cincin kepada saiz kilobait. Kerana penimbal cincin Ftrace adalah
setiap CPU, saiz ini ialah saiz setiap penimbal cincin CPU di dalam kernel. menggunakan
"-b 10000" pada mesin dengan 4 CPU akan menjadikan Ftrace mempunyai jumlah saiz penimbal sebanyak 40
Megs.

-B nama penimbal
Jika kernel menyokong berbilang penimbal, ini akan menambah penimbal dengan nama yang diberikan.
Jika nama penimbal sudah wujud, penimbal itu hanya ditetapkan semula dan tidak akan dipadamkan
pada akhir pelaksanaan rekod. Jika penimbal dibuat, ia akan dialih keluar pada
akhir pelaksanaan (melainkan -k ditetapkan, atau permulaan arahan digunakan).

Selepas nama penimbal dinyatakan, semua acara yang ditambahkan selepas itu akan menjadi
dikaitkan dengan penimbal itu. Jika tiada penimbal ditentukan, atau peristiwa
ditentukan sebelum nama penimbal, ia akan dikaitkan dengan
penimbal utama (tingkat atas).

jejak-cmd rekod -e jadual -B blok -e blok -B masa -e pemasa tidur 1

Perkara di atas akan membolehkan semua acara jadual dalam penimbal utama. Ia akan
kemudian buat contoh penimbal 'blok' dan dayakan semua peristiwa blok dalam
penampan itu. Contoh penimbal 'masa' dibuat dan semua acara pemasa
akan didayakan untuk acara itu.

-m saiz
Saiz maksimum dalam kilobait yang sepatutnya ada pada penimbal per cpu. Perhatikan, disebabkan oleh pembundaran kepada
saiz halaman, nombornya mungkin tidak betul sepenuhnya. Juga, ini dilakukan dengan menukar
antara dua penimbal yang separuh daripada saiz yang diberikan oleh itu output mungkin bukan daripada
saiz yang diberikan walaupun lebih banyak ditulis.

Gunakan ini untuk mengelakkan kehabisan ruang cakera untuk jangka masa panjang.

-M cpumask
Tetapkan cpumask untuk mengesan. Ia hanya mempengaruhi contoh penimbal terakhir yang diberikan. Jika
dibekalkan sebelum sebarang contoh penimbal, maka ia mempengaruhi penimbal utama. Nilai
dibekalkan mestilah nombor heks.

jejak-cmd rekod -p fungsi -M c -B peristiwa13 -e semua -M 5

Jika -M ditinggalkan, maka topeng kekal sama. Untuk membolehkan semua
CPU, masukkan nilai '-1'.

-k
Secara lalai, apabila jejak-cmd selesai mengesan, ia akan menetapkan semula penimbal dan melumpuhkan
semua penjejakan yang didayakannya. Pilihan ini mengekalkan jejak-cmd daripada melumpuhkan pengesan
dan menetapkan semula penimbal. Pilihan ini berguna untuk menyahpepijat jejak-cmd.

Nota: biasanya trace-cmd akan menetapkan semula fail "tracing_on" kepada fail tersebut
adalah sebelum ia dipanggil. Pilihan ini akan membiarkan fail itu ditetapkan kepada sifar.

-i
Secara lalai, jika acara disenaraikan yang tidak ditemui trace-cmd, ia akan keluar dengan
ralat. Pilihan ini hanya akan mengabaikan peristiwa yang disenaraikan pada baris arahan tetapi adalah
tidak ditemui pada sistem.

-N hos:port
Jika mesin lain menjalankan "trace-cmd listen", pilihan ini digunakan untuk mempunyai data
dihantar ke mesin itu dengan paket UDP. Daripada menulis ke fail output, data
dihantar ke kotak jauh. Ini sesuai untuk mesin terbenam dengan sedikit storan,
atau mempunyai satu mesin yang akan menyimpan semua data dalam satu repositori.

Nota: Pilihan ini tidak disokong dengan pemalam pengesan kependaman:
wakeup, wakeup_rt, irqsoff, preemptoff dan preemptirqsoff

-t
Pilihan ini digunakan dengan -N, apabila terdapat keperluan untuk menghantar data langsung dengan TCP
paket dan bukannya UDP. Walaupun TCP tidak sepantas menghantar paket UDP,
tetapi ia mungkin diperlukan jika rangkaian tidak begitu boleh dipercayai, jumlah data tidak
yang intensif, dan jaminan diperlukan bahawa semua maklumat yang dikesan dipindahkan
dengan jayanya.

--Tarikh
Dengan --Tarikh pilihan, "trace-cmd" akan menulis cap masa ke dalam penimbal surih selepas itu
ia telah selesai dirakam. Ia kemudiannya akan memetakan cap masa kepada gettimeofday yang akan
benarkan output masa dinding daripada cap masa membaca yang dibuat jejak.dat fail.

--profil
Dengan --profil pilihan, "trace-cmd" akan membolehkan pengesanan yang boleh digunakan dengan
jejak-cmd-laporan(1) --pilihan profil. Jika pengesan -p tidak ditetapkan, dan graf fungsi
kedalaman disokong oleh kernel, maka pengesan function_graph akan didayakan dengan
kedalaman satu (hanya tunjukkan di mana ruang pengguna masuk ke dalam kernel). Ia juga akan membolehkan
pelbagai titik jejak dengan pengesanan tindanan supaya laporan boleh menunjukkan di mana tugasan mempunyai
telah disekat untuk masa yang paling lama.

Lihat jejak-cmd-profil(1) untuk maklumat lanjut dan contoh.

-H cangkuk acara
Tambahkan padanan acara tersuai untuk menghubungkan mana-mana dua acara bersama-sama. Apabila tidak digunakan dengan
--profil, ia akan menyimpan parameter dan ini akan digunakan oleh laporan trace-cmd
--profil juga. Itu dia:

jejak-cmd rekod -H hrtimer_expire_entry,hrtimer/hrtimer_expire_exit,hrtimer,sp
trace-cmd report --profile

Akan membuat profil hrtimer_expire_entry dan hrtimer_expire_ext times.

Lihat jejak-cmd-profil(1) untuk format.

--stderr
Minta output pergi ke stderr dan bukannya stdout, tetapi output arahan itu dilaksanakan
tidak akan diubah. Ini berguna jika anda ingin memantau output arahan
sedang dilaksanakan, tetapi tidak melihat output dari trace-cmd.

CONTOH


Cara asas untuk mengesan semua peristiwa:

# jejak-cmd rekod -e semua ls > /dev/null
# laporan jejak-cmd
trace-cmd-13541 [003] 106260.693809: filemap_fault: address=0x128122 offset=0xce
trace-cmd-13543 [001] 106260.693809: kmalloc: call_site=81128dd4 ptr=0xffff88003dd83800 bytes_req=768 bytes_alloc=1024 gfp_flags=GFP_KERNEL|
ls-13545 [002] 106260.693809: kfree: call_site=810a7abb ptr=0x0
ls-13545 [002] 106260.693818: sys_exit_write: 0x1

Untuk menggunakan pengesan fungsi dengan pengesanan suis jadual:

# jejak-cmd rekod -p fungsi -e sched_switch ls > /dev/null
# laporan jejak-cmd
ls-13587 [002] 106467.860310: fungsi: hrtick_start_fair <-- pick_next_task_fair
ls-13587 [002] 106467.860313: sched_switch: prev_comm=trace-cmd prev_pid=13587 prev_prio=120 prev_state=R ==> next_comm=trace-cmd next_pid=13583 next_prio=120 next_prio=XNUMX next_prio
trace-cmd-13585 [001] 106467.860314: fungsi: native_set_pte_at <-- __do_fault
trace-cmd-13586 [003] 106467.860314: fungsi: up_read <-- do_page_fault
ls-13587 [002] 106467.860317: fungsi: __phys_addr <-- jadual
trace-cmd-13585 [001] 106467.860318: fungsi: _raw_spin_unlock <-- __do_fault
ls-13587 [002] 106467.860320: fungsi: native_load_sp0 <-- __switch_to
trace-cmd-13586 [003] 106467.860322: fungsi: down_read_trylock <-- do_page_fault

Berikut ialah cara yang bagus untuk mencari gangguan yang mempunyai kependaman tertinggi:

# jejak-cmd rekod -p function_graph -e irq_handler_entry -l do_IRQ sleep 10
# laporan jejak-cmd
-0 [000] 157412.933969: funcgraph_entry: | do_IRQ() {
-0 [000] 157412.933974: irq_handler_entry: irq=48 name=eth0
-0 [000] 157412.934004: funcgraph_exit: + 36.358 us | }
-0 [000] 157413.895004: funcgraph_entry: | do_IRQ() {
-0 [000] 157413.895011: irq_handler_entry: irq=48 name=eth0
-0 [000] 157413.895026: funcgraph_exit: + 24.014 us | }
-0 [000] 157415.891762: funcgraph_entry: | do_IRQ() {
-0 [000] 157415.891769: irq_handler_entry: irq=48 name=eth0
-0 [000] 157415.891784: funcgraph_exit: + 22.928 us | }
-0 [000] 157415.934869: funcgraph_entry: | do_IRQ() {
-0 [000] 157415.934874: irq_handler_entry: irq=48 name=eth0
-0 [000] 157415.934906: funcgraph_exit: + 37.512 us | }
-0 [000] 157417.888373: funcgraph_entry: | do_IRQ() {
-0 [000] 157417.888381: irq_handler_entry: irq=48 name=eth0
-0 [000] 157417.888398: funcgraph_exit: + 25.943 us | }

Contoh profil:

# jejak-cmd rekod --profil tidur 1
# trace-cmd report --profile --comm sleep
tugasan: tidur-21611
Acara: sched_switch:R (1) Jumlah: 99442 Purata: 99442 Maks: 99442 Min:99442
1 jumlah:99442 min:99442 maks:99442 purata=99442
=> ftrace_raw_event_sched_switch (0xffffffff8105f812)
=> __jadual (0xffffffff8150810a)
=> preempt_schedule (0xffffffff8150842e)
=> ___preempt_schedule (0xffffffff81273354)
=> cpu_stop_queue_work (0xffffffff810b03c5)
=> stop_one_cpu (0xffffffff810b063b)
=> sched_exec (0xffffffff8106136d)
=> do_execve_common.isra.27 (0xffffffff81148c89)
=> do_execve (0xffffffff811490b0)
=> SyS_execve (0xffffffff811492c4)
=> return_to_handler (0xffffffff8150e3c8)
=> stub_execve (0xffffffff8150c699)
Acara: sched_switch:S (1) Jumlah: 1000506680 Purata: 1000506680 Maks: 1000506680 Min:1000506680
1 jumlah:1000506680 min:1000506680 maks:1000506680 purata=1000506680
=> ftrace_raw_event_sched_switch (0xffffffff8105f812)
=> __jadual (0xffffffff8150810a)
=> jadual (0xffffffff815084b8)
=> do_nanosleep (0xffffffff8150b22c)
=> hrtimer_nanosleep (0xffffffff8108d647)
=> SyS_nanosleep (0xffffffff8108d72c)
=> return_to_handler (0xffffffff8150e3c8)
=> tracesys_phase2 (0xffffffff8150c304)
Acara: sched_wakeup:21611 (1) Jumlah: 30326 Purata: 30326 Maks: 30326 Min:30326
1 jumlah:30326 min:30326 maks:30326 purata=30326
=> ftrace_raw_event_sched_wakeup_template (0xffffffff8105f653)
=> ttwu_do_wakeup (0xffffffff810606eb)
=> ttwu_do_activate.constprop.124 (0xffffffff810607c8)
=> cuba_bangun_bangun (0xffffffff8106340a)

Gunakan trace-cmd-record dalam talian menggunakan perkhidmatan onworks.net


Pelayan & Stesen Kerja Percuma

Muat turun apl Windows & Linux

Arahan Linux

Ad




×
Pengiklanan
❤ ️Beli, tempah atau beli di sini — tanpa kos, membantu memastikan perkhidmatan percuma.