LoginSignup
12
4

More than 5 years have passed since last update.

ページグパラメーターが大きいときにレスポンスタイムが遅くなる問題

Posted at

Qiitaのあるタグがついた投稿一覧ページのページングの末尾まで飛ぶリンクをクリックした時に、レスポンスが明らかに遅い気がします。
体感的には、2〜3倍は遅い感じがします。

スクリーンショット_2016-12-05_23_06_54.png

計測してみた

方法

とはいえ、なんとなく、遅いと言うのはただの言いがかりなので、どのくらい遅いのか計測をしてみました。

今回はページングのパラメーターを大きくしながら、リクエストを投げて計測します。
測定するメトリクスはTTFB(Time To First Byte)です。

TTFBの計測は以下のようにcurlコマンドを使って行いました。

curl <URL> -s -o /dev/null -w '%{time_starttransfer}\n'

結果

測定結果を箱ひげ図にしたグラフを以下に示します。
横軸はページングのパラメーター(そのまま表示させると、グラフの横幅が大きなってしまうので、幅15のビンを作成しています)
縦軸は、TTFB(Time To First Byte)です。

シート 1.png

ページ番号300を境界にして、振る舞いが大きく変わっていることがわかります。

300番よりも若い番号をキャッシュするような実装なのでしょうか。
Incrementsの採用ページを見ると、RailsやAWSを使っていることが読み取れるので、おそらくキャッシュ用のミドルウェアはmemcachedかRedisでしょう。

おそらく、ソースコードのどこかに300というマジックナンバーがあるはずなので、それを600くらいにしてもいいのではないでしょうか?
これほど多くの投稿があるタグもそんなに多くないので、キャッシュサイズの増加の影響はそこまでないかと思います。

s/300/600

ちなみに、Qiita::Teamでは

Qiita::Teamでも同様のことを調べようとしたら、ページが重すぎて、502になってしまいました・・・

スクリーンショット 2016-12-06 0.37.16.png

12
4
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
4