GoGPT Best VPN GoSearch

OnWorks favicon'u

trace-cmd-record - Bulutta Çevrimiçi

OnWorks ücretsiz barındırma sağlayıcısında trace-cmd-record'u Ubuntu Online, Fedora Online, Windows çevrimiçi emülatörü veya MAC OS çevrimiçi emülatörü üzerinden çalıştırın

Bu, Ubuntu Online, Fedora Online, Windows çevrimiçi emülatörü veya MAC OS çevrimiçi emülatörü gibi birden fazla ücretsiz çevrimiçi iş istasyonumuzdan birini kullanarak OnWorks ücretsiz barındırma sağlayıcısında çalıştırılabilen trace-cmd-record komutudur.

Program:

ADI


trace-cmd-record - Ftrace Linux dahili izleyicisinden bir izleme kaydedin

SİNOPSİS


iz-cmd kayıt [SEÇENEKLER] [komuta]

AÇIKLAMA


The iz-cmd(1) kayıt komutu Ftrace Linux çekirdek izleyicisini kaydedecek
sırasında meydana gelen belirli eklentiler veya olaylar komuta yürütür. Herhangi bir komut yoksa
verildiğinde, kullanıcı Ctrl-C tuşlarına basana kadar kayıt yapacaktır.

Trace-cmd'nin kayıt komutu, Ftrace tracer'ı çeşitli verileri izlemeye başlayacak şekilde ayarlayacaktır.
komut satırında verilen olaylar veya eklentiler. Daha sonra bir dizi oluşturacak
çekirdek halka arabelleğinden kayda başlayacak izleme işlemleri (CPU başına bir tane)
doğrudan geçici dosyalara. Komut tamamlandığında (veya Ctrl-C'ye basıldığında) tüm
dosyalar daha sonra okunabilecek bir trace.dat dosyasında birleştirilecektir (bkz.
izleme-cmd-raporu(1)).

SEÇENEKLER


-p fişe takmak
Bir izleme eklentisi belirtin. Eklentiler, genellikle şunlardan fazlasını yapan özel Ftrace izleyicileridir:
sadece bir olayın izini sürün. Yaygın eklentiler şunlardır işlev, fonksiyon grafiği, preemptirqsoff,
irqsoff, ön ödeme, ve uyanmak. Bir eklentinin çalışan çekirdek tarafından desteklenmesi gerekir. İle
kullanılabilir eklentilerin listesine bakın, bkz. izleme-cmd-listesi(1).

-e olay
İzlenecek bir olayı belirtin. Linux'a çeşitli statik izleme noktaları eklendi
çekirdek. Belirli bir olayın tüm olaylarını etkinleştirebileceğiniz alt sisteme göre gruplandırılmışlardır.
alt sistemi seçin veya etkinleştirilecek belirli olayları belirtin. olay formattadır
"altsistem:olay-adı". Ayrıca alt sistemi belirtmeden de belirleyebilirsiniz.
:etkinlik adı veya "alt sistem:" olmadan etkinlik adı. "-e sched_switch" kullanıldığında
"sched_switch" olayını etkinleştirin; burada "-e sched", altındaki tüm olayları etkinleştirir.
"programlanmış" alt sistem.

'Olay' aynı zamanda glob ifadeleri de içerebilir. Yani, "*stat*"
içinde "stat" karakteri bulunan tüm olayları (veya alt sistemleri) seçin
isimler.

'Tümü' anahtar kelimesi tüm etkinlikleri etkinleştirmek için kullanılabilir.

-a
Kaydedilen her olayın çıktı dosyasında kayıtlı çıktı formatı dosyası vardır
daha sonra gösterebilmek için. Ancak izlemede başka olaylar etkinleştirilmeden etkinleştirilirse
trace-cmd'nin bilgisi dahilinde, bu olayların formatları kaydedilmeyecek ve trace-cmd
rapor bunları görüntüleyemeyecektir. Durum buysa, belirtin -a
seçeneği ve sistemdeki tüm olayların formatı kaydedilecektir.

-T
Her etkinlikte bir yığın takibini etkinleştirin. Örneğin:

-0 [003] 58549.289091: sched_switch: kworker/0:1:0 [120] R ==> trace-cmd:2603 [120]
-0 [003] 58549.289092: çekirdek_yığıtı:
=> program (ffffffff814b260e)
=> cpu_idle (ffffffff8100a38c)
=> başlangıç_ikincil (ffffffff814ab828)

--fonksiyon yığını
Tüm işlevlerde yığın izlemeyi etkinleştirin. Bunun yalnızca "işlev" için geçerli olduğunu unutmayın.
eklenti izleyicisi ve yalnızca -l seçeneği kullanıldığında ve başarılı olduğunda etkili olur
işlevleri sınırlandırır. İşlev izleyicisi filtrelenmemişse ve yığın izlemesi
etkinleştirildiğinde, makineyi canlı olarak kilitleyebilirsiniz.

-f filtre
Önceki olay için bir filtre belirtin. Bu bir süre sonra gelmeli -e. Bu filtreleyecek
Etkinliğin içeriğine göre hangi olayların kaydedileceği. Filtreleme şuraya aktarılır:
çekirdek doğrudan olduğundan hangi filtrelemeye izin verildiği çekirdeğin hangi sürümüne bağlı olabilir
var. Temel olarak, bir olayın olması gerekip gerekmediğini kontrol etmek için C gösterimini kullanmanıza izin verecektir.
işlenip işlenmediği.

==, >=, <=, >, <, &, |, && ve ||

Yukarıdakilerin alanları karşılaştırmak için kullanılması genellikle güvenlidir.

-R tetikleyebilir
Önceki olay için bir tetikleyici belirtin. Bu bir süre sonra gelmeli -e. Bu bir ekleyecektir
verilen olaya verilen tetikleyici. Olayın kendisini değil, yalnızca tetikleyiciyi etkinleştirmek için,
daha sonra etkinliği şundan sonra yerleştirin: -v seçeneği.

Daha fazla bilgi için Linux çekirdek kaynağındaki Documentation/trace/events.txt dosyasına bakın
tetikleyiciler hakkında bilgi.

-v
Bu, komut satırında kendisinden sonra belirtilen tüm olayların izlenememesine neden olur.
Bu, izlenecek bir alt sistemin seçilmesi ancak çeşitli olayların dışarıda bırakılması açısından kullanışlıdır.
Örneğin: "-e sched -v -e "*stat\*"", zamanlanmış alt sistemdeki tüm olayları etkinleştirir
adlarında "stat" geçenler hariç.

Not: *-v* seçeneği yoldan alınmıştır grep(1) aşağıdakileri tersine çevirir
maçlar.

-F
Bu, yalnızca komut satırında verilen yürütülebilir dosyayı filtreleyecektir. Komut yoksa
verilirse, kendisini filtreleyecektir (oldukça anlamsız). Kullanma -F izini sürmene izin verecek
yalnızca verilen komutun neden olduğu olaylar.

-P pid
Benzer -F ancak izlenecek işlem kimliğini belirtmenize olanak tanır.

-c
Her ikisiyle de kullanılır -F sürecin çocuklarını da takip etmek.

-C saat
İzleme saatini "saat" olarak ayarlayın.

Kullanım iz-cmd(1) hangi saatlerin mevcut olduğunu görmek için -C'yi listeleyin.

-o çıktı dosyası
Trace-cmd raporu varsayılan olarak bir iz.dat dosya. Farklı bir belirtebilirsiniz
ile yazılacak dosya -o seçeneği.

-l fonksiyon adı
Bu, işlev ve fonksiyon grafiği yalnızca verilenleri izlemek için izleyiciler
fonksiyon adı. Birden fazla -l daha fazlasını izlemek için komut satırında belirtilebilir
birden fazla fonksiyon. Glob ifadelerinin sınırlı kullanımına da izin verilir. Bunlar
kibrit* yalnızca ile başlayan işlevleri filtrelemek için maç. *kibrit yalnızca filtrelemek için
ile biten işlevler maç. *kibrit\* yalnızca aşağıdakileri içeren işlevleri filtrelemek için
maç.

-g fonksiyon adı
Bu seçenek function_graph eklentisi içindir. Verilen fonksiyonun grafiğini çizecektir. O
yani yalnızca işlevi ve çağırdığı tüm işlevleri izleyecektir. Daha fazlasına sahip olabilirsiniz
birden fazla -g komut satırında.

-n fonksiyon adı
Bunun tam tersi bir etkisi var -l. İle verilen fonksiyon -n seçenek olmayacak
takip edildi. Bu önceliklidir; yani her ikisine de aynı işlevi eklerseniz -n
ve -l, takip edilmeyecektir.

-d
Bazı izleyici eklentileri, varsayılan olarak izleyici işlevini etkinleştirir. Gecikme izleyicileri gibi.
Bu seçenek, işlev izleyicinin başlangıçta etkinleştirilmesini engeller.

-D
Seçenek -d işlev izleyiciyi devre dışı bırakmak için işlev izleme seçeneğini kullanmayı deneyecek
(varsa), aksi halde varsayılan olarak proc dosyasına ayarlanır:
/proc/sys/kernel/ftrace_enabled, ancak işlev izleme seçeneği açıksa ona dokunmayacaktır.
mevcut. -D seçeneği hem ftrace_enabled proc dosyasını hem de
varsa işlev izleme seçeneği.

Bu özelliğin, kullanıcıları da içeren tüm kullanıcılar için izleme işlevini devre dışı bıraktığını unutmayın.
ftrace izleyicilerinin dışında (stack_tracer, perf, vb.).

-O seçenek
Ftrace'in etkinleştirilebilecek veya devre dışı bırakılabilecek çeşitli seçenekleri vardır. Bu, ayarlamanıza olanak tanır
onlara. Metnin eklenmesi yok hayır bir seçeneğe gitmek onu devre dışı bırakır. Örneğin: "-O nograph-time"
"grafik zamanı" Ftrace seçeneğini devre dışı bırakacaktır.

-s aralık
Trace-cmd'nin halka arabelleğinden kayıt yapmak için oluşturduğu süreçlerin uyanması gerekir
kaydı yapın. ayarlamak aralık sıfıra düşürülmesi süreçlerin uyanmasına neden olur
ara belleğe her yeni veri yazıldığında. Ancak Ftrace çekirdeği kaydettiği için
aktivite, bu süreçlerin uykuya geri dönmesi, vücutta yeni olayların oluşmasına neden olabilir.
işlemi tekrar uyandıracak halka tamponu. Bu gereksiz yere ekstra veri ekleyecektir
halka arabelleğine.

'Aralık' ölçüsü mikrosaniyedir. Varsayılan değer 1000 (1 ms) olarak ayarlanmıştır.
Bu, her kayıt işleminin uyanmadan önce uyuyacağı zamandır.
halka arabelleğine yazılan tüm yeni verileri kaydedin.

-r öncelik
Yakalama iş parçacıklarını çalıştırma önceliği. Yoğun bir sistemde iz yakalama
Konular kesilebilir ve olaylar kaybolabilir. Bu, bunların önceliğini artırır
iş parçacıklarını gerçek zamanlı (FIFO) önceliğe göre ayarlar. Ancak bu seçeneği dikkatli kullanın;
izlenen sistemin davranışını değiştirin.

-b boyut
Bu, halka arabellek boyutunu şu şekilde ayarlar: boyut kilobayt. Çünkü Ftrace halka arabelleği
CPU başına bu boyut, çekirdek içindeki her CPU halka arabelleğinin boyutudur. Kullanma
10000 CPU'lu bir makinede "-b 4", Ftrace'in toplam arabellek boyutunun 40 olmasını sağlar
Megs.

-B arabellek adı
Çekirdek birden fazla arabelleği destekliyorsa, bu, verilen adda bir arabellek ekleyecektir.
Arabellek adı zaten mevcutsa, bu arabellek yalnızca sıfırlanır ve silinmez
kayıt yürütmenin sonunda. Tampon oluşturulursa, şu anda kaldırılacaktır:
yürütmenin sonu (eğer -k ayarlandı veya başlama komutu kullanıldı).

Bir arabellek adı belirtildikten sonra bundan sonra eklenen tüm olaylar
bu tamponla ilişkili. Hiçbir arabellek belirtilmemişse veya bir olay
bir arabellek adından önce belirtilirse,
ana (üst düzey) arabellek.

trace-cmd kaydı -e planlanmış -B blok -e blok -B zaman -e zamanlayıcı uyku 1

Yukarıdaki, ana arabellekteki tüm planlanmış olayları etkinleştirecektir. O olacak
daha sonra bir 'blok' arabellek örneği oluşturun ve içindeki tüm blok olaylarını etkinleştirin
bu tampon. Bir 'zaman' arabellek örneği oluşturulur ve tüm zamanlayıcı olayları
söz konusu etkinlik için etkinleştirilecektir.

-m boyut
CPU başına bir arabelleğin kilobayt cinsinden olması gereken maksimum boyut. Yuvarlama nedeniyle dikkat edin
sayfa boyutuna göre sayı tam olarak doğru olmayabilir. Ayrıca bu, geçiş yapılarak gerçekleştirilir.
verilen boyutun yarısı kadar olan iki tampon arasında, dolayısıyla çıktı şu şekilde olmayabilir:
verilen boyuttan çok daha fazlası yazılmış olsa bile.

Uzun çalışmalarda disk alanının tükenmesini önlemek için bunu kullanın.

-M işlemci maskesi
İzlemek için cpumask'ı ayarlayın. Yalnızca verilen son arabellek örneğini etkiler. Eğer
herhangi bir arabellek örneğinden önce sağlanırsa, ana arabelleği etkiler. Değer
sağlanan onaltılık bir sayı olmalıdır.

trace-cmd kaydı -p işlevi -M c -B olaylar13 -e tümü -M 5

-M dışarıda bırakılırsa maske aynı kalır. Tümünü etkinleştirmek için
CPU'lar '-1' değerini iletir.

-k
Varsayılan olarak trace-cmd izlemeyi tamamladığında arabellekleri sıfırlar ve devre dışı bırakır
etkinleştirdiği tüm izleme. Bu seçenek trace-cmd'nin izleyiciyi devre dışı bırakmasını önler
ve ara belleğin sıfırlanması. Bu seçenek trace-cmd'de hata ayıklamak için kullanışlıdır.

Not: trace-cmd genellikle "tracing_on" dosyasını eski durumuna geri ayarlar.
çağrılmadan önceydi. Bu seçenek o dosyayı sıfıra ayarlanmış halde bırakacaktır.

-i
Varsayılan olarak, trace-cmd'nin bulamadığı bir olay listelenirse, bir
hata. Bu seçenek yalnızca komut satırında listelenen ancak
sistemde bulunamadı.

-N ana bilgisayar bağlantı noktası
Başka bir makine "trace-cmd listen" çalıştırıyorsa bu seçenek veriyi almak için kullanılır.
o makineye UDP paketleri ile gönderilir. Bir çıktı dosyasına yazmak yerine veriler
uzak bir kutuya gönderilir. Bu, az depolama alanına sahip gömülü makineler için idealdir.
veya tüm verileri tek bir depoda tutacak tek bir makineye sahip olmak.

Not: Bu seçenek gecikme izleme eklentilerinde desteklenmez:
uyandırma, uyandırma_rt, irqsoff, preemptoff ve preemptirqsoff

-t
Bu seçenek ile kullanılır -N, canlı verileri TCP ile göndermeye ihtiyaç duyulduğunda
UDP yerine paketler. TCP, UDP paketlerini göndermek kadar hızlı olmasa da,
ancak ağ o kadar güvenilir değilse, veri miktarı yeterli değilse buna ihtiyaç duyulabilir.
bu kadar yoğun ve izlenen tüm bilgilerin aktarılacağına dair bir garanti gerekiyor
Başarıyla.

--tarih
İle --tarih seçeneğinde "trace-cmd", izleme arabelleğine zaman damgalarını yazacaktır.
kaydı bitirdi. Daha sonra zaman damgasını gettimeofday ile eşleştirecek ve bu da
oluşturulan zaman damgalarından duvar süresi çıkışına izin ver iz.dat dosyası.

--profil
İle --profil seçeneği, "trace-cmd" ile kullanılabilecek izlemeyi etkinleştirecektir
izleme-cmd-raporu(1) --profil seçeneği. Eğer bir izleyici -p ayarlanmadı ve fonksiyon grafiği
derinlik çekirdek tarafından destekleniyorsa, function_graph izleyicisi şu şekilde etkinleştirilecektir:
bir derinlik (yalnızca kullanıcı alanının çekirdeğe nereden girdiğini gösterir). Aynı zamanda etkinleştirecek
raporun görevlerin nerede olduğunu gösterebilmesi için yığın izlemeli çeşitli izleme noktaları
en uzun süre engellendi.

Yerimizi izleme-cmd-profil(1) daha fazla ayrıntı ve örnekler için.

-H olay kancaları
Herhangi iki etkinliği birbirine bağlamak için özel etkinlik eşleştirmesi ekleyin. İle kullanılmadığında
--profil, parametreyi kaydedecek ve bu trace-cmd raporu tarafından kullanılacak
--profil de. Yani:

trace-cmd kaydı -H hrtimer_expire_entry,hrtimer/hrtimer_expire_exit,hrtimer,sp
trace-cmd raporu --profil

hrtimer_expire_entry ve hrtimer_expire_ext sürelerinin profilini oluşturacaktır.

Yerimizi izleme-cmd-profil(1) biçim için.

--stderr
Çıktının stdout yerine stderr'e gitmesini sağlayın, ancak komutun çıktısı yürütüldü
değiştirilmeyecektir. Komutun çıktısını izlemek istiyorsanız bu kullanışlıdır.
yürütülüyor ancak trace-cmd'den gelen çıktıyı göremiyorum.

ÖRNEKLER


Tüm olayları izlemenin temel yolu:

# trace-cmd kaydı -e all ls > /dev/null
# izleme-cmd raporu
trace-cmd-13541 [003] 106260.693809: filemap_fault: adres=0x128122 ofset=0xce
trace-cmd-13543 [001] 106260.693809: kmalloc: call_site=81128dd4 ptr=0xffff88003dd83800 bytes_req=768 bytes_alloc=1024 gfp_flags=GFP_KERNEL|GFP_ZERO
ls-13545 [002] 106260.693809: kfree: call_site=810a7abb ptr=0x0
ls-13545 [002] 106260.693818: sys_exit_write: 0x1

İşlev izleyiciyi zamanlanmış anahtar izlemeyle kullanmak için:

# trace-cmd kaydı -p function -e sched_switch ls > /dev/null
# izleme-cmd raporu
ls-13587 [002] 106467.860310: işlev: 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
trace-cmd-13585 [001] 106467.860314: işlev: native_set_pte_at <-- __do_fault
trace-cmd-13586 [003] 106467.860314: işlev: up_read <-- do_page_fault
ls-13587 [002] 106467.860317: işlev: __phys_addr <-- program
trace-cmd-13585 [001] 106467.860318: işlev: _raw_spin_unlock <-- __do_fault
ls-13587 [002] 106467.860320: işlev: native_load_sp0 <-- __switch_to
trace-cmd-13586 [003] 106467.860322: işlev: down_read_trylock <-- do_page_fault

Hangi kesintilerin en yüksek gecikmeye sahip olduğunu bulmanın güzel bir yolu:

# trace-cmd kaydı -p function_graph -e irq_handler_entry -l do_IRQ uyku 10
# izleme-cmd raporu
-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 | }

