back to top
13.8 C
New York

Metode untuk mendiagnosis dan memecahkan masalah CPU pada aplikasi Java

Published:

Lonjakan CPU adalah salah satu tantangan kinerja paling umum yang dihadapi oleh aplikasi Java. Meskipun alat APM (Manajemen Kinerja Aplikasi) tradisional memberikan wawasan tingkat tinggi tentang penggunaan CPU secara keseluruhan, alat tersebut sering kali gagal mengidentifikasi akar penyebab lonjakan tersebut. Alat APM biasanya tidak dapat menentukan jalur kode pasti yang menyebabkan masalah. Di sinilah analisis tingkat thread yang tidak mengganggu terbukti jauh lebih efisien. Dalam postingan ini, saya akan membagikan beberapa metode praktis untuk membantu Anda mendiagnosis dan mengatasi lonjakan CPU tanpa membuat perubahan apa pun pada lingkungan produksi Anda.

Akses intrusif dan non-intrusif: apa bedanya? Pendekatan Intrusif

Pendekatan intrusif melibatkan perubahan pada kode atau konfigurasi aplikasi, seperti mengaktifkan pembuatan profil terperinci, menambahkan logging tambahan, atau melampirkan agen pemantauan kinerja. Metode ini dapat memberikan data terperinci, namun memiliki risiko memengaruhi kinerja aplikasi dan mungkin tidak cocok untuk lingkungan produksi karena adanya overhead.

Akses yang tidak mengganggu

Di sisi lain, pendekatan non-intrusif tidak memerlukan modifikasi pada aplikasi yang sedang berjalan. Mereka mengandalkan pengumpulan data eksternal seperti thread dump, penggunaan CPU, dan log tanpa mengganggu pengoperasian normal aplikasi. Metode ini lebih aman untuk lingkungan produksi karena menghindari potensi penurunan kinerja dan memungkinkan Anda memecahkan masalah aplikasi langsung tanpa gangguan.

1. atas -H + Pembuangan Benang

Konsumsi CPU yang tinggi selalu disebabkan oleh thread yang terus menerus mengeksekusi kode. Aplikasi kita cenderung memiliki ratusan (terkadang ribuan) thread. Langkah pertama dalam diagnostik adalah mengidentifikasi thread yang menggunakan CPU dari ratusan thread ini.

Cara sederhana dan efektif untuk melakukan ini adalah dengan menggunakan perintah di atas. Perintah teratas adalah utilitas yang tersedia di semua sistem Unix yang memberikan gambaran umum penggunaan sumber daya sistem secara real-time, termasuk konsumsi CPU oleh setiap thread dalam proses tertentu. Anda dapat mengeluarkan perintah berikut di atas untuk mengidentifikasi thread mana yang paling banyak memakan CPU:

atas -H -p

Perintah ini mencantumkan masing-masing thread dalam proses Java dan konsumsi CPU-nya, seperti yang ditunjukkan pada Gambar 1 di bawah:

perintah yang menunjukkan thread dan konsumsi CPU-nya”/>

Gambar 1: perintah top -H -p menampilkan thread dan konsumsi CPU-nya

Setelah Anda mengidentifikasi thread yang menggunakan CPU, langkah selanjutnya adalah mencari tahu baris kode mana yang dieksekusi oleh thread tersebut. Untuk melakukan ini, Anda perlu mengambil thread dump dari aplikasi, yang akan menampilkan jalur eksekusi kode dari thread tersebut. Namun, ada beberapa hal yang perlu diingat:

Anda perlu mengeluarkan perintah top -H -p dan mengambil dump thread pada saat yang sama untuk mengetahui baris kode yang menyebabkan lonjakan CPU. Lonjakan CPU bersifat sementara, jadi menangkap keduanya secara bersamaan memastikan Anda dapat menghubungkan penggunaan CPU yang tinggi dengan kode persis yang sedang dieksekusi. Penundaan apa pun di antara keduanya dapat menyebabkan hilangnya akar permasalahan. Perintah top -H -p mencetak ID thread dalam format desimal, tetapi di dump thread, ID thread dalam format heksadesimal. Anda perlu mengonversi ID thread desimal menjadi heksadesimal untuk mencarinya di dump.

