Setelah proxy sidecar disuntikkan ke dalam beban kerja, proxy sidecar mengintersep dan merutekan lalu lintas berdasarkan kebijakan yang ditentukan. Proxy sidecar membutuhkan waktu untuk memproses dan meneruskan lalu lintas, yang dapat menunda respons terhadap permintaan. Namun, penundaan ini biasanya tidak signifikan pada pemrosesan bersamaan jika performa node kuat. Topik ini menjelaskan cara menggunakan log akses untuk menemukan penyebab latensi respons tinggi.
Langkah 1: Temukan komponen yang menyebabkan latensi tinggi di jalur permintaan
Periksa bidang durasi dalam log akses untuk mengetahui periode waktu yang dikonsumsi oleh komponen pada bidang data plane. Selama periode ini, komponen membaca dan meneruskan permintaan ke layanan upstream, menunggu respons dari layanan upstream, serta membaca dan meneruskan respons ke node downstream.
Jika periode waktu tersebut tidak sesuai harapan, periksa komponen upstream berikutnya di jalur permintaan. Jika latensi yang disebabkan oleh komponen upstream berikutnya sesuai harapan, maka komponen saat ini pada bidang data plane adalah penyebab latensi tinggi. Namun, jika latensi yang disebabkan oleh komponen upstream berikutnya tidak sesuai harapan, lanjutkan pemeriksaan hingga Anda menemukan komponen yang menyebabkan latensi tinggi.
Langkah 2: Periksa mengapa komponen menyebabkan latensi tinggi
Penyebab umum latensi tinggi meliputi penundaan transmisi jaringan dan pemrosesan upstream yang lambat. Anda dapat mengonfirmasi alasannya dengan memeriksa bidang terkait dalam log akses.
Penundaan transmisi jaringan
Periksa bidang request_duration dan request_tx_duration dalam log akses.
Jika nilai bidang request_duration lebih besar dari yang diharapkan, komponen pada bidang data plane membutuhkan waktu lama untuk membaca permintaan dari node downstream. Komponen ini bisa berupa proxy sidecar atau gateway.
Jika nilai bidang request_tx_duration lebih besar dari yang diharapkan, komponen membutuhkan waktu lama untuk meneruskan permintaan ke layanan upstream.
Untuk permintaan HTTP dengan body, body dibaca dan dikirimkan secara bersamaan ke layanan upstream, bukan setelah selesai dibaca. Oleh karena itu, request_duration yang lama dapat menyebabkan request_tx_duration yang lama.
Jika hanya request_tx_duration yang lama, permintaan dibaca dengan cepat tetapi dikirimkan dengan lambat ke layanan upstream.
Jika baik request_duration maupun response_tx_duration panjang, respons dibaca dengan lambat dari layanan upstream atau diteruskan dengan lambat ke node downstream.
Pemrosesan upstream yang lambat
Bidang response_duration dalam log akses menunjukkan rentang waktu dari dimulainya permintaan hingga byte pertama respons diterima.
Perbedaan antara nilai response_duration dan request_tx_duration menunjukkan waktu yang dikonsumsi oleh layanan upstream untuk memproses permintaan. Jika perbedaan antara kedua nilai tersebut besar, kemungkinan kecepatan pemrosesan layanan upstream lambat atau latensi jaringan upstream tinggi.