All Products
Search
Document Center

Application Real-Time Monitoring Service:Laporan uji kinerja Agen ARMS untuk Java V5.x

Last Updated:Aug 04, 2026

Layanan Pemantauan Aplikasi Waktu Nyata (Application Real-Time Monitoring Service/ARMS) menggunakan instrumen bytecode pada waktu proses untuk memantau kinerja aplikasi. Seperti solusi pemantauan berbasis instrumen bytecode lainnya, agen ARMS untuk Java menimbulkan overhead kinerja. Laporan ini mensimulasikan skenario dengan tingkat traffic berbeda untuk mengukur overhead kinerja agen ARMS untuk Java V5.x. Sebelum menghubungkan aplikasi Anda ke Pemantauan Aplikasi, rujuk laporan ini untuk mengevaluasi dampak terhadap kinerja.

Skema pengujian

Gambar berikut menunjukkan arsitektur keseluruhan.

Aplikasi Java dikembangkan menggunakan model Spring Web MVC (model-view-controller) dan mengakses MySQL serta Redis melalui framework Druid dan Jedis berdasarkan permintaan yang dikirim dari Alibaba Cloud Performance Testing (PTS).

  • Saat menerima permintaan ${mall-gateway}/case/api/v1/mysql/execute, aplikasi mengakses MySQL. Setiap kali menerima permintaan ini, aplikasi mengakses MySQL sebanyak 1 hingga 4 kali.

  • Saat menerima permintaan ${mall-gateway}/case/api/v1/redis/execute, aplikasi mengakses Redis. Setiap kali menerima permintaan ini, aplikasi mengakses Redis sebanyak 1 hingga 10 kali.

Lingkungan pengujian

  • Sumber uji stres disediakan oleh PTS.

  • Aplikasi Java, MySQL, dan Redis semuanya dideploy dalam kluster Alibaba Cloud Container Service for Kubernetes (ACK) yang sama. Tipe instans node adalah ecs.u1-c1m2.8xlarge, dan versi sistem operasi node adalah Alibaba Cloud Linux 2.1903 LTS 64-bit.

  • Setiap Pod aplikasi memiliki 2 core, memori 4 GB, dan dua replika. Parameter JVM adalah sebagai berikut:

    -Xms3500m -Xmx3500m -XX:MetaspaceSize=500m

  • Versi agen ARMS untuk Java adalah Aliyun JavaAgent 5.1.2.

  • Fitur dasar Pemantauan Aplikasi diaktifkan, termasuk metrik, jejak (traces), dan kuantil. Semua plugin juga diaktifkan. Beberapa fitur lanjutan dinonaktifkan selama pengujian, seperti kompresi jejak, konvergensi URL, penyamaran data, dan continuous profiling.

  • Kode contoh

Prosedur pengujian

  1. Lakukan tiga uji stres pada beban 500, 1.000, dan 2.000 QPS. Setiap uji stres berlangsung selama 1 jam. Sebelum setiap uji stres, lakukan pemanasan aplikasi Java pada beban 100 QPS selama 3 menit. Hasil pengujian ini akan digunakan sebagai metrik kinerja dasar.

  2. Instal agen ARMS untuk Java V5.x. Konfigurasikan laju pengambilan sampel sebesar 10% dalam kebijakan sampling, lalu ulangi uji stres pada Langkah 1 untuk membandingkan perbedaan overhead CPU, overhead memori, dan waktu respons aplikasi Java.

  3. Instal agen ARMS untuk Java V5.x. Konfigurasikan laju pengambilan sampel sebesar 100% dalam kebijakan sampling, lalu ulangi uji stres pada Langkah 1 untuk membandingkan perbedaan overhead CPU, overhead memori, dan waktu respons aplikasi Java.

Catatan
  • Untuk informasi lebih lanjut tentang cara mengonfigurasi kebijakan sampling, lihat Mode sampling jejak untuk agen sebelum versi 3.2.8.

  • Fitur dasar ARMS Application Monitoring (seperti metrik statistik, rantai panggilan, dan kuantil) serta semua fitur plugin diaktifkan. Namun, beberapa fitur lanjutan sementara dinonaktifkan, seperti kompresi jejak, konvergensi URL, sakelar penyamaran data, dan continuous profiling.

Metrik kinerja dasar

Item

CPU

Memori

Waktu respons (Satuan: milidetik)

500 QPS

6,752%

11,48%

57,8

1.000 QPS

13,112%

11,78%

64,1

2.000 QPS

26,910%

12,22%

70,8

  • Metrik CPU merepresentasikan persentase penggunaan CPU oleh Pod terhadap total CPU (2 core).

  • Metrik memori merepresentasikan persentase penggunaan memori oleh Pod terhadap total memori. Karena penggunaan memori oleh Pod meningkat secara alami hingga mencapai nilai requests, laporan ini menggunakan penggunaan memori aktual pada akhir uji stres.

  • Metrik waktu respons merepresentasikan rata-rata waktu respons permintaan. Satuan: milidetik.

Metrik kinerja absolut dengan agen ARMS terinstal

Item

CPU (laju sampling 10%)

Memori (laju sampling 10%)

Waktu respons dalam ms (laju sampling 10%)

CPU (laju sampling 100%)

Memori (laju sampling 100%)

Waktu respons dalam ms (laju sampling 100%)

500 QPS

8,492%

13,66%

58,6

9,392%

13,83%

59,0

1.000 QPS

16,932%

14,07%

65,2

18,072%

14,33%

65,6

2.000 QPS

35,120%

14,61%

75,1

35,930%

14,64%

76,2

Overhead CPU tidak meningkat secara linear terhadap laju sampling atau QPS. Secara default, terdapat batas atas untuk pengumpulan jejak per detik.

Overhead kinerja agen ARMS untuk Java V5.x

Item

CPU (laju sampling 10%)

Memori (laju sampling 10%)

Waktu respons dalam ms (laju sampling 10%)

CPU (laju sampling 100%)

Memori (laju sampling 100%)

Waktu respons dalam ms (laju sampling 100%)

500 QPS

+1,74%

+2,18%

+0,8

+2,64%

+2,35%

+1,2

1.000 QPS

+3,82%

+2,29%

+1,1

+4,96%

+2,55%

+1,5

2.000 QPS

+8,21%

+2,39%

+4,3

+9,02%

+2,42%

+5,4

Kesimpulan

  • Overhead tambahan CPU dan memori yang disebabkan oleh agen ARMS untuk Java V5.x berada di bawah 10%.

  • Agen ARMS untuk Java V5.x memiliki dampak kecil terhadap waktu respons (di bawah 10%), yang meningkat sekitar 1,1 milidetik pada laju sampling 10% dan 1,5 milidetik pada laju sampling 100% saat QPS mencapai 1.000.

  • Overhead kinerja pada laju sampling tetap 100% sedikit lebih besar dibandingkan laju sampling tetap 10%.

  • Hasil ini didasarkan pada kondisi pengujian yang dijelaskan di atas, dengan beberapa fitur lanjutan dinonaktifkan selama pengujian.