Antipola: Dampak KVM yang tidak ada pada latensi

Anda sedang melihat dokumentasi Apigee Edge.
Buka dokumentasi Apigee X.
info

Kebijakan Peta Nilai Kunci (KVM) adalah komponen mendasar dalam mengelola konfigurasi dan nilai dinamis dalam sistem. Namun, keberadaan dan pencarian kunci yang tidak ada dalam KVM ini dapat memengaruhi performa secara signifikan dan menyebabkan peningkatan latensi.

Antipola

Saat kebijakan KVM mencoba mengambil nilai untuk kunci yang tidak ada di Peta Nilai Kunci, hal ini akan menghasilkan panggilan tambahan ke database Cassandra. Peningkatan komunikasi dengan database backend ini, terutama untuk kunci yang tidak ada, akan menggunakan lebih banyak resource dan waktu, sehingga meningkatkan latensi permintaan secara keseluruhan.

Dampak

Efek utama antipola ini adalah latensi runtime yang tinggi dan error penyimpanan data. Kecepatan pemrosesan dan akses data sistem terpengaruh secara negatif, karena persentase tinggi pencarian kunci yang tidak ada adalah alasan utama latensi yang diamati. Ini adalah karakteristik runtime yang bergantung langsung pada sifat permintaan yang masuk.

Gejala

  • Sistem menunjukkan latensi runtime yang tinggi.
  • Error Datastore, yang menunjukkan masalah pada kecepatan pemrosesan dan akses data.

Pesan Error

Analisis file system.log menunjukkan adanya error terkait Cassandra yang berulang, khususnya terkait pengambilan data dan status kumpulan host. Pesan error utama yang diamati meliputi:
  • ERROR DATASTORE.CASSANDRA - AstyanaxCassandraClient.get() : Exception while fetching rowKey : [7ccd1062-6e05-4d12-aa86-5c7bf944682d, app_credentials, kms] from column family:{} in keyspace:{}
  • ERROR DATASTORE.CASSANDRA - AstyanaxCassandraClient.logHostPoolInCaseOfErrors() : Cassandra Host Pool under use - All Hosts: xx.xx.xx.102(xx.xx.xx.102):9160,xx.xx.xx.101(xx.xx.xx.101):9160,xx.xx.xx.103(xx.xx.xx.103):9160. Active Hosts: xx.xx.xx.101(xx.xx.xx.101):9160,xx.xx.xx.102(xx.xx.xx.102):9160

Diagnosis

Analisis file system.log message processor menunjukkan nilai L1MissL2Miss yang lebih tinggi dalam laporan metrik KVM 5 menit.

Contoh: CACHE.org__env__KVM-Example.statistics [hitCount=215 L1MissL2Miss=14120 hitRate=5 L1MissL2Hit=212 getCount=556]

Praktik terbaik

Untuk mengatasi masalah ini, sebaiknya tambahkan nilai dummy untuk kunci yang tidak ada di KVM. Pendekatan ini akan mengurangi jumlah panggilan ke Cassandra untuk kunci yang tidak ada, sehingga meningkatkan performa dan mengurangi latensi.

Bacaan lebih lanjut