Apa yang Perlu Anda Periksa saat Mengevaluasi Latensi API?
Apa itu latensi API, dan mengapa evaluasi lebih dari sekadar satu angka
Latensi API adalah waktu yang dibutuhkan untuk menyelesaikan interaksi antara klien dan API. Dalam praktiknya, hal ini biasanya dibahas sebagai waktu ujung-ke-ujung (misalnya, permintaan hingga respons), tetapi pandangan “ujung-ke-ujung” dapat mencakup beberapa fase yang berbeda: pencarian DNS, jabat tangan TCP/TLS (jika tidak digunakan kembali), transit jaringan, pemrosesan server, dan penantian apa pun karena antrean atau batas kecepatan.
Evaluasi yang berguna memisahkan mekanisme yang stabil (bagaimana sistem berperilaku dalam kondisi yang ditentukan) dari kondisi yang bervariasi (kemacetan jaringan, beban penyedia, dan permintaan yang berubah). Ini penting karena dua sistem dapat menunjukkan “latensi rata-rata” yang serupa sementara memiliki penundaan kasus terburuk atau perilaku kegagalan yang berbeda.
Untuk mengikuti pendekatan uji tuntas, Anda juga harus menyatakan asumsi Anda. Jika Anda membandingkan penyedia, tentukan jendela waktu apa yang Anda gunakan, permintaan apa yang Anda kirim, dan apakah Anda mengukur di sisi klien atau di dalam infrastruktur Anda.
Daftar periksa bukti: apa yang harus diukur sebelum menafsirkan latensi
Gunakan daftar periksa kontrol ini untuk mengevaluasi latensi dengan cara yang dapat Anda verifikasi secara independen:
- Perjelas definisi pengukuran
- Tanyakan apakah latensi diukur di sisi klien, di sisi server, atau sebagai nilai yang dimodelkan.
- Konfirmasikan apa saja yang termasuk dalam “waktu”: jaringan, pemrosesan aplikasi, dan percobaan ulang.
- Pecah latensi menjadi beberapa fase Bahkan jika penyedia melaporkan satu metrik, cobalah untuk mengamati petunjuk terkait fase:
- Pengaturan koneksi vs penggunaan kembali (koneksi baru dapat menambah overhead jabat tangan).
- Tanda-tanda antrean atau pembatasan (penundaan lama tanpa pemrosesan dapat mengindikasikan penantian).
- Efek ukuran muatan (respons yang lebih besar dapat meningkatkan waktu serialisasi dan transfer).
- Gunakan beberapa persentil dan jumlah kegagalan Latensi rata-rata dapat menyembunyikan ketidakstabilan. Lacak persentil (misalnya, persentil yang lebih tinggi) dan juga catat:
- Batas waktu dan tingkat kesalahan.
- Perilaku percobaan ulang dan jeda mundur apa pun.
- Pencilan: seberapa sering latensi melonjak di atas ambang batas Anda.
- Uji dengan pola permintaan yang realistis Latensi bergantung pada bentuk lalu lintas. Gunakan beban kerja yang konsisten:
- Jenis pesan yang sebenarnya akan Anda panggil.
- Tingkat konkurensi.
- Tingkat permintaan relatif terhadap batas throughput yang dipublikasikan.
- Dokumentasikan lingkungan dan pengulangan Untuk membuat perbandingan menjadi bermakna, catat:
- Lokasi/wilayah klien dan asumsi jalur perutean.
- Durasi pengujian dan waktu dalam sehari.
- Apakah Anda menggunakan koneksi hangat atau mulai dingin.
Contoh mini (dengan asumsi eksplisit)
Asumsikan klien Anda mengukur waktu permintaan-ke-respons pada saat Anda mengirim permintaan dan saat Anda menerima respons penuh. Jika Penyedia A memiliki lebih sedikit batas waktu daripada Penyedia B tetapi kadang-kadang menunjukkan lonjakan besar, “rata-rata” bisa serupa sementara pengalaman pengguna nyata berbeda. Oleh karena itu, Anda akan membandingkan latensi persentil yang lebih tinggi dan frekuensi batas waktu di bawah konkurensi dan pola permintaan yang sama.
Cara kerjanya di dunia nyata: mekanisme stabil vs kondisi variabel
Dua mekanisme stabil sering mendominasi perilaku latensi praktis:
- Antrean di bawah beban: Saat server atau perantara sibuk, permintaan mungkin menunggu sebelum diproses. Ini dapat menciptakan peningkatan tajam dalam latensi bahkan jika waktu pemrosesan rata-rata stabil.
- Pembatasan kecepatan dan pembatasan: Jika permintaan melebihi batas, sistem dapat menunda, menolak, atau memerlukan percobaan ulang. Perilaku ini dapat secara drastis mengubah waktu ujung-ke-ujung.
Kondisi variabel meliputi:
- Kemacetan jaringan dan perubahan perutean.
- Kontensi sumber daya penyedia (CPU, I/O, akses basis data, atau dependensi hilir).
- Variabilitas terkait pasar dalam logika hilir apa pun yang Anda panggil (misalnya, bagaimana permintaan Anda dipetakan ke alur kerja internal).
Karena faktor-faktor ini bervariasi, hubungan historis tidak menjamin hasil masa depan. Bahkan jika Anda mengukur latensi yang baik bulan lalu, Anda harus memperlakukannya sebagai pengamatan, bukan janji.
Keterbatasan dan risiko yang perlu diperhatikan
Setidaknya satu keterbatasan material biasanya diabaikan dalam evaluasi “hanya latensi”:
-
Kopling latensi vs hasil tidak otomatis Latensi yang lebih rendah masih dapat bertepatan dengan hasil yang lebih buruk jika keandalan, kebenaran, atau penanganan kegagalan lemah. Sebaliknya, latensi yang sedikit lebih tinggi dapat diterima jika kegagalan jarang terjadi dan respons konsisten.
-
Perilaku kasus terburuk sering kali merupakan risiko nyata Sistem dengan lonjakan yang jarang tetapi parah dapat menjadi masalah. Itulah mengapa batas waktu, badai percobaan ulang, dan latensi ekor penting.
-
Percobaan ulang dapat meningkatkan waktu ujung-ke-ujung Jika klien Anda mencoba ulang secara otomatis, satu permintaan lambat dapat menjadi beberapa upaya, membuat latensi efektif lebih lama dan kurang dapat diprediksi.
-
Definisi yang berbeda dapat menyesatkan perbandingan Penyedia mungkin melaporkan waktu pemrosesan, sementara Anda mengukur waktu ujung-ke-ujung. Ini bukan hal yang sama, jadi Anda harus menyelaraskan definisi.