iCrash melaporkan konsumsi CPU setiap thread dan jalur eksekusi kodenya

Gambar 2: iCrash melaporkan konsumsi CPU setiap thread dan jalur eksekusi kodenya

Kekurangan

Ini adalah metode paling efektif dan efisien untuk mengatasi lonjakan CPU. Namun, di lingkungan tertentu, terutama lingkungan dalam container, perintah teratas mungkin tidak diinstal. Dalam kasus seperti ini, Anda mungkin ingin menjelajahi metode alternatif yang tercantum di bawah.

2. State Thread yang DAPAT DIJALANKAN dalam beberapa dump

Utas Java dapat berada dalam beberapa status: BARU, BERJALAN, DIBLOKIR, MENUNGGU, TIMED_WAITING, atau TERMINASI. Jika Anda tertarik, Anda dapat mempelajari lebih lanjut tentang berbagai status thread. Ketika sebuah thread secara aktif mengeksekusi kode, maka thread tersebut akan berada dalam status RUNNABLE. Lonjakan CPU selalu disebabkan oleh thread dalam status RUNNABLE. Untuk mendiagnosis lonjakan ini secara efektif:

Rekam 3-5 cetakan thread dengan interval 10 detik. Identifikasi thread yang tetap konsisten dalam status RUNNABLE di semua dump. Analisis jejak tumpukan thread ini untuk menentukan bagian kode mana yang menggunakan CPU.

Meskipun analisis ini dapat dilakukan secara manual, alat analisis thread dump seperti fastThread mengotomatiskan prosesnya. fastThread menghasilkan bagian “CPU Spike” yang menyoroti thread yang terus-menerus berada dalam status RUNNABLE di beberapa dump. Namun, metode ini tidak akan menunjukkan persentase pasti CPU yang dikonsumsi setiap thread.

alat fastThread yang melaporkan bagian 'Lonjakan CPU'

Gambar 3: Alat FastThread melaporkan bagian “Lonjakan CPU”.

Kekurangan

Metode ini akan menampilkan semua thread dalam status RUNNABLE, berapa pun konsumsi CPU aktualnya. Misalnya, thread yang mengonsumsi 80% CPU dan thread yang hanya mengonsumsi 5% akan muncul. Ini tidak akan memberikan konsumsi CPU yang tepat untuk masing-masing thread, jadi Anda mungkin harus menyimpulkan tingkat keparahan lonjakan, berdasarkan perilaku thread dan pola eksekusi.

3. Mengurai status thread RUNNABLE dari satu dump

Terkadang Anda hanya dapat memiliki satu snapshot dump thread. Dalam kasus seperti ini, pendekatan membandingkan beberapa TPA tidak dapat diterapkan. Namun, Anda masih dapat mencoba mendiagnosis lonjakan CPU dengan berfokus pada thread dalam status RUNNABLE. Satu hal yang perlu diperhatikan adalah JVM mengklasifikasikan semua thread yang menjalankan metode asli sebagai RUNNABLE, namun banyak metode asli (seperti java.net.SocketInputStream.socketRead0()) tidak mengeksekusi kode dan hanya menunggu operasi I/O.

Untuk menghindari disesatkan oleh rangkaian pesan seperti itu, Anda perlu memfilter positif palsu ini dan fokus pada rangkaian status RUNNABLE saat ini. Proses ini mungkin membosankan, tetapi fastThread mengotomatiskannya dengan memfilter thread jahat ini di bagian “Thread yang Mengonsumsi CPU”, sehingga Anda dapat mengetahui penyebab sebenarnya di balik lonjakan CPU.

alat fastThread melaporkan pada bagian 'Utas yang Memakan CPU'

Gambar 4: Alat pelaporan FastThread bagian Kekurangan “Utas yang Memakan CPU”.

Metode ini memiliki beberapa kelemahan:

