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"
}
}
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
STARTEDdeğ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
Kümedeki dengelenmemiş yükler — Dengesizliğin tekrar etmesini önlemek için parça tahsisini optimize edin.
Küme yapılandırmasını yükseltin — Yeniden dengeleme sonrası yük hâlâ yüksekse ölçeklendirme yapın.