重いデータベースを改善して劇的に速くする簡単なお仕事です

とあるサイトのデータベースが重くてサーバーが悲鳴をあげていました。

モニタで見るとこんな感じ。

定期的にCPU使用率が100%になってるのがわかると思います。

こういう状態だとサイトが重くなったり落ちたりするわけで、ユーザービリティー的にも運営的にも物理的にも精神衛生上的にも色々よろしくないわけです。

データベースが重い理由は大体こんな感じ

  • クエリの書き方が最適化されてない
  • インデックスの貼り方が微妙
  • サーバーのスペックがしょぼい

アクセス数やらアクティビティからスペックがしょぼいはずはないと踏んだので、クエリの書き方を調べてみました。

まずサイト内でレスポンスが重い箇所を捜査、色んなページを閲覧して重い箇所を調べるわけです。

んで、対象のページを見つけまして、

調べてみるとそのページは、レスポンスに10秒以上かかってたんですよね。

10秒の間に他の人が、同じリクエストをしてくる可能性があるので、そうなるとCPUリソースを使いまくることになるので、最悪の場合サーバーが落ちてしまうわけです。

 

ということで改善すべきターゲットを見つけたので、ソースコード改善してみた結果がこれ

 

1週間単位です

24時間で見るともっとわかりやすい。

24時間単位です

レスポンスも0.5秒以下になって、ユーザーにもマシンにも、運営者のお財布にも優しいサーバーができあがりました。

The following two tabs change content below.

西尾学

会社の代表やってます。遊ぶように仕事やってます。

最新記事 by 西尾学 (全て見る)