Amazon OpenSearch Hizmeti için geri tepme ve giriş kontrolü ile iyileştirilmiş esneklik | Amazon Web Hizmetleri

Amazon OpenSearch Hizmeti için geri tepme ve giriş kontrolü ile iyileştirilmiş esneklik | Amazon Web Hizmetleri

Kaynak Düğüm: 2723961

Amazon Açık Arama Hizmeti AWS Cloud'da OpenSearch kümelerinin güvenliğini sağlamayı, devreye almayı ve çalıştırmayı kolaylaştıran yönetilen bir hizmettir. Geçen yıl tanıtmıştık Parça İndeksleme Karşı Basıncı ve giriş denetimiaksi takdirde yetersiz bellek gibi kararlılık riskleri oluşturacak ve bellek çekişmeleri, CPU doygunluğu ve GC ek yükü ve daha fazlası nedeniyle küme performansını etkileyecek istekleri seçerek reddetmek için küme kaynaklarını ve gelen trafiği izleyen.

Şimdi, kümelerin dayanıklılığını daha da artıran OpenSearch Hizmeti için Arama Geri Basıncı ve CPU tabanlı giriş kontrolünü sunmaktan heyecan duyuyoruz. Bu iyileştirmeler, tüm OpenSearch 1.3 veya sonraki sürümler için mevcuttur.

Arama Geri Basıncı

Karşı basınç, bir sistemin iş yükünün altında kalmasını önler. Bunu, çökmeleri ve veri kaybını önlemek, performansı artırmak ve sistemin tamamen arızalanmasını önlemek için trafik hızını kontrol ederek veya aşırı yükü atarak yapar.

Arama Geri Basıncı, bir düğüm baskı altındayken hareket halindeki kaynak yoğun arama isteklerini belirlemeye ve iptal etmeye yönelik bir mekanizmadır. Anormal derecede yüksek kaynak kullanımına sahip (karmaşık sorgular, yavaş sorgular, çok sayıda isabet veya ağır toplamalar gibi) arama iş yüklerine karşı etkilidir; aksi takdirde düğüm çökmelerine neden olabilir ve kümenin sağlığını etkileyebilir.

Arama Geri Basıncı, her görevin kaynak kullanımını izlemek için kullanımı kolay bir API sağlayan görev kaynağı izleme çerçevesi üzerine kurulmuştur. Arama Geri Basıncı, düğümün kaynak kullanımını periyodik olarak ölçen ve CPU süresi, yığın tahsisleri ve geçen süre gibi faktörlere dayalı olarak her hareket halindeki arama görevine bir iptal puanı atayan bir arka plan iş parçacığı kullanır. Daha yüksek bir iptal puanı, daha yoğun kaynak kullanan bir arama isteğine karşılık gelir. Düğümleri hızlı bir şekilde kurtarmak için arama istekleri, iptal puanlarının azalan sırasına göre iptal edilir, ancak israfı önlemek için iptal sayısı oran sınırlıdır.

Aşağıdaki diyagram, Geri Basınç Arama iş akışını göstermektedir.

Arama istekleri, iptal edildiğinde bir HTTP 429 "Çok Fazla İstek" durum kodu döndürür. Yalnızca bazı parçalar başarısız olursa ve kısmi sonuçlara izin verilirse OpenSearch kısmi sonuçlar verir. Aşağıdaki koda bakın:

{ "error": { "root_cause": [ { "type": "task_cancelled_exception", "reason": "cancelled task with reason: heap usage exceeded [403mb >= 77.6mb], elapsed time exceeded [1.7m >= 45s]" } ], "type": "search_phase_execution_exception", "reason": "SearchTask was cancelled", "phase": "fetch", "grouped": true, "failed_shards": [ { "shard": 0, "index": "nyc_taxis", "node": "9gB3PDp6Speu61KvOheDXA", "reason": { "type": "task_cancelled_exception", "reason": "cancelled task with reason: heap usage exceeded [403mb >= 77.6mb], elapsed time exceeded [1.7m >= 45s]" } } ], "caused_by": { "type": "task_cancelled_exception", "reason": "cancelled task with reason: heap usage exceeded [403mb >= 77.6mb], elapsed time exceeded [1.7m >= 45s]" } }, "status": 429
}

