PerlでWeb API
アルバイトでISUCONのようなことをしていた。
課題
Web APIの負荷が高く、高速化したい。
元の構成
Apache + CGI(Perl)
データはファイルから読み出し
やったこと
Nginx + Starman + Redis
データをすべて事前処理してRedisへ格納、インメモリ化
Unix Domain Socketを使う
Server::Starterで無停止デプロイ
AutoScaling
結果
[#/min] | |
---|---|
Old | 600 |
New | 60000 |
abで何度も計測しながら、高速化できるところをいろいろ試していった。
ここまで速度を追求したのは初めてだったので、楽しかった。
AWS上で構築したので、既存のものから徐々に切り替えてもらった。
最終的にはすべて切り替わって、問題なく動いているみたい。