Elasticsearchクラスタヌのサむズ蚭定ずRallyでのパフォヌマンスのテスト

この蚘事では、Elasticsearchのサむズを蚭定するための基本的なアプロヌチを理解し、ログずメトリックをロヌドする際のクラスタヌベンチマヌクの比范を瀺したす。そしお、その違いはそこで顕著です。これがElasticsearchクラスタヌのサむズを決定し、「䟝存する」こずを解読するのに圹立぀こずを願っおいたす 。







ある意味、この蚘事は、ハブレのサむゞングに関する蚘事の続きです 。しかし、実際の䟋がここに衚瀺されたので、䜕らかの継続性が必芁な堎合は、その蚘事から始めお、ここに戻っおください。すべおの詳现はカットの䞋にありたす。



この蚘事は、ElasticブログのログずメトリックのElasticsearchクラスタヌのベンチマヌクずサむズ蚭定に基づいおい たす。少し倉曎し、クラりドベヌスのElasticで䟋を削陀したした。



Elasticsearchクラスタヌハヌドりェアリ゜ヌス



Elasticsearchクラスタヌのパフォヌマンスは、䞻にクラスタヌの䜿甚方法ずその䞋で実行されるものハヌドりェアの意味でに䟝存したす。ハヌドりェアの特城は次のずおりです。



ボヌルト



ベンダヌは、可胜な限りSSDを䜿甚するこずを掚奚しおいたす。しかし、明らかに、これはどこにでも圓おはたるずは限らないため、ホットりォヌムコヌルドアヌキテクチャずむンデックスラむフサむクル管理ILMを利甚できたす。



Elasticsearchは冗長ストレヌゞを必芁ずしたせんRAID 1/5/10なしで実行できたす。ログたたはメトリックストレヌゞのシナリオには通垞、フォヌルトトレランスを最小限に抑えるために少なくずも1぀のレプリカがありたす。



蚘憶



サヌバヌ䞊のメモリは、



JVMヒヌプに分割されたす 。クラスタ、むンデックス、セグメント、セグメント、およびドキュメントフィヌルドデヌタに関するメタデヌタを栌玍したす。理想的には、これに䜿甚可胜なRAMの50を割り圓おる必芁がありたす。



OSキャッシュ。Elasticsearchは、残りの䜿甚可胜なメモリを䜿甚しおデヌタをキャッシュしたす。これにより、党文怜玢、ドキュメント倀の集蚈、および䞊べ替え䞭のディスク読み取りが防止され、パフォヌマンスが倧幅に向䞊したす。たた、RAMの内容をディスクにフラッシュしおから読み取るこずを避けるために、スワップスワップファむルを無効にするこずを忘れないでくださいこれは遅いです。



CPU



Elasticsearchノヌドにはいわゆるものがありたす。利甚可胜なコンピュヌティングリ゜ヌスを䜿甚するスレッドプヌルずスレッドキュヌ。CPUコアの数ずパフォヌマンスによっお、Elasticsearchのデヌタ操䜜の平均速床ずピヌクスルヌプットが決たりたす。ほずんどの堎合、これらは8〜16コアです。



通信網



ネットワヌクパフォヌマンス-垯域幅ずレむテンシヌの䞡方が、Elasticsearchノヌド間の通信ずElasticsearchクラスタヌ間の通信に倧きな圱響を䞎える可胜性がありたす。デフォルトでは、ノヌドの可甚性チェックは毎秒実行され、ノヌドが30秒以内にpingを実行しない堎合、ノヌドは䜿甚䞍可ずしおマヌクされ、クラスタヌからシャットダりンされるこずに泚意しおください。



ストレヌゞボリュヌムによるElasticsearchクラスタヌのサむズ蚭定



通垞、ログずメトリックを保存するには倧量のディスクスペヌスが必芁になるため、このデヌタの量を䜿甚しお、Elasticsearchクラスタヌのサむズを最初に決定する䟡倀がありたす。以䞋は、クラスタヌで管理する必芁のあるデヌタ構造を理解するためのいく぀かの質問です。



  • 1日あたりどのくらいの生デヌタGBをむンデックスに登録したすか
  • デヌタは䜕日保持したすか
  • ホットゟヌンには䜕日ありたすか
  • りォヌムゟヌンには䜕日ありたすか
  • レプリカはいく぀䜿甚されたすか


5たたは10を䞊に眮き、合蚈ディスク容量の15が垞に圚庫に残るようにするこずをお勧めしたす。それでは、このケヌスを数えおみたしょう。



合蚈デヌタサむズGB = 1日あたりの生デヌタ数GB*ストレヌゞの日数*レプリカの数+1。



合蚈ストレヌゞGB =合蚈デヌタGB*1 +0.15ストレヌゞスペヌス+0.1远加ストレヌゞ。



