Raspberry Pi Zeroに搭載したNginxの限界を試す【curlコマンド】
- 作成日時:
- 最終更新日時:
- Categories: インフラ
- Tags: Raspberry Pi Nginx システム管理 シェルスクリプト
Raspberry Pi Zeroの性能は無料プランのEC2やHerokuとほぼ同じ。Raspberry Pi Zeroの限界を知れば、ある程度EC2やHerokuの限界が予測できる。今回はウェブサーバーとして仕立てたRaspberry Pi Zeroにcurlコマンドでリクエストを大量送信し、サーバーダウンするまでのデータをここに記す。
なお、この行為は自分が管理していないサーバーで行うと、普通にDos攻撃になってしまうので、宛先に外部のサーバーを指定しないように十分注意する。
コマンド
while true;do curl -LI 192.168.11.XXX -o /dev/null -w '%{http_code}\n' -s && sleep 0.001; done
上記IPアドレスを書き換え、実行する。
並列化はさせていない。タブを多重起動して動かす。
結果
ターミナルのタブを多重起動して同時に上記コマンドを実行すると、タブ10個辺りで目に見えてわかるほどレスポンスが遅くなった。
SSHでログインして、topコマンドを実行すると、NginxのCPU使用率が25%に到達。
それと同時にリクエストを送信している側もCPU使用率が60%に。
送信を終えるとNginxのCPU使用率は数パーセントに戻る。
ログを見る
こんなふうにベットリとログが残る。
興味本位でも他人のサーバーへの攻撃はやめましょう。
『Nginxのログをawkコマンドを使用して調べる【crontabで特定の条件下のログを管理者へ報告】』でも対策できる。
結論
30個ほどタブを起動して多重リクエストを送信したが、それでも落ちることは無かった。とは言え、今回はインストールしてすぐのNginxを使用している。
ウェブアプリケーションフレームワークなどを使用している場合、別途処理が必要になるので、これ以上のCPU使用率になることが予測される。ありえないレベルのアクセスを検知したら早めに対処したほうが良いと思われる。