これまでWebアプリのクエリパフォーマンスを最適化してきましたが、それでもクエリ時間が15秒以上のランダムなスパイクが発生していました。そこでデータベースクエリのチューニングを始めました。まず、インデックス および Rack Mini Profiler を使用してホームページを高速化。それから高負荷なクエリを追跡して除去しました。 その結果、平均応答時間は約50ms、perc95は1秒未満と大幅に改善させることができました。しかし、まだ厄介な問題が残っていました。24時間のうちに、perc95の応答時間は15秒または30秒になり、短時間のタイムアウトが始まるのです。この記事では、これらの問題箇所を見つけて解決し、データベース負荷を80%削減させた方法を紹介します。 スパイクが発生したときの、ダッシュボード画面はこのようになります。 この一連のリクエストが非常に遅い理由を調べるために、メトリ
![どのようにしてデータベース負荷を80%削減するのか - Frasco](https://cdn-ak-scissors.b.st-hatena.com/image/square/084de8f821b99c3af8ba3a47d759c9e8cb7a78be/height=288;version=1;width=512/https%3A%2F%2Fstorage.googleapis.com%2Fdoha-api%2Fuploads%2F2017%2F10%2F20%2FScreenshot_2017-06-29_09.34.26.png)