Memahami dan Mengelola Latency di APISIX: Panduan Teknis Komprehensif

December 29, 2023

Technology

Pertanyaan umum dari pengguna sering kali berkisar pada pengukuran latensi yang tepat di APISIX. Saat menggunakan APISIX, bagaimana seharusnya seseorang menangani latensi yang sangat tinggi?

Pada kenyataannya, diskusi tentang pengukuran latensi berfokus pada kinerja dan waktu respons dari permintaan API. Memahami aspek-aspek ini sangat penting untuk memastikan layanan API yang efisien, terutama dalam perangkat lunak B2B di mana klien menuntut ketersediaan dan kinerja API yang tinggi. Dalam skenario sensitif seperti perangkat lunak perdagangan saham di pasar keuangan, latensi dapat berdampak signifikan pada para trader.

Lalu, apa itu latensi dan apa itu latensi di APISIX? Latensi di APISIX mengacu pada waktu yang dibutuhkan untuk seluruh proses permintaan API, mulai dari dikirim oleh klien hingga menerima respons. Penundaan ini terdiri dari faktor-faktor seperti latensi jaringan klien, waktu pemrosesan internal APISIX, dan latensi interaksi dengan layanan upstream.

latency

Untuk pemahaman dan pengukuran yang lebih baik terhadap latensi ini, kita dapat mengkategorikannya menjadi beberapa komponen kunci.

  1. Latensi Jaringan Klien-ke-APISIX: Ini mengukur waktu yang dibutuhkan untuk permintaan melakukan perjalanan dari klien ke APISIX, dipengaruhi oleh faktor-faktor seperti jarak antara klien dan APISIX, kemacetan jaringan, dll. Alat khusus dapat digunakan untuk mengukur waktu ini.

  2. Waktu Pemrosesan Internal APISIX: Ini mencakup waktu yang dibutuhkan APISIX untuk menjalankan berbagai operasi secara internal, termasuk keputusan routing, autentikasi, otorisasi, dan logika kustom yang diimplementasikan melalui plugin.

  3. Latensi Interaksi Layanan Upstream: Jika APISIX berkomunikasi dengan layanan upstream (biasanya aplikasi backend atau microservices), waktu yang dihabiskan dalam interaksi ini termasuk dalam latensi keseluruhan. Ini melibatkan waktu yang dibutuhkan untuk permintaan melakukan perjalanan dari APISIX ke layanan upstream dan waktu yang dibutuhkan untuk respons kembali.

Latensi APISIX dapat dihitung menggunakan rumus: Latensi APISIX = Total Latensi - Latensi Interaksi Upstream. Total Latensi mewakili waktu dari pengiriman permintaan hingga penerimaan respons, sementara Latensi Interaksi Upstream berfokus pada waktu komunikasi antara APISIX dan layanan upstream.

Catatan: Di Linux, upstream_response_time dihitung melalui clock_gettime(CLOCK_MONOTONIC_COARSE), dan dengan nilai tipikal CONFIG_HZ=250, mungkin mencapai 4 milidetik. Pada saat yang sama, waktu untuk menghitung request_time bukanlah waktu monoton, tetapi hasil dari gettimeofday(), yang merupakan waktu menurut jam dinding. Jadi dalam beberapa kasus, upstream_response_time mungkin sedikit lebih besar dari request_time.

Selain itu, dalam lingkungan jaringan yang lemah atau skenario yang melibatkan pengunggahan/unduhan file besar, latensi antara klien dan gateway dapat ditambahkan ke apisix_latency. Silakan analisis masalah spesifik berdasarkan kasus per kasus.

Latensi APISIX dapat diklasifikasikan menjadi tiga jenis:

  1. Latensi Downstream: Termasuk latensi transmisi jaringan dan operasi seperti membaca badan permintaan antara APISIX dan klien. Pemantauan dan analisis latensi ini memberikan wawasan tentang kinerja komunikasi untuk optimasi.

  2. Latensi NGINX: Karena APISIX menggunakan NGINX untuk penanganan dan routing permintaan, waktu berjalan internal NGINX memengaruhi latensi keseluruhan. Alat khusus dapat digunakan untuk pemantauan.

  3. Latensi Eksekusi Kode Plugin Lua: Mengingat banyaknya plugin Lua di APISIX, waktu eksekusi setiap plugin adalah faktor penting. Alat khusus diperlukan untuk analisis.

Untuk menyelesaikan masalah latensi, analisis sistematis dapat dilakukan berdasarkan komponen latensi yang telah diidentifikasi. Solusi termasuk mengoptimalkan arsitektur jaringan, memanfaatkan CDN untuk latensi jaringan klien, mengidentifikasi kode Lua yang bermasalah di APISIX, dan memeriksa interaksi layanan upstream untuk masalah potensial. Pemantauan dan analisis berkelanjutan memungkinkan deteksi dan penyelesaian masalah potensial secara tepat waktu, memfasilitasi optimasi yang lebih baik dari layanan API untuk memenuhi persyaratan klien akhir.

Memahami dan mengelola latensi APISIX sangat penting untuk memastikan kinerja API yang optimal. Melalui analisis menyeluruh dari setiap komponen, pemantauan berkelanjutan, dan optimasi strategis, layanan API dapat ditingkatkan untuk meningkatkan ketersediaan dan responsivitas, memenuhi kebutuhan pengguna akhir dengan efektif.

Untuk data perbandingan QPS dan latensi antara APISIX dan produk gateway lainnya, lihat "Mengapa Apache APISIX adalah Gateway API Terbaik?".

perbandingan latensi APISIX dan Kong

Tags: