※ 本記事は、Kailas Jawadekarによる”Achieve best-in-class performance on Elasticsearch with Arm-based OCI Ampere A1 compute“を翻訳したものです。
2023年3月27日
このブログは、Ampereのsenior principal application engineerであるBhakti Hinduja氏と共同で書かれています。
現在、多くのクラウド・ワークフローでスケーラブルな検索エンジンが使用されています。Elasticsearchは、スケールアウト構成で使用される一般的な効率的な検索エンジンです。ArmベースのAmpere Altraプロセッサを搭載したOracle Cloud Infrastructure(OCI)のA1シェイプは、Elasticsearchなどのクラウド・ネイティブ・アプリケーションに優れたパフォーマンスとエネルギー効率を提供するように設計されています。オラクルのテストでは、OCI A1シェイプは、市場で同等のx86プロセッサに対してテストされた場合、優れたパフォーマンスと優れたエネルギー効率を実証しました。
Elasticsearchは、テキスト、数値、地理空間、構造化、非構造化など、あらゆるタイプのデータに対して一般的な分散型オープン検索および分析エンジンです。ElasticsearchはElasticによってApache Lucene上に構築されています。WalmartやT-Mobile、Adobe、Cisco、Facebookなどの企業は、コンテンツの簡単な検索から瞬時のライブチャットやシームレスなeコマース体験まで、さまざまなユースケースにElasticsearchを使用しています。aarch64の事前ビルド済バイナリに対する柔軟なサポートが追加され、Webサイトからダウンロードできます。
Elasticsearchの仕組みは? 地理空間データ、ログ、WebデータなどのRAWデータは、Elasticsearchに挿入されます。その後、データがフォーマットされ、エンリッチされ、最終的に取得に最適になるように索引付けされます。Elasticsearchで索引付けした後、データに対して複雑な問合せを実行して、特定のデータ・サマリーを取得できます。現在、膨大な量のデータがあることを考えると、Elasticsearchを使用した索引作成および検索を最適化することは、意味のあるデータにアクセスするために重要です。
このブログでは、Intel IceLakeおよびAMD Milanインスタンスに対して、Ampere AltraベースのOCIインスタンスでElasticsearchをテストします。
OCI Ampere A1でElasticSearchを実行する利点
ArmベースのAmpere Altraプロセッサを搭載したOCI A1シェイプは、Elasticsearchなどのクラウド・ネイティブ・アプリケーションに優れたパフォーマンスを提供するように設計されています。革新的なアーキテクチャ設計を使用し、一貫した周波数で動作し、アプリケーションをノイジー・ネイバーの問題により強くするシングルスレッド・コアを使用します。この設定により、負荷の増加に伴い、最小限の差異でワークロードを予測どおりに実行できます。
OCIは、AmpereのA1コンピュートをコア時間あたり0.01ドルの魅力的な価格で提供し、コアあたり1から80のOCPUと1から64GBのメモリーを柔軟にサイズ設定できます。Ampere Altraプロセッサには、次の利点があります。:
-
クラウド・ネイティブ: クラウドの顧客向けに設計されたAmpere Altraプロセッサは、Elasticsearchなどのクラウド・ネイティブ使用に最適です。
-
スケーラブル: 革新的なスケールアウト・アーキテクチャにより、Ampere Altraプロセッサは、優れたシングルスレッド・パフォーマンスと高いコア数を持ち、すべてのコアで一貫した頻度が組み合わせられ、ソケット・レベルでより高いパフォーマンスを実現します。
-
電力効率: 業界をリードするエネルギー効率により、Ampere Altraプロセッサは競争力のあるレベルのRAWパフォーマンスを実現しながら、競合他社よりはるかに低い電力消費を実現できます。
ベンチマーク構成
OCI Ampere A1のElasticsearchベンチマークでは、Elasticsearchのベンチマークのためのロード・ジェネレータとしてRallyを使用しました。Rallyは複数のトラックを提供します。これは、HTTPサーバー・ログ・データで構成される”http_logs”や、2015年の1年間にニューヨークで乗車したタクシーからなる “NYCタクシー”など、様々なデータセット・タイプで構成される様々なベンチマーク・シナリオです。各トラックは、さまざまなアプリケーション データ タイプに対応しています。適切なデータ型を選択すると、追加のみ、索引および追加などの課題を選択できます。
Elasticによって事前作成されたaarch64の最新のElasticsearchを使用することをお薦めします。テストにはElasticsearch 7.17で、OCI上のOracle Linux 7.9(カーネル5.4)を使用しました。テストごとに、同様のクライアント・マシンをElasticsearchのロード・ジェネレータとして使用しました。また、GNU Compiler Collection(GCC)10.2以降でコンパイルされた最新のJava開発キット(JDK)を使用することをお薦めします。これは、新しいコンパイラが、aarch64プロセッサのパフォーマンスを向上させることができる最適化されたコードの生成に大きな進歩をもたらしたためです。このテストでは、JDK 17を使用してGCC 10.2でビルドしました。
2つのシステム設定でテストを実行しました。まず、OCI上のAmpere Altra(OCI VM.Standard.A1)、AMD Milan(OCI VM.Standard.E4)、およびIntel Icelake(X9コンピュートに基づくOCI VM.Standard3)仮想マシン(VM)の単一ノードのElasticsearchサーバーを比較しました。次に、OCI上のAmpere Altra、AMD MilanおよびIntel Icelake VMの3ノードのElasticsearchクラスタを比較しました。単一ノードのテストでは、2つのVMサイズ(1つは2つの論理スレッド、もう1つは4つの論理スレッド)のテストを実行しました。
2つの論理スレッドを使用したテストでは、VMには8GB RAMがあり、そのうち4GBがJava仮想マシン(JVM)に割り当てられました。4つの論理スレッドを含むテストでは、VMには16GB RAMがあり、そのうち8GBがJVMに割り当てられました。すべてのテストのデータを格納するために、G1GCをガベージ・コレクタとして使用し、IOPSが75,000のブロック・ボリュームを使用しました。
次のコード・ブロックは、エスラリー・テスト・コマンドラインの例を示しています。:
esrally race --track=pmc --target-hosts=<private ip of instance on OCI>:9200 --pipeline=benchmark-only --challenge=append-no-conflicts-index-only
Elasticsearchに次のトラックを使用しました。各トラックには、サポートされる異なるデータセットまたはデータ型があります。
-
http_logs: HTTPサーバー・ログ・データが含まれます
-
PMC: PubMed Central(PMC)の学術論文で構成される全文ベンチマーク
-
Nested: StackOverflow Q&Aからのネストされたドキュメントが含まれます
-
Geonames: Geonames地理データベースからのポイント
-
nyc_taxis: 2015年のニューヨークのタクシー乗車状況
各テストは3回実行されました。次のレポートでは、結果の中央値が使用されます。:

図1: 2つの論理スレッドを持つ単一ノードのスループット

図2: 4つの論理スレッドを持つ単一ノードのスループット

図3: Elasticsearch 3ノードのクラスタ・スループット
ベンチマークの結論
図1では、AMD Milan VMsと比較してOCI Ampere A1 VMで最大43%高いスループット、2つの論理スレッドを持つシングルノードElasticsearchのIntel Icelakeと比較して30%高いスループットを観察しました。
図2では、AMD Milan VMと比較して、OCI Ampere A1 VMでは最大43%のスループットが、4つの論理スレッドを持つ単一ノードのElasticsearchではIntel Icelake VMと比較して25%高いことが確認されました。
また、3ノードのクラスタでElasticsearchをテストしました。図3では、Intel Icelake VMと比較して、OCI AmpereのA1 VMで最大58%のスループットを達成しました。
まとめ
OCI A1は、Elasticsearchのクラス最高のパフォーマンスを提供します。Oracle Cloud Infrastructureと業界別ペニー/コア価格を組み合せると、ElasticSearchワークロードに対して比類のない価格性能比の優位性を体験できます。
詳細は、次のリソースを参照してください。:
