ディレクトリ
1 、および環境試験の目的の 1
2 、試験範囲と方法 2
2.1 試験の範囲は、説明 2
2.2 、設計性能テストシナリオ 2
2.2.1 、カフカメッセージプロデューサストレステスト 2
2.2.2は、カフカが住んでいた消費者向けニュースのストレステスト 2を
2.3 試験方法の簡単な説明 2
2.3.1 試験の目的 2
2.3.2 試験方法 2
3 、試験結果 4
3.1 試験結果があることを示す 4
3.2 試験結果 4
3.2.1 書き込みMQのメッセージ 4
3.2.2 消費者のMQ メッセージング 5
4 、(書き込みから)分析の結果 6
5 、と環境を最適化する 7
1 、および環境試験の目的
ためカフカのに基づいて、ストレステストのメッセージ処理性能の生産者と消費者10W 、50W 、100W 、500Wは、メッセージ処理レベルの結果、評価分析カフカかパフォーマンス指標のを。
103.249.52.4:10027
ハードウェア:いくつかのコア数 G 動作環境ウィンドウ
2 、試験範囲と方法
2.1 テスト範囲説明
コマンドによってカフカ処理結果に応じて評価ニュースメッセージの生産と消費を開始カフカはニーズ処理プロジェクトを満たしています。
2.2 、パフォーマンステストシナリオの設計
2.2.1は、カフカが住んでいたプロデューサーストレステストのニュースを
テストシナリオ |
消息数 |
秒あたりのメッセージ数を書きます |
各レコードサイズ |
カフカのメッセージ筆記試験 |
10W |
2000 Tiao |
1000年 |
50W |
5000 Tiao |
1000年 |
|
100W |
5000 Tiao |
1000年 |
|
500W |
5000 Tiao |
1000年 |
2.2.2は、カフカが住んでいた消費者ニュースのストレステストを
テストシナリオ |
メッセージの消費者の数 |
カフカのニュース消費テスト |
10W |
50W |
|
100W |
|
500W |
2.3 試験方法の簡単な説明
2.3.1 テストの目的
確認しカフカのメッセージメッセージを生成し、消費する能力を。
2.3.2 試験方法
サーバー上で使用カフカシミュレート、独自のテストスクリプト10W 、50W 、100W 、500W の書き込み要求メッセージ、ビューのカフカのメッセージの段階の異なる数、生産を含む第2のメッセージ、スループット、メッセージを処理するための処理能力を時間を遅らせます。メインビューカフカ異なる大きさのメッセージの能力をコーミング。
リットル ストレステストコマンド
テストシナリオ |
圧力測定メッセージ番号 |
|
メッセージを書きます |
10W |
./kafka-producer-perf-test.sh --topic test_perf --numレコード100000 --recordサイズ1000〜2000 --throughput --producer-小道具bootstrap.servers = localhostを:9092 |
50W |
./kafka-producer-perf-test.sh --topic test_perf --numレコード500000 --recordサイズ2000 5000 --throughput --producer-小道具bootstrap.servers = localhostを:9092 |
|
100W |
./kafka-producer-perf-test.sh --topic test_perf --numレコード1000000 --recordサイズ2000 --throughput 5000 --producer-小道具bootstrap.servers = localhostを:9092 |
|
500W |
./kafka-producer-perf-test.sh --topic test_perf --numレコード5000 --producer-小道具bootstrap.servers = localhostを--throughput 5000000 --recordサイズ2000:9092 |
|
消費者のニュース |
10W |
./kafka-consumer-perf-test.sh --zookeeperはlocalhost:2181 --topic test_perf --fetchサイズ1048576 100000 --messages --threads 1 |
50W |
./kafka-consumer-perf-test.sh --zookeeperはlocalhost:2181 --topic test_perf --fetchサイズ1048576 500000 --messages --threads 1 |
|
100W |
./kafka-consumer-perf-test.sh --zookeeperはlocalhost:2181 --topic test_perf --fetchサイズ1048576 --messages 1000000 --threads 1 |
|
500W |
./kafka-consumer-perf-test.sh --zookeeperはlocalhost:2181 --topic test_perf --fetchサイズ1048576 --messages 5000000 --threads 1 |
3、测试结果
3.1、测试结果说明
对单机kafka服务器进行压力测试,关注kafka消息写入的延迟时间是否满足要求,验证kafka消息的处理能力。
3.2、测试结果
3.2.1、写入MQ消息
测试项 |
生产消息总数(单位:W) |
设置单个消息大小(单位字节) |
设置每秒发送信息数 |
实际写入的消息数(秒) |
%95的消息延迟(毫秒) |
写入MQ消息 |
10 |
1000 |
2000 |
|
|
50 |
1000 |
5000 |
|
|
|
100 |
1000 |
5000 |
|
|
|
500 |
1000 |
5000 |
|
|
l 压力测试结果截图
1、写入10W消息压测
2、写入50W消息压测
3、写入100W消息压测
4、写入500W消息压测
l kafka-producer-perf-test.sh 脚本命令的参数解析
(以100w写入消息为例):
--topic topic |
主题,本例为test_perf |
--num-records |
总共发送的消息数,本例为1000000 |
--record-size |
每个记录的字节数,本例为1000 |
--throughput |
每秒发送的记录数,本例为5000 |
--producer-props bootstrap.servers=localhost:9092 kafka服务
MQ消息写入测试结果解析:
本例中写入100w条MQ消息为例,每秒平均向kafka写入了4.77MB的数据,大概是4999.875条消息/秒,每次写入的平均延迟为1毫秒,最大的延迟为647毫秒,1ms内占99%。
3.2.2、消费MQ消息
测试项 |
消费消息总数(单位:W) |
共消费数据(单位:M) |
每秒消费数据(单位:M) |
每秒消费的消息数 |
消费所消耗的时间(秒) |
消费MQ消息 |
10 |
|
|
|
|
50 |
|
|
|
|
|
100 |
|
|
|
|
|
500 |
|
|
|
|
l 压力测试结果截图
1、消耗10W消息压测
2、消耗50W消息压测
3、消耗100W消息压测
4、消耗500W消息压测
l kafka-consumer-perf-test.sh 脚本命令的参数为:
(以100w写入消息为例):
--zookeeper |
指定zookeeper的链接信息,本例为localhost:2181; |
--topic |
主题,本例为test_perf,即4.2.1中写入的消息; |
--fetch-size |
指定每次取的数据的大小,本例为1048576,也就是1M |
--messages |
总共要消费的消息个数,本例为1000000,100w |
以本例中消费100w条MQ消息为例总共消费了953.66M的数据,每秒消费数据大小为177.19M,总共消费了10000004条消息,每秒消费185804.53条消息。
4、结果分析(自写)
根据4.2.测试结果,可以看出在单台服务器上,写入MQ消息设置5000条/秒时,消息写入及时,95%的消息延迟时间小于等于1ms,在可接受范围内;Kafka消费MQ消息时,1000W待处理消息的处理能力在每秒20w条以上,处理结果理想。
根据Kafka处理10w、100w和1000w级的消息时的处理能力,可以评估出Kafka集群服务,是否有能力处理上亿级别的消息。
本次测试是在正式环境集群服务中的单台服务器上进行,基本不需要考虑网络带宽的影响。所以单台服务器的测试结果,对评估集群服务是否满足上线后实际应用的需求,很有参考价值。