Menganalisis performa pekerjaan Azure Stream Analytics dengan menggunakan metrik dan dimensi

Untuk memahami kesehatan pekerjaan Azure Stream Analytics, penting untuk mengetahui cara menggunakan metrik dan dimensi pekerjaan. Anda dapat menggunakan portal Azure, ekstensi Azure Stream Analytics Visual Studio Code, atau SDK untuk mendapatkan metrik dan dimensi yang Anda minati.

Artikel ini menunjukkan cara menggunakan metrik dan dimensi pekerjaan Azure Stream Analytics untuk menganalisis performa pekerjaan melalui portal Azure.

Penundaan marka air dan peristiwa input yang di-backlog adalah metrik utama untuk menentukan performa pekerjaan Azure Stream Analytics Anda. Jika penundaan marka air pekerjaan Anda terus meningkat dan kejadian input di-backlog, pekerjaan Anda tidak dapat mengikuti laju kejadian input dan menghasilkan output pada waktu yang tepat.

Mari kita lihat beberapa contoh untuk menganalisis performa pekerjaan melalui data metrik Penundaan Marka Air sebagai titik awal.

Tidak ada input untuk partisi tertentu akan meningkatkan penundaan marka air pekerjaan

Jika penundaan marka air pekerjaan Anda yang benar-benar paralel terus meningkat, buka Metrik. Kemudian gunakan langkah-langkah ini untuk mengetahui apakah akar penyebabnya adalah kurangnya data di beberapa partisi sumber input Anda:

  1. Periksa partisi mana dengan penundaan marka air yang meningkat. Pilih metrik Penundaan Marka Air dan pisahkan berdasarkan dimensi ID Partisi. Dalam contoh berikut, partisi 465 memiliki penundaan marka air yang tinggi.

    Cuplikan layar bagan yang menunjukkan pemisahan marka air berdasarkan ID Partisi jika tidak ada input dalam partisi.

  2. Periksa apakah ada data input yang hilang untuk partisi ini. Pilih metrik Peristiwa Input dan filter berdasarkan ID partisi khusus ini.

    Cuplikan layar bagan yang menunjukkan pemisahan Peristiwa Input berdasarkan ID Partisi jika tidak ada input dalam partisi.

Apa tindakan lebih lanjut yang dapat Anda lakukan?

Penundaan marka air untuk partisi ini meningkat karena tidak ada peristiwa input yang mengalir ke partisi ini. Jika jendela toleransi pekerjaan Anda untuk kedatangan terlambat adalah beberapa jam dan tidak ada data input yang mengalir ke dalam partisi, diharapkan penundaan marka air untuk partisi tersebut akan terus meningkat hingga jendela kedatangan terlambat tercapai.

Misalnya, jika jendela keterlambatan kedatangan Anda adalah 6 jam dan data input tidak mengalir ke partisi input 1, penundaan marka air untuk partisi output 1 akan meningkat hingga mencapai 6 jam. Anda dapat memeriksa apakah sumber input Anda menghasilkan data seperti yang diharapkan.

Penyimpangan data input menyebabkan penundaan marka air yang tinggi

Seperti disebutkan dalam kasus sebelumnya, ketika pekerjaan Anda yang benar-benar paralel memiliki penundaan marka air tinggi, hal pertama yang harus dilakukan adalah memisahkan metrik Penundaan Marka Air dengan dimensi ID Partisi. Anda kemudian dapat mengidentifikasi apakah semua partisi memiliki penundaan marka air tinggi, atau hanya beberapa di antaranya.

Dalam contoh berikut, partisi 0 dan 1 memiliki penundaan marka air lebih tinggi (sekitar 20 hingga 30 detik) daripada delapan partisi lainnya. Penundaan marka air partisi lain selalu stabil sekitar 8 hingga 10 detik.

Cuplikan layar bagan yang menunjukkan Penundaan Marka Air yang dipisahkan berdasarkan ID Partisi jika ada penyimpangan data.

Mari kita lihat seperti apa data input untuk semua partisi ini dengan metrik Peristiwa Input yang dipisahkan berdasarkan ID Partisi:

Cuplikan layar bagan yang menunjukkan Peristiwa Input yang dipisahkan berdasarkan ID Partisi jika ada penyimpangan data.

Apa tindakan lebih lanjut yang dapat Anda lakukan?