Arama Geri Basıncının İzlenmesi

Düğüm istatistikleri API'sini kullanarak ayrıntılı Arama Geri Basıncı durumunu izleyebilirsiniz:

curl -X GET "https://{endpoint}/_nodes/stats/search_backpressure"

Küme çapındaki iptal özetini kullanarak da görüntüleyebilirsiniz. Amazon Bulut İzleme. Aşağıdaki metrikler artık ES/Açık Arama Hizmeti ad alanı:

  • AramaGörevi İptal Edildi – Koordinatör düğüm iptallerinin sayısı
  • SearchShardTaskİptal Edildi – Veri düğümü iptallerinin sayısı

Aşağıdaki ekran görüntüsü, CloudWatch konsolunda bu ölçümleri izlemenin bir örneğini göstermektedir.

CPU tabanlı giriş kontrolü

Kabul kontrolü, hem organik artışlar hem de trafikteki ani yükselmeler için mevcut kapasitesine bağlı olarak bir düğüme yönelik istek sayısını proaktif olarak sınırlayan bir kapı tutma mekanizmasıdır.

JVM bellek basıncına ve istek boyutu eşiklerine ek olarak, artık gelenleri reddetmek için her bir düğümün hareketli ortalama CPU kullanımını da izliyor. _search ve _bulk istekler. Düğümlerin etkin noktalara, performans sorunlarına, istek zaman aşımlarına ve diğer art arda gelen hatalara yol açan çok fazla istekle boğulmasını önler. Aşırı istekler, reddedildikten sonra bir HTTP 429 "Çok Fazla İstek" durum kodu döndürür.

HTTP 429 hatalarını işleme

Bir düğüme aşırı trafik gönderirseniz HTTP 429 hataları alırsınız. Yetersiz küme kaynaklarını, yoğun kaynak kullanan arama isteklerini veya iş yükünde istenmeyen bir ani artışı gösterir.

Arama Tepkisi, reddedilme nedenini sağlar ve bu da yoğun kaynak kullanan arama isteklerinde ince ayar yapılmasına yardımcı olabilir. Trafik ani artışları için, üstel geri alma ve titreme ile istemci tarafında yeniden denemeler yapmanızı öneririz.

Aşırı ret hatalarını ayıklamak için şu sorun giderme kılavuzlarını da takip edebilirsiniz:

Sonuç

Arama Geri Basıncı, aşırı yükü atmaya yönelik reaktif bir mekanizma iken, kabul kontrolü, kapasitesinin ötesinde bir düğüme yönelik istek sayısını sınırlandıran proaktif bir mekanizmadır. Her ikisi de bir OpenSearch kümesinin genel dayanıklılığını artırmak için birlikte çalışır.

Arama Geri Basıncı şurada mevcuttur: Aramayı Aç, ve her zaman arıyoruz dış katkılar. başvurabilirsiniz RFC Başlamak için.


yazarlar hakkında

Ketan Verma Amazon OpenSearch Hizmeti üzerinde çalışan bir Kıdemli SDE'dir. Büyük ölçekli dağıtılmış sistemler oluşturma, performansı artırma ve karmaşık fikirleri basit soyutlamalarla basitleştirme konusunda tutkulu. İş dışında okumayı ve evde barista becerilerini geliştirmeyi seviyor.

Suresh NS Amazon OpenSearch Hizmeti üzerinde çalışan bir Kıdemli SDE'dir. Büyük ölçekli dağıtık sistemlerdeki sorunları çözme konusunda tutkulu.

Pritkumar Ladani Amazon OpenSearch Hizmeti üzerinde çalışan bir SDE-2'dir. Açık kaynaklı yazılım geliştirmeye katkıda bulunmayı seviyor ve dağıtık sistemler konusunda tutkulu. Amatör bir badminton oyuncusu ve trekking yapmaktan hoşlanıyor.

Buktaver Han Amazon OpenSearch Hizmeti üzerinde çalışan bir Baş Mühendistir. Dağıtılmış ve otonom sistemler oluşturmakla ilgileniyor. OpenSearch'ün bakımını yapan ve aktif bir katılımcısıdır.

Zaman Damgası:

Den fazla AWS Büyük Veri