Rumah Java javaTutorial btrace定位生产故障的方法示例

btrace定位生产故障的方法示例

Mar 06, 2017 am 10:21 AM

这篇文章主要介绍了btrace定位生产故障的方法示例,文中通过示例代码介绍的很详细,相信对大家具有一定的参考价值,需要的朋友们下面来一起看看吧。

前言

很多时候我们需要知道更多的程序的运行细节,但又不可能在开发的时候就把程序中所有的运行细节都打印到日志上,通常这个时候能采取的就是修改代码,重新部署,然后再观察,但这种方法对于online应用来说不是很好,另外一方面如果碰到不好改的代码,例如引用的其他的外部的包什么的,就很麻烦了,BTrace就是一个可以在不改代码、不重启应用的情况下,动态的查看程序运行细节的工具,下面这篇文章就介绍了btrace定位生产故障的方法,需要的朋友们可以参考借鉴。

现象

某些请求通过数据访问层很慢并导致处理线程阻塞,从监控中未能检查到异常。

编写btrace脚本

@BTrace
public class DBProxyTrace {

 @OnMethod(clazz = "xxx.xxx.QueryHandler", method = "query",
  location = @Location(Kind.RETURN))
 public static void trace2(String sql, @Duration long duration) {
 if (duration/1000000 > 10 * 1000) {
  com.sun.btrace.BTraceUtils.println(duration/1000000 + "ms");
  com.sun.btrace.BTraceUtils.println("this task executes more than 10s. the sql is : "
   + sql);
  com.sun.btrace.BTraceUtils.println("jstack is : ");
  com.sun.btrace.BTraceUtils.jstack();
 }
 }
}
Salin selepas log masuk

判断执行大于10秒的sql和堆栈信息。

编译脚本DBProxyTrace.Java,确认脚本没有问题。

./bin/btracec -cp build/ java/DBProxyTrace.java
Salin selepas log masuk

执行脚本DBProxyTrace.class

./bin/btrace -cp build/ 17342 DBProxyTrace.class
Salin selepas log masuk

信息

10468ms
this task executes more than 10s. the sql is : rollback
jstack is :
xxx.QueryHandler.query(QueryHandler.java:106)
xxx.net.AbstractConnection.onReadData(AbstractConnection.java:245)
xxx.net.NIOReactor$RW.run(NIOReactor.java:77)
java.lang.Thread.run(Thread.java:745)
Salin selepas log masuk

定位

阻塞在事务回滚。

使用jstack进一步定位。

打印JVM堆栈

"$_NIOREACTOR-7-RW" prio=10 tid=0x00007f069856f000 nid=0xde1 waiting for monitor entry [0x00007f0677011000]
 java.lang.Thread.State: BLOCKED (on object monitor)
 at Oracle.jdbc.driver.PhysicalConnection.rollback(PhysicalConnection.java:1167)
 - waiting to lock <0x000000068086fbc0> (a oracle.jdbc.driver.T4CConnection)
Salin selepas log masuk

结论

阻塞在了oracle驱动rollback动作,这里其实是因为oracle驱动为了保证串行请求响应而在底层加了锁,而这个通道被慢语句塞住了,所以rollback塞了。

总结

以上就是btrace定位生产故障的方法示例的内容,更多相关内容请关注PHP中文网(www.php.cn)!


Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

<🎜>: Bubble Gum Simulator Infinity - Cara Mendapatkan dan Menggunakan Kekunci Diraja
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Nordhold: Sistem Fusion, dijelaskan
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Mandragora: Whispers of the Witch Tree - Cara Membuka Kunci Cangkuk Bergelut
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
<🎜> obscur: Ekspedisi 33 - Cara mendapatkan pemangkin Chroma yang sempurna
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Tutorial Java
1677
14
Tutorial PHP
1278
29
Tutorial C#
1257
24
Cara menggunakan fungsi peta dan lokasi dalam uniapp Cara menggunakan fungsi peta dan lokasi dalam uniapp Oct 16, 2023 am 08:01 AM