Seperti yang ditunjukkan dalam contoh, partisi (0 dan 1) yang memiliki penundaan marka air tinggi menerima data input yang jauh lebih banyak daripada partisi lainnya. Kami menyebut ini penyimpangan data. Node streaming yang memproses partisi dengan penyimpangan data perlu menggunakan lebih banyak sumber daya CPU dan memori daripada yang lain, seperti yang ditunjukkan pada cuplikan layar berikut.

Cuplikan layar bagan yang menunjukkan pemanfaatan sumber daya partisi dengan penyimpangan data.

Node streaming yang memproses partisi dengan penyimpangan data lebih tinggi akan menunjukkan penggunaan CPU dan/atau unit streaming (SU) yang lebih tinggi. Pemanfaatan ini akan memengaruhi performa pekerjaan dan meningkatkan penundaan marka air. Untuk mengurangi hal ini, Anda harus membagi ulang data input secara lebih merata.

Anda juga dapat men-debug masalah ini dengan diagram pekerjaan fisik, lihat Diagram pekerjaan fisik: Mengidentifikasi peristiwa input terdistribusi yang tidak merata (penyimpangan data).

CPU atau memori yang kelebihan beban akan meningkatkan penundaan marka air

Ketika pekerjaan Anda yang benar-benar paralel memiliki penundaan marka air yang meningkat, itu mungkin tidak hanya terjadi pada satu atau beberapa partisi, tetapi semua partisi. Bagaimana cara memastikan bahwa pekerjaan Anda termasuk dalam kasus ini?

  1. Pisahkan metrik Penundaan Marka Air berdasarkan ID Partisi. Contohnya:

    Cuplikan layar bagan yang menunjukkan Penundaan Marka Air yang dipisahkan berdasarkan ID Partisi jika ada kelebihan beban di CPU dan memori.

  2. Pisahkan metrik Peristiwa Input berdasarkan ID Partisi untuk memastikan apakah ada penyimpangan data di data input per partisi.

  3. Periksa pemanfaatan CPU dan SU untuk melihat apakah pemanfaatan di semua node streaming terlalu tinggi.

    Cuplikan layar bagan yang menunjukkan penggunaan CPU dan memori yang dipisahkan berdasarkan nama node jika ada kelebihan beban di CPU dan memori.

  4. Jika penggunaan CPU dan SU sangat tinggi (lebih dari 80 persen) di semua node streaming, Anda dapat menyimpulkan bahwa pekerjaan ini memiliki sejumlah besar data yang sedang diproses dalam setiap node streaming.

    Anda dapat memeriksa lebih lanjut berapa banyak partisi yang dialokasikan ke satu node streaming dengan memeriksa metrik Peristiwa Input. Filter berdasarkan ID node streaming dengan dimensi Nama Node, dan pisahkan berdasarkan ID Partisi.

    Cuplikan layar bagan yang menunjukkan jumlah partisi pada satu node streaming jika ada CPU dan memori yang kelebihan beban.

  5. Cuplikan layar sebelumnya menunjukkan bahwa empat partisi dialokasikan ke satu node streaming yang menempati sekitar 90 hingga 100 persen dari sumber daya node streaming. Anda dapat menggunakan pendekatan serupa untuk memeriksa node streaming lainnya untuk mengonfirmasi bahwa mereka juga memproses data dari empat partisi.

Apa tindakan lebih lanjut yang dapat Anda lakukan?

Anda mungkin ingin mengurangi jumlah partisi untuk setiap node streaming untuk mengurangi data input untuk setiap node streaming. Untuk mencapai ini, Anda dapat menggandakan SU agar setiap node streaming menangani data dari dua partisi. Atau Anda dapat melipatgandakan SU agar setiap node streaming menangani data dari satu partisi. Untuk informasi tentang hubungan antara penetapan SU dan jumlah node streaming, lihat Memahami dan menyesuaikan unit streaming.

Apa yang harus Anda lakukan jika penundaan marka air masih meningkat ketika satu node streaming menangani data dari satu partisi? Partisi ulang input Anda dengan lebih banyak partisi untuk mengurangi jumlah data di setiap partisi. Untuk detailnya, lihat Menggunakan partisi ulang untuk mengoptimalkan pekerjaan Azure Stream Analytics.

Anda juga dapat men-debug masalah ini dengan diagram pekerjaan fisik, lihat Diagram pekerjaan fisik: Mengidentifikasi penyebab CPU atau memori yang kelebihan beban.

Langkah berikutnya