Amazon Kinesis編~Pythonを使ったパフォーマンス検証~

Pocket

こんにちは、中の人です。

今回は、WebサーバからKinesisに対してログをPutする時に、Pythonのthreadingを使うことでどの程度速度が早くなるかを試してみます。

環境: t2.micro Amazon Linux
プログラム:WhileでKinesisにPutしている部分に以下を追加しております。
※ プログラムの最初には
start = time.time()
でstartを定義しています。

最大thread数を引数で指定しております。

なお、tailで監視しているログは4000行/秒以上が増えているファイルが対象となります。

  CPU負荷 秒間リクエスト数
1スレッド 3% 19.93 req/sec
2スレッド 4% 46.89 req/sec
5スレッド 12% 118.182 req/sec
10スレッド 30% 216.473 req/sec
20スレッド 60% 517.703 req/sec
40スレッド 80% 744.333 req/sec
70スレッド 80% 749.077 req/sec
100スレッド 80% 740.099 req/sec

上記はt2.microのパフォーマンス検証結果です。
t2クレジットが無くなっていないにも係わらず、40スレッド以降は横ばいとなっております。

横ばいとなっている原因については調査して、分かり次第追記する予定です。
次回はインスタンスサイズを変更して同様のテストを行ってみます。

お楽しみに!