All Products
Search
Document Center

Application Real-Time Monitoring Service:Profil thread

Last Updated:Aug 21, 2026

Profil thread menyediakan statistik tingkat thread mengenai waktu CPU dan jumlah thread berdasarkan jenisnya. Fitur ini merekam serta mengagregasi stack metode thread setiap 5 menit untuk merekonstruksi eksekusi kode aktual dan membantu Anda dengan cepat mengidentifikasi masalah terkait thread. Jika Anda melihat pemanfaatan CPU yang tinggi di kluster atau sejumlah besar metode lambat, gunakan profil thread untuk menemukan thread atau metode yang paling banyak mengonsumsi CPU.

Catatan

Fitur ini saat ini hanya tersedia untuk aplikasi Java.

Prasyarat

Penting

Pemantauan Aplikasi ARMS menyediakan halaman detail pemantauan baru bagi pengguna yang menggunakan paket penagihan baru. Untuk informasi selengkapnya tentang paket penagihan baru, lihat Penagihan (Baru).

Jika Anda belum mengaktifkan paket penagihan baru, klik Switch to New Version pada halaman daftar aplikasi.

Agen harus diinstal untuk aplikasi Anda. Untuk informasi selengkapnya, lihat Ikhtisar Integrasi Pemantauan Aplikasi.

Prosedur

  1. Masuk ke Konsol ARMS. Di panel navigasi kiri, pilih Application Monitoring > Application List.

  2. Pada halaman Application List, pilih wilayah target di bagian atas lalu klik nama aplikasi Anda.

    Catatan

    Ikon pada kolom Language memiliki makna sebagai berikut:

    Java图标: Aplikasi Java yang terintegrasi dengan pemantauan aplikasi.

    image: Aplikasi Go yang terintegrasi dengan pemantauan aplikasi.

    image: Aplikasi Python yang terintegrasi dengan pemantauan aplikasi.

    -: Aplikasi yang terintegrasi dengan Managed Service for OpenTelemetry.

  3. Di bilah navigasi atas, pilih Application Diagnostics > Thread Profiling.

Analisis thread

Daftar di sisi kiri halaman Thread Profiling menampilkan semua thread aplikasi, memungkinkan Anda dengan cepat mengidentifikasi thread abnormal berdasarkan CPU time-nya. Setelah memilih thread abnormal, gunakan grafik di sisi kanan untuk menganalisis CPU time dan Number of Threads. Misalnya, periksa apakah jumlah total thread per menit terlalu tinggi.

Untuk thread abnormal apa pun, klik Method Stack untuk melihat stack metode waktu prosesnya dalam periode waktu tertentu. Misalnya, Anda dapat melihat metode yang sesuai dengan thread dalam status BLOCKED. Hal ini membantu Anda mengidentifikasi segmen kode spesifik yang perlu dioptimalkan guna mengurangi pemanfaatan CPU.

ALL: 365194  RUNNABLE: 986  BLOCKED: 87  WAITING: 1498  TIMED_WAITING: 362617

【BLOCKED】81/87(次) - 占比93.10%
at java.lang.Object.wait (Native Method)
  at xxx.awaitAvailable (BasicResourcePool.java:1315)
  at xxx.prelimCheckoutResource (BasicResourcePool.java:557)
  at xxx.checkoutResource (BasicResourcePool.java:477)
  at xxx.checkoutPooledConnection (C3P0PooledConnectionPool.java:525)
  at xxx.getConnection (AbstractPoolBackedDataSource.java:128)
  at xxx.getConnection (PoolingConnectionProvider.java:247)
  at xxx.getConnection (DBConnectionManager.java:108)
  at xxx.getConnection (JobStoreSupport.java:775)
  at com.alibaba.arms.alert.scheduler.xxx.EnhanceJobStoreSupport.getNonManagedTXConnection (EnhanceJobStoreSupport.java:17)
  at xxx.executeInNonManagedTXLock (JobStoreSupport.java:3777)
  at xxx.retryExecuteInNonManagedTXLock (JobStoreSupport.java:3742)
  at xxx.triggeredJobComplete (JobStoreSupport.java:3039)
  at xxx.notifyJobStoreJobComplete (QuartzScheduler.java:1804)
  at xxx.JobRunShell.java:269)
  at xxx$WorkerThread.run (SimpleThreadPool.java:573)

【BLOCKED】2/87(次) - 占比2.30%
at xxx.checkinStatement (GooGooStatementCache.java:220)
  at xxx.checkinStatement (NewPooledConnection.java:239)
  at xxx.close (NewProxyPreparedStatement.java:1807)
  at xxx.closeStatement (StdJDBCDelegate.java:3287)
  at xxx.deleteFiredTrigger (StdJDBCDelegate.java:2916)
  at xxx.triggeredJobComplete (JobStoreSupport.java:3116)
  at xxx.executeVoid (JobStoreSupport.java:3043)
  at xxx.$VoidTransactionCallback.execute (JobStoreSupport.java:3703)
  at xxx.$VoidTransactionCallback.execute (JobStoreSupport.java:3701)
  at xxx.executeInNonManagedTXLock (JobStoreSupport.java:3787)
  at xxx.retryExecuteInNonManagedTXLock (JobStoreSupport.java:3742)
  at xxx.triggeredJobComplete (JobStoreSupport.java:3039)
  at xxx.notifyJobStoreJobComplete (QuartzScheduler.java:1804)
  at xxx.JobRunShell.java:269)
  at xxx.WorkerThread.run (SimpleThreadPool.java:573)

【BLOCKED】1/87(次) - 占比1.15%

Jika versi agen Anda 2.7.3.5 atau lebih baru, ARMS menggunakan continuous profiling untuk memberikan informasi stack metode yang lebih akurat mengenai penggunaan CPU thread. Gambar berikut menunjukkan contohnya. Untuk informasi selengkapnya, lihat continuous profiling.

image

Catatan

Jika tidak ada data yang muncul setelah Anda mengklik Method Stack, ikuti langkah-langkah berikut untuk pemecahan masalah:

  • Jika versi agen Anda lebih lama dari 2.7.3.5, buka bagian Thread Settings pada tab Application Configuration > Custom Configurations dan periksa apakah sakelar Method stack for thread profiling diaktifkan. Jika sakelar ini dinonaktifkan, informasi stack metode tidak akan direkam. Jika diaktifkan, informasi stack metode dikumpulkan setiap 5 menit.

  • Jika versi agen Anda 2.7.3.5 atau lebih baru, buka bagian Continuous profiling pada tab Application Configuration > Custom Configurations dan pastikan sakelar main switch serta sakelar CPU hotspots diaktifkan. Kedua sakelar tersebut harus diaktifkan agar informasi stack metode dapat direkam.