Sebuah thread untuk sementara mungkin berada dalam status RUNNABLE, namun dapat dengan cepat bertransisi ke WAITING atau TIMED_WAITING (yaitu, status yang tidak menggunakan CPU). Dalam kasus seperti ini, mengandalkan satu snapshot dapat menyebabkan kesimpulan yang salah tentang dampak thread terhadap konsumsi CPU. Mirip dengan metode #2, ini akan menampilkan semua thread dalam status RUNNABLE, terlepas dari konsumsi CPU aktualnya. Misalnya, thread yang mengonsumsi 80% CPU dan thread yang hanya mengonsumsi 5% akan muncul. Ini tidak akan memberikan konsumsi CPU yang tepat untuk masing-masing thread, jadi Anda mungkin harus menyimpulkan tingkat keparahan lonjakan berdasarkan perilaku thread dan pola eksekusi. Studi Kasus: Mendiagnosis Lonjakan CPU pada Aplikasi Trading Kesimpulan Utama

Mendiagnosis lonjakan CPU pada aplikasi Java dapat menjadi tantangan, terutama ketika alat APM tradisional gagal. Dengan menggunakan metode non-intrusif seperti menganalisis thread dump dan berfokus pada thread dalam status RUNNABLE, Anda dapat menentukan penyebab pasti lonjakan CPU.

PANEN96 promo

unity software

unity software information

software information

Informasi mengenai king slot

king selot

king slot

king slot

kingselot

pg king slot

merek 88

merek 88

mantan99

mantan88

maksimal88

maksimal88

liburan88

indodax88

indah99

indah88

ikn88

ibukota88

huawei88

hot888

hot88

dingin88

citra88

binance88

best99

best88

tradisional 88

tradisional 88

tombol88

tombol88

survey88

survey88

start88

start88

obatkuat88

obatkuat88

mcb88

mcb88

master99

master888

master88

live88

live88

libra88

kompresor88

kompresor88

kesimpulan88

kesimpulan88

kapasitor88

kapasitor88

kacamata88

kacamata88

jamu88

jamu88

jam88

jam88

follow88

follow88

dinamo88

dinamo88

baterai88

baterai88

miegacoan

miegacoan

gacoan

gacoan

website88

waweb88

waweb88

translate88

translate88

tempur888

tempur888

tambang99

tambang99

support88

support88

support88

sogoslot88

siap88

siap88

rog88

rog77

pt88

pt88

pln88

pln88

oke99

oke88

mining88

livechat88

livechat88

listrik88

listrik88

listrik88

freeport88

freeport88

free88

free88

domain88

domain88

dokter888

dokter888

bmkg88

bmkg88

asn88

merek 88 permainan paling top dan garansi imbal balik hasil besar bersama https://merek88.net/

merek 88 permainan paling top dan garansi imbal balik hasil besar bersama https://merek88.com/

mantan99 permainan paling top dan garansi imbal balik hasil besar bersama https://mantan99.asia/

mantan88 permainan paling top dan garansi imbal balik hasil besar bersama https://mantan88.asia/

maksimal88 permainan paling top dan garansi imbal balik hasil besar bersama https://maksimal88.biz/

maksimal88 permainan paling top dan garansi imbal balik hasil besar bersama https://maksimal88.asia/

liburan88 permainan paling top dan garansi imbal balik hasil besar bersama https://liburan88.com/

indodax88 permainan paling top dan garansi imbal balik hasil besar bersama https://indodax88.org/

indah99 permainan paling top dan garansi imbal balik hasil besar bersama https://indah99.asia/

indah88 permainan paling top dan garansi imbal balik hasil besar bersama https://indah88.asia/

ikn88 permainan paling top dan garansi imbal balik hasil besar bersama https://ikn88.asia/

ibukota88 permainan paling top dan garansi imbal balik hasil besar bersama https://ibukota88.com/

huawei88 permainan paling top dan garansi imbal balik hasil besar bersama https://huawei88.asia/

hot888 permainan paling top dan garansi imbal balik hasil besar bersama https://hot888.asia/

hot88 permainan paling top dan garansi imbal balik hasil besar bersama https://hot88.sale/

dingin88 permainan paling top dan garansi imbal balik hasil besar bersama https://dingin88.net/

citra88 permainan paling top dan garansi imbal balik hasil besar bersama https://citra88.asia/