デヌタノヌドの総数= OKRVVERH合蚈デヌタサむズGB/デヌタノヌドあたりのメモリサむズ/メモリデヌタ比。倧芏暡なむンストヌルの堎合は、もう1぀のノヌドをストックしおおくこずをお勧めしたす。



Elasticは、次の比率のメモリを掚奚しおいたす。さたざたなタむプのノヌドのデヌタホット→130メモリ1ギガバむトあたり30 GBのディスク容量、りォヌム→1160、コヌルド→1500。OKRVVERKH-最も近い敎数にサラりンドしたす。



小クラスタヌ蚈算䟋



毎日玄1GBのデヌタが到着し、9か月間保存する必芁があるず仮定したす。



合蚈デヌタGB = 1 GB x9か月x 30日x 2 = 540 GB



合蚈ストレヌゞGB = 540 GB x1 + 0.15 + 0.1= 675GB



デヌタノヌドの合蚈数= 675 GB / 8 GB RAM / 30 = 3ノヌド。



倧芏暡なクラスタヌの蚈算䟋



1日あたり100GBを取埗し、このデヌタをホットゟヌンで30日間、りォヌムゟヌンで12か月間保存したす。ノヌドごずに64GBのメモリがあり、そのうち30 GBがJVMヒヌプに割り圓おられ、残りはOSキャッシュに割り圓おられたす。メモリの掚奚比率ホットゟヌンのデヌタは暖かいゟヌンのため、午前1時30分である- 1160



あなたが䞀日ず30日のためにこのデヌタを保存する必芁性に぀き100ギガバむトを取埗する堎合、我々が埗るだから、



の合蚈額をホットゟヌンのデヌタGB =100 GBx30日* 2= 6000 GB



合蚈ホットゟヌンストレヌゞGB = 6000 GB x1 + 0.15 + 0.1 = 7500GB



合蚈ホットゟヌンデヌタノヌド= OKRVUPH 7500/64/30+ 1 = 5ノヌド



りォヌムゟヌンの合蚈デヌタGB=100 GBx365日* 2= 73,000 GB



りォヌムゟヌンの合蚈ストレヌゞGB = 73,000 GB x1 + 0.15 + 0.1= 91,250GB



りォヌムゟヌンのデヌタノヌドの合蚈数= OKRVVERKH91 250 / 64/160+ 1 = 10ノット



したがっお、ホットゟヌンで5ノット、りォヌムフルヌツで10ノットが埗られたした。コヌルドゟヌンの堎合も同様の蚈算ですが、メモリ比率デヌタはすでに1500になっおいたす。



パフォヌマンステスト



クラスタヌのサむズが決定されたら、数孊が実際に機胜するこずを確認する必芁がありたす。



このテストでは、Elasticsearchの゚ンゞニアが䜿甚するのず同じツヌルであるRallyを䜿甚したす 。展開ず実行が簡単で、完党にカスタマむズできるため、耇数のシナリオトラックをテストできたす。



結果の分析を容易にするために、テストはむンデックス䜜成ず怜玢ク゚リの2぀のセクションに分かれおいたす。テストでは、Metricbeatトラックず Webサヌバヌログのデヌタを䜿甚したす 。



むンデックス䜜成



テストは次の質問に答えたす。



  • クラスタヌのむンデックス䜜成の最倧スルヌプットはどれくらいですか
  • 1日にどのくらいのデヌタをむンデックスに登録できたすか
  • クラスタヌは適切なサむズよりも倧きいですか、それずも小さいですか


このテストでは、ノヌドごずに次の構成を持぀3ノヌドクラスタヌを䜿甚したす。



  • 8 vCPU;
  • HDD;
  • 32GB / 16ヒヌプ。


むンデックステスト1テストに



䜿甚されるデヌタセットは、次の特性を持぀Metricbeatデヌタです。



  • 1,079,600ドキュメント;
  • デヌタ量1.2 GB;
  • 平均ドキュメントサむズ1.17KB。


次に、最適なパケットサむズず最適なスレッド数を決定するためのいく぀かのテストがありたす。



それはすべお、最適なパッケヌゞサむズを芋぀けるために1぀のRallyクラむアントから始たりたす。最初に100個のドキュメントがロヌドされ、その埌の起動でその数が2倍になりたす。その結果、12,000ドキュメントの最適なバッチサむズ玄13.7 MBになりたす。パケットサむズがさらに倧きくなるず、パフォヌマンスが䜎䞋し始めたす。



画像



次に、同様の方法を䜿甚するず、16が1秒あたり62,000のむンデックス付きむベントを達成するための最適なクラむアント数です。



画像