Cara menggunakan fungsi peta dan kedudukan dalam uniapp 1. Pengenalan latar belakang Dengan populariti aplikasi mudah alih dan perkembangan pesat teknologi penentududukan, fungsi peta dan penentududukan telah menjadi bahagian yang amat diperlukan dalam aplikasi mudah alih moden. uniapp ialah rangka kerja pembangunan aplikasi merentas platform yang dibangunkan berdasarkan Vue.js, yang boleh memudahkan pembangun berkongsi kod pada berbilang platform. Artikel ini akan memperkenalkan cara menggunakan peta dan fungsi kedudukan dalam uniapp dan memberikan contoh kod khusus. 2. Gunakan komponen uniapp-amap untuk melaksanakan fungsi peta

Cara menggunakan pemalam WordPress untuk mencapai fungsi kedudukan segera Cara menggunakan pemalam WordPress untuk mencapai fungsi kedudukan segera Sep 05, 2023 pm 04:51 PM

Cara menggunakan pemalam WordPress untuk mencapai fungsi lokasi segera Dengan populariti peranti mudah alih, semakin banyak tapak web mula menyediakan perkhidmatan berasaskan geolokasi. Dalam laman web WordPress, kami boleh menggunakan pemalam untuk mencapai fungsi kedudukan segera dan menyediakan pelawat dengan perkhidmatan yang berkaitan dengan lokasi geografi. 1. Pilih pemalam yang betul Terdapat banyak pemalam yang menyediakan perkhidmatan geolokasi dalam pustaka pemalam WordPress untuk dipilih. Bergantung pada keperluan dan keperluan, memilih pemalam yang betul adalah kunci untuk mencapai kefungsian kedudukan segera. Berikut adalah beberapa

Bagaimana untuk mencari fon telinga wayarles Apple jika ia hilang_Cara untuk mencari fon telinga wayarles Apple Bagaimana untuk mencari fon telinga wayarles Apple jika ia hilang_Cara untuk mencari fon telinga wayarles Apple Mar 23, 2024 am 08:21 AM

1. Mula-mula, kami membuka Apl [Cari] pada telefon mudah alih dan pilih peranti dalam senarai pada antara muka peranti. 2. Kemudian, anda boleh menyemak lokasi dan klik pada laluan untuk menavigasi ke sana.

Kaedah untuk menyelesaikan masalah lokasi kebocoran memori dalam pembangunan bahasa Go Kaedah untuk menyelesaikan masalah lokasi kebocoran memori dalam pembangunan bahasa Go Jul 01, 2023 pm 12:33 PM

Kaedah untuk menyelesaikan masalah lokasi kebocoran memori dalam pembangunan bahasa Go: Kebocoran memori adalah salah satu masalah biasa dalam pembangunan program. Dalam pembangunan bahasa Go, disebabkan kewujudan mekanisme pengumpulan sampah automatiknya, masalah kebocoran memori mungkin kurang daripada bahasa lain. Walau bagaimanapun, apabila kita menghadapi aplikasi yang besar dan kompleks, kebocoran memori mungkin masih berlaku. Artikel ini akan memperkenalkan beberapa kaedah biasa untuk mencari dan menyelesaikan masalah kebocoran memori dalam pembangunan bahasa Go. Pertama, kita perlu memahami apa itu kebocoran memori. Ringkasnya, kebocoran memori merujuk kepada

Bagaimana untuk mencari lokasi telefon bimbit pihak lain di Amap - Bagaimana untuk mengesan lokasi telefon bimbit pihak lain di Amap Bagaimana untuk mencari lokasi telefon bimbit pihak lain di Amap - Bagaimana untuk mengesan lokasi telefon bimbit pihak lain di Amap Apr 01, 2024 pm 02:11 PM