binance88 permainan paling top dan garansi imbal balik hasil besar bersama https://binance88.net/

best99 permainan paling top dan garansi imbal balik hasil besar bersama https://best99.info/

best88 permainan paling top dan garansi imbal balik hasil besar bersama https://best88.asia/

tradisional 88 permainan paling top dan garansi imbal balik hasil besar bersama https://tradisional88.net/

tradisional 88 permainan paling top dan garansi imbal balik hasil besar bersama https://tradisional88.com/

tombol88 permainan paling top dan garansi imbal balik hasil besar bersama https://tombol88.org/

tombol88 permainan paling top dan garansi imbal balik hasil besar bersama https://tombol88.net/

survey88 permainan paling top dan garansi imbal balik hasil besar bersama https://survey88.net/

survey88 permainan paling top dan garansi imbal balik hasil besar bersama https://survey88.com/

start88 permainan paling top dan garansi imbal balik hasil besar bersama https://start88.org/

start88 permainan paling top dan garansi imbal balik hasil besar bersama https://start88.asia/

obatkuat88 permainan paling top dan garansi imbal balik hasil besar bersama https://obatkuat88.net/

obatkuat88 permainan paling top dan garansi imbal balik hasil besar bersama https://obatkuat88.com/

mcb88 permainan paling top dan garansi imbal balik hasil besar bersama https://mcb88.info/

mcb88 permainan paling top dan garansi imbal balik hasil besar bersama https://mcb88.asia/

master99 permainan paling top dan garansi imbal balik hasil besar bersama https://master99.biz/

master888 permainan paling top dan garansi imbal balik hasil besar bersama https://master888.asia/

master88 permainan paling top dan garansi imbal balik hasil besar bersama https://master88.asia/

live88 permainan paling top dan garansi imbal balik hasil besar bersama https://live88.bio/

live88 permainan paling top dan garansi imbal balik hasil besar bersama https://live88.asia/

libra88 permainan paling top dan garansi imbal balik hasil besar bersama https://libra88.net/

kompresor88 permainan paling top dan garansi imbal balik hasil besar bersama https://kompresor88.net/

kompresor88 permainan paling top dan garansi imbal balik hasil besar bersama https://kompresor88.com/

kesimpulan88 permainan paling top dan garansi imbal balik hasil besar bersama https://kesimpulan88.net/

kesimpulan88 permainan paling top dan garansi imbal balik hasil besar bersama https://kesimpulan88.com/

kapasitor88 permainan paling top dan garansi imbal balik hasil besar bersama https://kapasitor88.net/

kapasitor88 permainan paling top dan garansi imbal balik hasil besar bersama https://kapasitor88.com/

kacamata88 permainan paling top dan garansi imbal balik hasil besar bersama https://kacamata88.net/

kacamata88 permainan paling top dan garansi imbal balik hasil besar bersama https://kacamata88.com/

jamu88 permainan paling top dan garansi imbal balik hasil besar bersama https://jamu88.info/

jamu88 permainan paling top dan garansi imbal balik hasil besar bersama https://jamu88.asia/

jam88 permainan paling top dan garansi imbal balik hasil besar bersama https://jam88.info/

jam88 permainan paling top dan garansi imbal balik hasil besar bersama https://jam88.asia/

follow88 permainan paling top dan garansi imbal balik hasil besar bersama https://follow88.org/

follow88 permainan paling top dan garansi imbal balik hasil besar bersama https://follow88.net/

dinamo88 permainan paling top dan garansi imbal balik hasil besar bersama https://dinamo88.net/

dinamo88 permainan paling top dan garansi imbal balik hasil besar bersama https://dinamo88.info/

baterai88 permainan paling top dan garansi imbal balik hasil besar bersama https://baterai88.net/

baterai88 permainan paling top dan garansi imbal balik hasil besar bersama https://baterai88.com/

miegacoan permainan paling top dan garansi imbal balik hasil besar bersama https://miegacoan.life/

miegacoan permainan paling top dan garansi imbal balik hasil besar bersama https://miegacoan.asia/

gacoan permainan paling top dan garansi imbal balik hasil besar bersama https://gacoan.org/

