Antipatern: Olmayan KVM'lerin gecikme üzerindeki etkisi

Apigee Edge belgelerini görüntülüyorsunuz.
Apigee X belgelerine gidin.
info

Anahtar/değer eşlemesi (KVM) politikaları, sistemdeki yapılandırmaları ve dinamik değerleri yönetmede temel bir bileşendir. Ancak bu KVM'lerde var olmayan anahtarların bulunması ve aranması performansı önemli ölçüde etkileyebilir ve gecikmelerin artmasına neden olabilir.

Antipattern

Bir KVM politikası, anahtar/değer eşlemesinde bulunmayan bir anahtarın değerini almaya çalıştığında Cassandra veritabanına ek çağrılar yapılır. Bu durum, özellikle mevcut olmayan anahtarlar için arka uç veritabanıyla iletişimi artırarak daha fazla kaynak ve zaman tüketir. Bu da genel istek gecikmesini artırır.

Etki

Bu anti-desenin temel etkisi, çalışma zamanı gecikmelerinin ve veri deposu hatalarının artmasıdır. Mevcut olmayan anahtar aramalarının yüksek yüzdesi, gözlemlenen gecikmelerin temel nedeni olduğundan sistemin işlem hızı ve veri erişimi olumsuz etkilenir. Bu, çalışma zamanı özelliğidir ve doğrudan gelen isteklerin niteliğine bağlıdır.

Belirtiler

  • Sistem, yüksek çalışma zamanı gecikmeleri gösteriyor.
  • Veri deposu hataları (işleme hızı ve veri erişimiyle ilgili sorunları gösterir).

Hata mesajları

system.log dosyasının analizi, tekrar eden Cassandra ile ilgili hataların olduğunu gösteriyor. Bu hatalar özellikle veri alma ve ana makine havuzu durumuyla ilgili. Gözlemlenen önemli hata mesajları:
  • 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

Teşhis

İleti işlemcisi system.log dosyasının analizi, 5 dakikalık KVM metrik raporlarında yüksek L1MissL2Miss değerleri olduğunu gösteriyor.

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

En iyi uygulama

Bu sorunu azaltmak için KVM'lerde mevcut olmayan anahtarlar için sahte değerler eklemenizi öneririz. Bu yaklaşım, mevcut olmayan anahtarlar için Cassandra'ya yapılan çağrıların sayısını azaltarak performansı artırır ve gecikmeyi azaltır.

Daha fazla bilgi