Rails 3 系+MySQL を利用しているサービス向けに 1. どのようにボトルネックを探すのか 2. どのような設計を行えばいいのか 3. Rails上でどのようなコードを書けばいいのか の3点に絞ってこのプレゼンをみてチューニングを行えるように資料作成を行いましたRead less
![Ruby on Rails on MySQL チューニング入門](https://cdn-ak-scissors.b.st-hatena.com/image/square/e639b65a167949955afdf1f38847fb41dd5452ab/height=288;version=1;width=512/https%3A%2F%2Fcdn.slidesharecdn.com%2Fss_thumbnails%2Frubyonrailsonmysql-140225223621-phpapp02-thumbnail.jpg%3Fwidth%3D640%26height%3D640%26fit%3Dbounds)
Rails製アプリは、1画面に結構な量の情報を表示しようものなら、すぐにパフォーマンスが悪くなってしまいます。基本を押さえておけばこういったことに陥らないのですが、Railsがあまりにもサクサク開発できちゃうもんですから、ついつい調子に乗って基本を忘れてしまいがち。自分を戒めるためにも、パフォーマンス・チューニングの基本をまとめておくことにします。 環境 Rails 3.2.14 Ruby 2.0 sqlite3(データベース) WEBrick(httpサーバ) Mac Book Air 2012 Mid (デュアルコア2.0GHz Intel Core i7) チューニングするデモアプリ いまいち冴えないビジュアルのこのデモアプリ『Bookshelf(本棚)』を使用します。テーブルの1セル(td)に1冊の本が納められているつもりです。 Bookshelf仕様 著者(Author)はN件の
ヒントの使用 多くの場合、コストベース・アプローチを使用することで、オプティマイザは最適な実行計画を選択してくれますが、時として好ましくない実行計画を選択してしまうこともあります。 例えば、バインド変数を使用したSQLでは、SQLが解析(hard parse)された時点で指定されていたバインド変数の値を基に実行計画が決定されます(bind peek機能)。共有SQL領域に該当のSQLが残っている間は、同一のSQLはバインド変数の値にかかわらず、上記で決定された実行計画を使用するため、異なる値をセットしたSQLでは適切でない実行計画となってしまう可能性があります。 このような場合、SQLにヒントを指定することで、全表スキャンや索引スキャンといったアクセス方法や結合方法/順序などを、オプティマイザに明示的に指示できます。
前回はWindowsでのサーバやPCのボトルネック箇所の簡単な見分け方をご紹介させていただきましたが、要望がありましたので今回はLinuxの場合をご紹介いたします。 4つの主要ボトルネック要素の復習です。 サーバやPCには4つの主要ボトルネック要素があります。このいずれかがボトルネックとなった場合システム全体のレスポンスが低下します。 CPU使用率 メモリ使用量 ディスクI/O TCPコネクション数 Linuxにおいてはボトルネック箇所を以下のように見分けることができます。 1. CPU使用率 CPU使用率が常に100%に近い場合はCPUがボトルネックであることが判明します。CPU使用状況を簡単に調べるには3つの方法があります。「top」「w」「vmstat」コマンドを使う方法です。 -----------------------------------------------------
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く