gacoan permainan paling top dan garansi imbal balik hasil besar bersama https://gacoan.asia/

website88 permainan paling top dan garansi imbal balik hasil besar bersama https://website88.org/

waweb88 permainan paling top dan garansi imbal balik hasil besar bersama https://waweb88.net/

waweb88 permainan paling top dan garansi imbal balik hasil besar bersama https://waweb88.com/

translate88 permainan paling top dan garansi imbal balik hasil besar bersama https://translate88.net/

translate88 permainan paling top dan garansi imbal balik hasil besar bersama https://translate88.com/

tempur888 permainan paling top dan garansi imbal balik hasil besar bersama https://tempur888.info/

tempur888 permainan paling top dan garansi imbal balik hasil besar bersama https://tempur888.asia/

tambang99 permainan paling top dan garansi imbal balik hasil besar bersama https://tambang99.news/

tambang99 permainan paling top dan garansi imbal balik hasil besar bersama https://tambang99.asia/

support88 permainan paling top dan garansi imbal balik hasil besar bersama https://support88.org/

support88 permainan paling top dan garansi imbal balik hasil besar bersama https://support88.net/

support88 permainan paling top dan garansi imbal balik hasil besar bersama https://support88.asia/

sogoslot88 permainan paling top dan garansi imbal balik hasil besar bersama https://sogoslot88.asia/

siap88 permainan paling top dan garansi imbal balik hasil besar bersama https://siap88.news/

siap88 permainan paling top dan garansi imbal balik hasil besar bersama https://siap88.asia/

rog88 permainan paling top dan garansi imbal balik hasil besar bersama https://rog88.asia/

rog77 permainan paling top dan garansi imbal balik hasil besar bersama https://rog77.info/

pt88 permainan paling top dan garansi imbal balik hasil besar bersama https://pt88.info/

pt88 permainan paling top dan garansi imbal balik hasil besar bersama https://pt88.asia/

pln88 permainan paling top dan garansi imbal balik hasil besar bersama https://pln88.biz/

pln88 permainan paling top dan garansi imbal balik hasil besar bersama https://pln88.asia/

oke99 permainan paling top dan garansi imbal balik hasil besar bersama https://oke99.asia/

oke88 permainan paling top dan garansi imbal balik hasil besar bersama https://oke88.asia/

mining88 permainan paling top dan garansi imbal balik hasil besar bersama https://mining88.org/

livechat88 permainan paling top dan garansi imbal balik hasil besar bersama https://livechat88.info/

livechat88 permainan paling top dan garansi imbal balik hasil besar bersama https://livechat88.asia/

listrik88 permainan paling top dan garansi imbal balik hasil besar bersama https://listrik88.org/

listrik88 permainan paling top dan garansi imbal balik hasil besar bersama https://listrik88.info/

listrik88 permainan paling top dan garansi imbal balik hasil besar bersama https://listrik88.asia/

freeport88 permainan paling top dan garansi imbal balik hasil besar bersama https://freeport88.net/

freeport88 permainan paling top dan garansi imbal balik hasil besar bersama https://freeport88.com/

free88 permainan paling top dan garansi imbal balik hasil besar bersama https://free88.org/

free88 permainan paling top dan garansi imbal balik hasil besar bersama https://free88.asia/

domain88 permainan paling top dan garansi imbal balik hasil besar bersama https://domain88.org/

domain88 permainan paling top dan garansi imbal balik hasil besar bersama https://domain88.asia/

dokter888 permainan paling top dan garansi imbal balik hasil besar bersama https://dokter888.net/

dokter888 permainan paling top dan garansi imbal balik hasil besar bersama https://dokter888.asia/

bmkg88 permainan paling top dan garansi imbal balik hasil besar bersama https://bmkg88.net/

bmkg88 permainan paling top dan garansi imbal balik hasil besar bersama https://bmkg88.com/

asn88 permainan paling top dan garansi imbal balik hasil besar bersama https://asn88.org/