Profilden bir örnek:

# izleme-cmd kaydı -- profil uyku 1
# izleme-cmd raporu --profile --comm uyku
görev: uyku-21611
Olay: sched_switch:R (1) Toplam: 99442 Ort: 99442 Maks: 99442 Min:99442
1 toplam:99442 dk:99442 maks:99442 ort=99442
=> ftrace_raw_event_sched_switch (0xffffffff8105f812)
=> __program (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)
Olay: sched_switch:S (1) Toplam: 1000506680 Ort: 1000506680 Maks: 1000506680 Min:1000506680
1 toplam:1000506680 dk:1000506680 maks:1000506680 ort=1000506680
=> ftrace_raw_event_sched_switch (0xffffffff8105f812)
=> __program (0xffffffff8150810a)
=> program (0xffffffff815084b8)
=> do_nanosleep (0xffffffff8150b22c)
=> hrtimer_nanosleep (0xffffffff8108d647)
=> SyS_nanosleep (0xffffffff8108d72c)
=> return_to_handler (0xffffffff8150e3c8)
=> tracesys_phase2 (0xffffffff8150c304)
Olay: sched_wakeup:21611 (1) Toplam: 30326 Ort: 30326 Maks: 30326 Min:30326
1 toplam:30326 dk:30326 maks:30326 ort=30326
=> ftrace_raw_event_sched_wakeup_template (0xffffffff8105f653)
=> ttwu_do_wakeup (0xffffffff810606eb)
=> ttwu_do_activate.constprop.124 (0xffffffff810607c8)
=> try_to_wake_up (0xffffffff8106340a)

Onworks.net hizmetlerini kullanarak trace-cmd-record'u çevrimiçi kullanın


Ücretsiz Sunucular ve İş İstasyonları

Windows ve Linux uygulamalarını indirin

Linux komutları

Ad




×
reklâm
❤️Buradan alışveriş yapın, rezervasyon yapın veya satın alın; ücretsizdir, hizmetlerin ücretsiz kalmasına yardımcı olur.