Tüm Ürünler
Search
Belge Merkezi

Elasticsearch:Uneven distribution of hot data on nodes

Son Güncelleme:Oct 04, 2026

Bazı düğümler diğerlerinden çok daha fazla sıcak veri işlediğinde, bu düğümler yüksek yük altında çalışırken kümenin geri kalanı boşta kalır. Bu konuda, dengesizliğin nasıl teşhis edileceği ve parçaların manuel olarak taşınarak sorunun nasıl çözüleceği açıklanmaktadır.

Belirtiler

Aşağıdaki durumlardan herhangi birini fark ediyorsanız bu sorunla karşı karşıya olabilirsiniz:

  • Yükü yüksek olan bir düğüm, aynı niteliğe sahip (örneğin yalnızca birincil parçalar gibi) orantısız sayıda parça barındırıyor.

  • Yükü yüksek olan bir düğüm, diğer düğümlere kıyasla iş dizinleri için daha fazla parça barındırıyor.

Başlamadan önce

Manuel parça taşıma geçici bir çözümdür. Düğümler kümeden kısa süreliğine ayrılır ve parça yeniden tahsisi çalıştırılırsa dengesizlik tekrar ortaya çıkabilir. Parçaları taşımadan önce, Kümedeki dengelenmemiş yükler bölümündeki yönergeleri izleyerek kök nedeni giderin.

Parçalar zaten eşit şekilde dağıtılmış olsa bile küme hâlâ yüksek yük altındaysa bunun yerine küme yapılandırmasını yükseltin.

Parçaları manuel olarak taşıyın

1. Adım: Parça tahsisini devre dışı bırakın

Parça tahsisini geçici olarak devre dışı bırakmak için aşağıdaki komutu çalıştırın. Bu işlem, manuel taşıma sırasında Elasticsearch'in parçaları otomatik olarak taşımasını engeller.

PUT /_cluster/settings
{
  "transient" : {
     "cluster.routing.allocation.enable" : "none"
  }
}
Önemli

Taşıma işlemi tamamlandıktan sonra (4. adım) parça tahsisini yeniden etkinleştirin. Parça tahsisinin devre dışı bırakılması, küme kurtarma ve dayanıklılık süreçlerini etkileyebilir.

2. Adım: Parçayı taşıyın

Belirli bir parçayı bir düğümden diğerine taşımak için cluster reroute API'sini kullanın. Aşağıdaki örnekte, index_parkingorder_v1 dizininin 3 numaralı parçası 192.168.130.77 düğümünden 192.168.130.78 düğümüne taşınır.

POST /_cluster/reroute
{
 "commands" : [
  {
   "move" : {
    "index" : "index_parkingorder_v1",
    "shard" : 3,
    "from_node" : "192.168.130.77",
    "to_node" : "192.168.130.78"
   }
  }
 ]
}

Kısıtlama: Hedef düğümde, aynı sıra numarasına sahip aynı dizinin bir parçası zaten bulunmamalıdır. Örneğin, bir dizinin Çoğaltma Parçası 3 A Düğümünde bulunuyorsa, o dizinin Birincil Parçası 3 A Düğümüne taşınamaz.

Reroute API'sinin tam referansı için bkz. cluster-reroute.

3. Adım: Taşımayı doğrulayın

Mevcut parça tahsisini kontrol etmek için aşağıdaki komutu çalıştırın:

GET _cat/shards?v

Çıktı, her parçayı durumu ve atandığı düğümle birlikte listeler. Taşınan parçayı çıktıda bulun ve şunları doğrulayın:

  • Parça hedef düğümde görünüyor.

  • Parçanın durumu STARTED değerindedir.

Aşağıda örnek bir çıktı verilmiştir:

index        shard prirep state       docs    store   ip     node
qosgeoname   4     r      STARTED     2279054 623.8mb 10.6.xxx y3m8a_2
qosgeoname   4     p      STARTED     2279054 628.8mb 10.6.xxx Xwhpjaf
qosgeoname   3     r      RELOCATING  2279002 627.3mb 10.6.xxx 4Mh39az -> 10.6.xxx y3m8a_2tTdi_16TAy7B91w y3m8a_2
qosgeoname   3     p      STARTED     2279002 626.4mb 10.6.xxx Xwhpjaf
qosgeoname   1     r      STARTED     2278983 623.3mb 10.6.xxx I8SRFdj
qosgeoname   1     p      STARTED     2278983 621.6mb 10.6.xxx Qn3qSgY
qosgeoname   2     p      STARTED     2280694  623mb  10.6.xxx Qn3qSgY
qosgeoname   2     r      STARTED     2280694 622.7mb 10.6.xxx 4Mh39az
qosgeoname   0     p      STARTED     2278770         10.6.xxx I8SRFdj
qosgeoname   0     r      STARTED     2278770 624.3mb 10.6.xxx y3m8a_2

4. Adım: Parça tahsisini yeniden etkinleştirin

Taşımayı onayladıktan sonra parça tahsisini yeniden etkinleştirin:

PUT /_cluster/settings
{
 "transient" : {
  "cluster.routing.allocation.enable" : "all"
 }
}

Sonraki adımlar