合蚈するず、クラスタヌはパフォヌマンスを犠牲にするこずなく、1秒あたり最倧62,000のむベントを凊理できたす。この数を増やすには、新しいノヌドを远加する必芁がありたす。



以䞋は、12,000むベントのパケットを䜿甚した同じテストですが、比范のために、垯域幅デヌタは1ノヌド、2ノヌド、および3ノヌドに぀いお瀺されおいたす。



画像



テスト環境の堎合、最倧むンデックススルヌプットは次のようになりたす。



  • 1぀のノヌドず1぀のシャヌドを䜿甚しお、1秒あたり22,000のむベントにむンデックスが付けられたした。
  • 2぀のノヌドず2぀のシャヌドを䜿甚しお、1秒あたり43,000のむベントにむンデックスが付けられたした。
  • 3぀のノヌドず3぀のシャヌドを䜿甚しお、1秒あたり62,000のむベントにむンデックスが付けられたした。


远加のむンデックス芁求はキュヌに入れられ、いっぱいになるず、ノヌドはむンデックス芁求を拒吊するこずで応答したす。



デヌタセットはクラスタヌのパフォヌマンスに圱響を䞎えるため、独自のデヌタを䜿甚しおRallyトラックを実行するこずが重芁であるこずに泚意しおください。



むンデックス䜜成テスト2



次のステップでは、次の構成のHTTPサヌバヌログデヌタトラックが䜿甚されたす。



  • 247 249096ドキュメント;
  • デヌタ量31.1 GB;
  • 平均ドキュメントサむズ0.8KB。


最適なパッケヌゞサむズは16,000ドキュメントです。



画像



クラむアントの最適な数は32です。



画像



したがっお、Elasticsearchの最倧むンデックススルヌプットは1秒あたり220,000むベントです。



探す



怜玢スルヌプットは、20クラむアントず1秒あたり1000回の操䜜に基づいお掚定されたす。怜玢のために3぀のテストが実行されたす。



怜玢テスト1



䞀連のク゚リのサヌビス時間たたは90パヌセンタむルを比范したす。



Metricbeatからのデヌタセット



  • 自動間隔を䜿甚した集蚈日付ヒストグラムauto-date-historgram;
  • 自動間隔のタむムゟヌンauto-date-histogram-with-tzを䜿甚した集蚈日付ヒストグラム。
  • 集蚈された日付ヒストグラム日付ヒストグラム;
  • タむムゟヌン付きの集蚈日付ヒストグラムdate-histogram-with-tz。


auto-date-histogram-with-tzリク゚ストのサヌビス時間がクラスタヌ内で最も長いこずがわかりたす。



画像



HTTPサヌバヌログからのデヌタセット



  • デフォルト;
  • 期間;
  • 範囲;
  • Hourly_agg;
  • Desc_sort_timestamp;
  • Asc_sort_timestamp。


リク゚ストdesc_sort_timestampずdesc_sort_timestampの耐甚幎数が長いこずがわかりたす。



画像



怜玢テスト2



次に、䞊列ク゚リを芋おみたしょう。ク゚リを䞊行しお実行するず、90パヌセンタむルのサヌビス時間がどのように増加するかを芋おみたしょう。



画像



怜玢テスト3



䞊列むンデックスが存圚する堎合の怜玢ク゚リのむンデックス速床ずサヌビス時間を考慮したす。



䞊列のむンデックス䜜成ず怜玢タスクを実行しお、むンデックス䜜成の速床ずク゚リサヌビス時間を確認したしょう。



画像



むンデックス䜜成操䜜ず䞊行しお怜玢を実行するず、90パヌセンタむルク゚リサヌビス時間がどのように増加したかを芋おみたしょう。



画像



合蚈で、むンデックス䜜成甚に32のクラむアント、怜玢甚に20のナヌザヌがいたす。



  • むンデックス䜜成のスルヌプットは1秒あたり173,000むベントであり、これは以前の実隓で埗られた220,000未満です。
  • 怜玢垯域幅は1秒あたり1000むベントです。


Rallyは匷力なベンチマヌクツヌルですが、将来的に本番環境にも投入されるデヌタでのみ䜿甚する必芁がありたす。






いく぀かの広告

お客様の特定のニヌズに合わせお、ElasticStackの操䜜の基本に関するトレヌニングコヌスを開発したした 。リク゚ストに応じお詳现なトレヌニングプログラム。


ロシアのElasticDayず3月3日の午前10時から午埌1時たでオンラむンで開催されるCIS2021 に登録するこずをお勧めしたす 。





他の蚘事を読む








Elasticsearchむンストヌルの管理およびサポヌトサヌビスに関心がある堎合は、特別なペヌゞのフィヌドバックフォヌムにリク゚ストを残すこずができ たす。 Facebookグルヌプず Youtubeチャンネルに



登録しおください 。



All Articles