Apache Kafka®のスループットに対するAivenのベンチマーク【2022 UPDATE

<font color="Grey">*[Benchmarking Aiven for Apache Kafka® throughput [2022 UPDATE]](https://aiven.io/blog/benchmarking-kafka-write-throughput-performance-2022-update)の翻訳です。*</font>

2022年11月10日

# Apache Kafka®のスループットに対するAivenのベンチマーク[2022 UPDATE

Aiven for Apache Kafka®のスループット性能を定期的に測定しています。この投稿で最新のテスト結果をご確認ください。

知識は力です。今回もAivenプラットフォーム上でApache Kafka®を測定しましたので、お客様のアプリケーションのワークロードに合ったプランを見つけることができます。


[2017年](https://aiven.io/blog/benchmarking-kafka-write-throughput)と[2019年](https://aiven.io/blog/benchmarking-kafka-write-throughput-performance-2019-update)では、Aivenプラットフォーム上のApache Kafkaの書き込みスループット性能を測定しました。AWS、Azure、GCPの3大パブリッククラウドプロバイダーは、この3年間でコンピュートオファリングを更新したため、ベンチマーク結果を更新する時が来たと判断しました。私たちの目標は、Aivenの標準的なプランと構成のパフォーマンスを測定し、ワークロードに最適なプランを選択できるようにすることです。



> ![](/build/_assets/shape-quote-WGSAHX4E.svg)
> 免責事項：Aivenのサービスは地域に依存し、常に進化しています。このベンチマークを異なる地域または異なる年に実行すると、異なる結果が出る可能性があります。最新の情報についてはAivenにお問い合わせください。
>
>
>


## ベンチマーク設定


3つのプランをテストした：Business-4、Business-8、Premium-6x-8の3つのプランを3つのクラウドプロバイダーでテストした：AWS（us-east-1）、GCP（us-east1）、Azure（eastus2）。すべてのテストにおいて、デフォルト設定を使用した（ネタバレ：これらのプランをチューニングする必要はなく、書き込みスループットはクラウドプロバイダーの限界に達した）。


持続可能な**書き込みスループットを測定した。ベンチマークを36～48時間実行し続け、直近24時間の平均スループットを測定した。こうすることで、最近作成されたクラスターに現れるが、長期的にはブローカーの過負荷を引き起こす値を除外している。


書き込み操作には、ブローカー数に応じてパーティション数を3または6に設定した単一のトピックを使用した。レプリケーション係数は3に設定した。テスト・クラスターは通常のAivenサービスであったため、パーティションとレプリカはアベイラビリティ・ゾーンに分散されていた。


メッセージは、C/C++ライブラリlibrdkafkaをベースにした[rdkafka_performance tool](https://github.com/edenhill/librdkafka/blob/master/examples/rdkafka_performance.c)で生成した。各メッセージのサイズは512バイトである。各'produce'リクエストは圧縮を使用せず、10,000メッセージのバッチを送信した。クライアント接続はTLSで行われ、テスト期間中接続されたままであった。


テスト時には、Java 17上で動作するKafka 3.2を使用した。


## Aiven for Apache Kafka：ビジネス-4計画


まず、Business-4プランのパフォーマンスをテストした。このプランには3つのブローカーがあり、それぞれインスタンスあたり1～2CPU（クラウドによって異なる）と4GB RAMを搭載している。


ブローカーから報告されたメトリックBytesInPerSecを測定した。クライアントからの持続可能な最大バイトインレートは以下の通りです：


* AWS：37.0 MB/s
* GCP: 30.5 MB/s
* Azure32.7 MB/s


![image](https://cdn.sanity.io/images/sczeoy4w/production/4ef28fee4418d2e67a8f1fbfcc8e7a9be681ef31-2020x1118.png?q=80&fit=min&auto=format&dpr=1.5)


また、MessagesInPerSecという指標も測定した。 持続可能な最大メッセージレートは以下の通りである：


* AWS: 72,200メッセージ/秒
* GCP: 56,600メッセージ/秒
* アジュール63,900メッセージ/秒


![image](https://cdn.sanity.io/images/sczeoy4w/production/103b4fb2df77180b0dc14ecc6b4257860718cf06-2016x1114.png?q=80&fit=min&auto=format&dpr=1.5)


## Aiven for Apache Kafka：ビジネス8計画


次に、ブローカーのサイズを増やしました。Business-8プランをテストしました。これはCPUとRAMの量が2倍で、1ブローカーあたり2CPUと8GB RAMです。ここでも、ブローカーから報告されたBytesInPerSecを測定しました。クライアントからの持続可能な最大バイトインレートは以下の通りである：


* AWS: 62.7 MB/s
* GCP: 81.8 MB/s
* Azure: 81.0 MB/s81.0 MB/s


![image](https://cdn.sanity.io/images/sczeoy4w/production/4fa2b718701c6b5a93ba5c4010c5a3d4f72ff878-2020x1118.png?q=80&fit=min&auto=format&dpr=1.5)


また、MessagesInPerSecという指標も測定した。 持続可能な最大メッセージレートは以下の通りである：


* AWS: 120,000メッセージ/秒
* GCP: 156,000メッセージ/秒
* アジュール155,000メッセージ/秒


![image](https://cdn.sanity.io/images/sczeoy4w/production/4008bd6ce920ba0acd8ad6774726bb334a8622b0-2018x1118.png?q=80&fit=min&auto=format&dpr=1.5)


## Aiven for Apache Kafka：プレミアム-6x-8プラン


最後に、クラスタ内のブローカー数を2倍に増やした。クラスタ内の各ブローカーをパーティションのリーダーにするため、トピックパーティション数を3から6に増やした。レプリケーションを3のままにしたのは、高い値に設定しても3つのアベイラビリティゾーンを持つリージョンでは耐久性が向上しないからです。ブローカーから報告されたメトリックBytesInPerSecを測定した。クライアントからの持続可能な最大バイトインレートは以下の通りである：


* AWS: 123 MB/s
* GCP: 147 MB/s
* アジュール137 MB/s


![image](https://cdn.sanity.io/images/sczeoy4w/production/70f3e97b1b2121946663715628ddc2f6b5314f64-2018x1118.png?q=80&fit=min&auto=format&dpr=1.5)


また、MessagesInPerSecという指標も測定した。 持続可能な最大メッセージレートは以下の通りである：


* AWS: 235000メッセージ/秒
* GCP: 280000メッセージ/秒
* アジュール262000メッセージ/秒


![image](https://cdn.sanity.io/images/sczeoy4w/production/41e3357038e7c5a3f7586fe077bf37310879e2e5-2018x1118.png?q=80&fit=min&auto=format&dpr=1.5)


## 月間スループットコスト


注目すべきは、プランをアップグレードしてもスループットコストはほとんど変わらないということです。プランをアップグレードすると、プランの料金に比例して容量が増えます。Aivenのプランには隠れたコストはありません。


これを確認するために、異なるプランの1ヶ月あたりのMB/秒あたりのコストを計算してみましょう。以下は、各クラウドの各プランの結果を示した表である。プランの価格を、持続可能な最大スループットで割っています。スループットはプランに比例して増加するため、コストはほとんど変わりません。




| | AWS us-east-1｜GCP us-east1｜Azure eastus2｜｜ です。
| --- | --- | --- | --- | --- |
| ビジネス4｜スループットMB/s｜37｜30.5｜32.7
| 月額コスト｜660.00ドル｜500.00ドル｜550.00ドル
| 月あたりのMB/sあたり｜18ドル｜16ドル｜17ドル｜｜｜｜｜｜。
| | | | | |
| ビジネス-8｜スループットMB/s｜62.7｜81.8｜81
| 月額費用｜1,300.00ドル｜1,000.00ドル｜1,100.00ドル
| 月間1MB/sあたり｜21ドル｜12ドル｜14ドル｜。
| | | | | |


| 1MB/秒あたりの月額費用｜20ドル｜13ドル｜15ドル



## まとめ


クラウドプロバイダーがディスクIOPSに制限を設けていることはよく知られている。私たちの広範なテストを通じて、Aiven for Apache Kafkaが24時間以内にIOPS制限にヒットしないように、持続可能な最大書き込みスループットを見つけました。


本番ワークロードでは、持続可能な最大書き込みスループットの70％、またはKafkaブローカーがディスクから読み込む場合はそれ以下で実行することをお勧めします。残りの容量は、パーティションの再割り当てや、クラスタのリバランシング時の新しいノードへのパーティションのレプリケーションに使用されます。



Aivenと私たちのサービスに関する最新ニュースや、オープンソースに関する様々な情報を入手するには、[月刊ニュースレターを購読](https://aiven.io/newsletter)してください！Aivenに関する日々のニュースは、[LinkedIn](https://www.linkedin.com/company/aiven/)と[Twitter](https://twitter.com/aiven_io)のフィードでご覧いただけます。


サービスのアップデート情報を知りたい方は、[変更履歴](https://aiven.io/changelog)をご覧ください。


マネージド・データ・プラットフォームをお探しですか？<https://console.aiven.io/signup>から無料トライアルにお申し込みください！