DBAtlas · Veritabanı operasyon atlası

429 rejection, heap ve circuit breaker baskısını teşhis et

ElasticsearchPerformans

Komut

# Thread pool kuyruk ve rejection sayilari (429 kaynagi):
GET _cat/thread_pool/write,search,get?v&h=node_name,name,active,queue,rejected,completed,size,queue_size&s=rejected:desc
GET _cat/nodes?v&h=name,node.role,heap.percent,ram.percent,cpu,load_1m,disk.used_percent,master&s=heap.percent:desc
# Circuit breaker tetiklenmeleri ve parent breaker dolulugu:
GET _nodes/stats/breaker?filter_path=nodes.*.name,nodes.*.breakers.*.tripped,nodes.*.breakers.parent
GET _nodes/stats/jvm?filter_path=nodes.*.name,nodes.*.jvm.mem.heap_used_percent,nodes.*.jvm.gc.collectors.old
# Fielddata bellek kullanimi (alan bazinda):
GET _nodes/stats/indices/fielddata?fields=*&filter_path=nodes.*.indices.fielddata

Ne yapar?

Write/search thread pool'larında kuyruk dolduğu için reddedilen istekleri, düğüm bazında heap/CPU durumunu, circuit breaker tetiklenmelerini, old GC sayısını ve fielddata bellek kullanımını gösterir.

Ne zaman kullanılır?

Client'lar 429 Too Many Requests veya es_rejected_execution_exception aldığında, CircuitBreakingException ([parent] Data too large) görüldüğünde veya düğümler uzun GC duraksamaları yaşadığında.

Dikkat

rejected sayaçları düğüm açıldığından beri kümülatiftir; iki ölçüm arasındaki artışa bak. queue_size'ı büyütmek rejection'ı gizler ama heap'i ve gecikmeyi artırır; asıl çözüm bulk boyutunu/eşzamanlılığı azaltmak veya kapasite eklemektir. Heap sürekli %85 üzerindeyse ve old GC sık çalışıyorsa düğüm OOM'a yaklaşıyordur. text alanında fielddata açmak heap'i hızla tüketir.

DBAtlas'ta aç →

İlgili