メトリクス可視化から始める Rails ウェブサーバーのチューニング

Puma や Unicorn といったウェブサーバーは、Rails アプリケーションをハイパフォーマンスに運用するために欠かせない存在です。これらを適切に設定することはパフォーマンス面で利点がある他、アプリケーションが動作するホストのリソースを効率良く活用することができるため、コストの削減に繋がる可能性があります。しかしながら、サーバーのプロセスやスレッド数の設定ひとつをとっても、動作環境やサービスのアクセス傾向に応じて設定すべき値も変わってくるため、秘伝の設定ですべて事足りるとも限りません。

本セッションでは Puma や Unicorn からメトリクスを収集・可視化し、Rails アプリケーションをチューニングしていく事例を紹介します。CPU やメモリの状況といった標準的なメトリクスはもちろん、ウェブサーバー特有のメトリクスも利用してチューニングするプロセスを、アクセス傾向が異なる複数のアプリケーションや isucon の問題を実例に解説します。

アバター画像
s4ichi

クックパッド株式会社の技術部でソフトウェアエンジニアをしています。巨大なモノリスアプリケーションの基盤開発・運用からマイクロサービス化、レシピサービスで使われる共通システムの開発など、バックエンドを中心としたエンジニアリングに取り組んでいます。好きな gem は sigdump と stackprof。