Informasi mengenai KING SLOT, Segera Daftar Bersama king selot terbaik dan terpercaya no satu di Indonesia. Boleh mendaftar melalui sini king slot serta memberikan hasil kembali yang paling tinggi saat sekarang ini hanyalah king slot paling gacor, gilak dan gaco saat sekarang di Indonesia melalui program return tinggi di kingselot serta pg king slot

slot demo gacor permainan paling top dan garansi imbal balik hasil besar bersama https://kdwapp.com/

akun demo slot gacor permainan paling top dan garansi imbal balik hasil besar bersama https://kdwapp.com/

akun slot demo gacor permainan paling top dan garansi imbal balik hasil besar bersama https://kdwapp.com/

akun demo slot pragmatic permainan paling top dan garansi imbal balik hasil besar bersama https://kdwapp.com/

akun slot demo pragmatic permainan paling top dan garansi imbal balik hasil besar bersama https://kdwapp.com/

akun slot demo permainan paling top dan garansi imbal balik hasil besar bersama https://kdwapp.com/

akun demo slot permainan paling top dan garansi imbal balik hasil besar bersama https://kdwapp.com/

slot demo gacor

akun demo slot gacor

akun slot demo gacor

akun demo slot pragmatic

akun slot demo pragmatic

akun slot demo

akun demo slot

slot demo gacor permainan paling top dan garansi imbal balik hasil besar bersama https://jebswagstore.com

akun demo slot gacor permainan paling top dan garansi imbal balik hasil besar bersama https://jebswagstore.com

akun slot demo gacor permainan paling top dan garansi imbal balik hasil besar bersama https://jebswagstore.com

akun demo slot pragmatic permainan paling top dan garansi imbal balik hasil besar bersama https://jebswagstore.com

akun slot demo pragmatic permainan paling top dan garansi imbal balik hasil besar bersama https://jebswagstore.com

akun slot demo permainan paling top dan garansi imbal balik hasil besar bersama https://jebswagstore.com

akun demo slot permainan paling top dan garansi imbal balik hasil besar bersama https://jebswagstore.com

slot demo gacor

akun demo slot gacor

akun slot demo gacor

akun demo slot pragmatic

akun slot demo pragmatic

akun slot demo

akun demo slot

slot demo gacor permainan paling top dan garansi imbal balik hasil besar bersama https://demoslotgacor.pro

akun demo slot gacor permainan paling top dan garansi imbal balik hasil besar bersama https://demoslotgacor.pro

akun slot demo gacor permainan paling top dan garansi imbal balik hasil besar bersama https://demoslotgacor.pro

akun demo slot pragmatic permainan paling top dan garansi imbal balik hasil besar bersama https://demoslotgacor.pro

akun slot demo pragmatic permainan paling top dan garansi imbal balik hasil besar bersama https://demoslotgacor.pro

akun slot demo permainan paling top dan garansi imbal balik hasil besar bersama https://demoslotgacor.pro

akun demo slot permainan paling top dan garansi imbal balik hasil besar bersama https://demoslotgacor.pro

slot demo gacor

akun demo slot gacor

akun slot demo gacor

akun demo slot pragmatic

akun slot demo pragmatic

akun slot demo

akun demo slot

slot demo gacor permainan paling top dan garansi imbal balik hasil besar bersama https://situsslotterbaru.net

akun demo slot gacor permainan paling top dan garansi imbal balik hasil besar bersama https://situsslotterbaru.net

akun slot demo gacor permainan paling top dan garansi imbal balik hasil besar bersama https://situsslotterbaru.net

akun demo slot pragmatic permainan paling top dan garansi imbal balik hasil besar bersama https://situsslotterbaru.net

akun slot demo pragmatic permainan paling top dan garansi imbal balik hasil besar bersama https://situsslotterbaru.net

akun slot demo permainan paling top dan garansi imbal balik hasil besar bersama https://situsslotterbaru.net

akun demo slot permainan paling top dan garansi imbal balik hasil besar bersama https://situsslotterbaru.net

slot demo gacor

akun demo slot gacor

akun slot demo gacor

akun demo slot pragmatic

akun slot demo pragmatic

akun slot demo

akun demo slot

situs slot terbaru

slot terbaru

Artikel terkait

Artikel Terbaru