1. Klik untuk memasukkan perisian peta Amap pada telefon mudah alih anda. 2. Klik Saya di penjuru kanan sebelah bawah. 3. Klik untuk memasukkan peta keluarga. 4. Klik Cipta Peta Keluarga Saya. 5. Selepas penciptaan berjaya, kod jemputan akan muncul dan boleh dikongsi dengan telefon bimbit lain.

Menaip iPhone 'Oil found' mencetuskan lokasi? Bolehkah privasi masih terjamin? Menaip iPhone 'Oil found' mencetuskan lokasi? Bolehkah privasi masih terjamin? Apr 26, 2024 pm 01:28 PM

Baru-baru ini, ramai pengguna di Internet mengatakan bahawa apabila menggunakan telefon Apple untuk mencari atau mengulas mengenai topik yang berkaitan dengan "menemui minyak," peranti itu akan menghidupkan kedudukan secara automatik Adalah disyaki bahawa telefon Apple sedang mengumpul dan menghantar maklumat lokasi untuk memantau pengguna. Adakah menaip "Oil found" pada iPhone akan mencetuskan lokasi? Bolehkah privasi Apple dijamin dengan cara ini? Jelas sekali, ini adalah salah faham! Perkhidmatan pelanggan Apple berkata bahawa fungsi penentududukan dihidupkan secara lalai, dan sebarang operasi boleh mencetuskan kemas kini status, dan bukannya terhad kepada menghantar teks tertentu. Tetapi kenyataan ini tidak sepenuhnya menyeluruh Secara amnya, iPhone jarang mencetuskan fungsi penentududukan, melainkan anda sedang mencari sesuatu, atau tetapan mekanisme APP berkaitan Apabila pengguna memasukkan aksara tertentu, APP akan mendayakan fungsi penentududukan secara automatik latar belakang. Kenapa boleh topik ni

Bagaimana untuk mencari lokasi telefon Huawei dengan cepat selepas ia hilang? Bagaimana untuk mencari lokasi telefon Huawei dengan cepat selepas ia hilang? Mar 24, 2024 am 08:48 AM

Dalam masyarakat hari ini, telefon bimbit telah menjadi sebahagian daripada kehidupan kita. Sebagai jenama telefon pintar yang terkenal, telefon bimbit Huawei amat digemari oleh pengguna. Namun, dengan kepopularan telefon bimbit dan peningkatan kekerapan penggunaan, telefon bimbit sering hilang. Sebaik sahaja telefon kita hilang, kita cenderung berasa cemas dan keliru. Jadi, jika anda kehilangan telefon Huawei anda, bagaimanakah anda boleh mencari lokasinya dengan cepat? Langkah 1: Gunakan fungsi penentududukan telefon mudah alih Telefon bimbit Huawei mempunyai fungsi penentududukan berkuasa terbina dalam Pengguna boleh menggunakan pilihan "Keselamatan" dalam tetapan telefon mudah alih.

Cara menukar maklumat lokasi dan cara mengubah suai alamat Cara menukar maklumat lokasi dan cara mengubah suai alamat Mar 12, 2024 pm 09:52 PM

Kita semua tahu dengan jelas bahawa Taku APP ialah platform sembang dan sosial yang boleh dipercayai. Kini ia membolehkan semua orang berkawan dalam talian Lagipun, ia boleh mencari maklumat lokasi semasa anda secara automatik dan lebih baik memadankan anda dengan beberapa rakan di bandar yang sama yang rapat antara satu sama lain, supaya semua orang boleh bersembang dengan lebih mudah dan berasa gembira, berkali-kali, untuk mendapatkannya untuk mengetahui lebih ramai rakan di tempat lain, semua orang mempunyai idea untuk mengubah suai alamat mereka, tetapi mereka tidak tahu cara mengubah suai maklumat lokasi mereka, yang sangat sukar, jadi editor tapak ini juga mengumpul beberapa khusus

See all articles