※ 本記事は、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回実行されました。次のレポートでは、結果の中央値が使用されます。:

A bar graph depicting the throughput of a single node with two logical threads
図1: 2つの論理スレッドを持つ単一ノードのスループット

A bar graph depicting the throughput of a single node with four logical threads
図2: 4つの論理スレッドを持つ単一ノードのスループット

A bar graph depicting the throughput of an Elasticsearch three-node cluster.
図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ワークロードに対して比類のない価格性能比の優位性を体験できます。

詳細は、次のリソースを参照してください。: