タグ

tuningに関するHakujaのブックマーク (47)

  • Kazuho@Cybozu Labs: MySQL のボトルネックを統計的に監視・解析する方法

    MySQL のチューニング、と言った場合には、サーバーパラメータの調整や EXPLAIN コマンドを利用したクエリ実行計画の最適化が話題に上ることが多いです。しかし、発行する全ての SQL について、いちいち EXPLAIN コマンドを使って確認していては、いくら時間があってもたりません。チューニングを効率的に進めるには、まず、ボトルネックとなっている SQL クエリを特定し、次にその最適化を行うべきです。 ではどのようにして、ボトルネックを特定するのか。MySQL Conference & Expo 2009 のキーノートにおいて Mark Callaghan 氏は、Google では SHOW PROCESSLIST コマンドを使った統計的アプローチを使っていると述べていらっしゃいます (参照: MySQLConf 09: Mark Callaghan, "This is Not a

  • ウノウラボ Unoh Labs: Apache MPM の基礎をしっかりと理解しよう!

    naoya です。最近、とうとう花粉症の季節に入ったので、生まれて初めて空気清浄機を購入しました。 さて、今日は Apache HTTP サーバの MPM (Multi Processing Module) について解説したいと思います。普段、ウェブサーバを構築するとき、Apache HTTP サーバを使うことが多いと思いますが、Apache HTTP サーバを使う上で MPM について理解しておくことは大事です。 この MPM ですが、Apache HTTP サーバではリクエストを処理する部分のことをさします。MPM は、Apache HTTP サーバ 2.0 系から採用されています。Apache HTTP サーバの MPM には、次の種類があります。 prefork worker perchild winnt それぞれの MPM について解説します。まずは、一番代表的な prefork

  • MySQLのEXPLAINを徹底解説!!

    以前、MySQLを高速化する10の方法という投稿で「EXPLAINの見方についてはいずれ解説しようと思う」と書いてしまったので、今日はその公約?を果たそうと思う。 MySQLのチューニングで最も大切なのは、クエリとスキーマの最適化である。スキーマの設計は一度決めてしまうとそのテーブルを利用する全てのクエリに影響してしまうためなかなか変更することは出来ないが、クエリはそのクエリだけを書き直せば良いので変更の敷居は低い。そして遅いクエリをなくすことは、性能を大幅に向上させるための最も有効な手段である。従って、アプリケーションの性能を向上させたいなら、まず最初にクエリのチューニングを検討するべきなのである。 最適化するべきクエリはスロークエリログやクエリアナライザで見付けられるが、ではそのようなクエリが見つかった場合にはどのように最適化すればいいのか?そのためにはまず現在どのようにクエリが実行さ

    MySQLのEXPLAINを徹底解説!!
  • さらにMySQLを高速化する7つの方法

    MySQLを高速化する10の方法という記事がとても好評だったようである。記事を読んで頂いた皆さん、ありがとう。 この記事に対する便乗(?)でWeb屋のネタ帳: PostgreSQLを高速化する16のポイントという記事を書いて頂いたようだが、そちらの方もかなり人気だったようである。他人が作ったソフトウェアに改良を加えるというフリーソフトウェアやオープンソースソフトウェアの精神も基は便乗であるので、便乗については大いに賛成したいというかむしろ取り上げてくれてありがとう!!と思うわけであるが、ここでさらに俺はこう考える。 と。 Web屋のネタ帳さんの記事では16のポイントが紹介されているが、漢(オトコ)のコンピュータ道の記事は10の方法だったのであと6つ足りない。オトコは数で勝負!!というわけで今日はネタを振り絞ってさらに7つのMySQL高速化テクニックを紹介しよう。 1. インテルコンパイラ

    さらにMySQLを高速化する7つの方法
  • Building and Scaling a Startup on Rails: 12 Things We Learned the Hard Way

    the rate of signal flow across long nerve fiber between neurons There are a bunch of basic functional elements to building out a popular Rails app that I've never really seen explained in one place, but we had to learn the hard way while building Posterous. Here's a rundown of what we've learned, in the hopes that some Google linkjuice may bring an intrepid wanderer to this forlorn part of the woo

    Building and Scaling a Startup on Rails: 12 Things We Learned the Hard Way
  • 漢(オトコ)のコンピュータ道: MySQLを高速化する10の方法

    ちょっとキャッチ−なタイトルをつけてしまったが、今日は独断と偏見でMySQLを高速化する方法を10個紹介しよう。MySQLサーバをチューニングするときや初期導入する場合などに参考にしてもらいたい。 1. バッファを増やす、または減らす チューニングの基中の基であるが、適切なバッファサイズを設定することはパフォーマンスチューニングの要である。主なバッファは次の通り。 innodb_buffer_pool_size・・・InnoDBだけを利用する場合は空きメモリの7〜8割程度を割り当てる最も重要なバッファである。余談だが、実際にはここで割り当てた値の5〜10%ぐらいを多めにメモリを使うので注意が必要だ。 key_buffer_size・・・MyISAMだけを利用する場合は、空きメモリの3割程度を割り当てるといい。残りはファイルシステムのキャッシュ用に残しておこう。 sort_buffer_

    漢(オトコ)のコンピュータ道: MySQLを高速化する10の方法
  • Passenger のリソース最適化オプション | Carpe Diem

    Passenger を使うとき、リソース最適化オプションによって大きくパフォーマンスが変わる。英文だと理解できるのが遅いので、勝手に翻訳してみる。 – PassengerMaxPoolSize <整数値> 同時に使用できる ROR あるいは Rack アプリケーションの最大数です。より大きな値を指定すると多くのメモリを消費しますが、HTTP クライアントが同時に処理できる能力を増やすことができます。 この最適な値は、あなたのシステムハードウェアやサーバの平均値ロードに依存します。異なる値を指定して実験する必要があるでしょう。しかし一般的にはこの値は少なくてもあなたのシステムの CPU 数に等しい値にするべきです。もしあなたのシステムが 2G のメモリ容量なら 30 を指定することをおすすめします。もしあなたのシステムが VPS 、256MB のメモリ容量で、MySQL のようなサービスが動

  • 決定版! Windowsを安全に軽量化する7の極意 | 教えて君.net

    OSの軽量化はウインドウズユーザーにとって永遠の課題だ。一般的なパソコンユーザの持つスペックをあざ笑うかのような“もっさり具合”の「Windows Vista」はもちろん、XPですら低価格パソコンでは快適、とは言えない。ここではWindowsの【軽量化】に関する厳選Tipsを紹介する。

  • tuxtraining.com

    This domain may be for sale!

  • Railsのproductionログから処理に時間がかかっている部分を探す - 元RX-7乗りの適当な日々

    先日、運用環境のRailsで動いているアプリのログからレスポンスタイムを確認する機会があって、production.logをもとに、時間がかかっている重い処理を抽出しました。ちなみにRailsのバージョンは2.1系です。 このエントリは、そのメモ書きです。どの処理が遅いのかを探し出すための最初の一歩ということで参考になれば。 Railsのログ Railsアプリをproductionモードで動かしていると、以下のようなログが各処理の最後で記録され、処理全体にかかった時間や、そのうちのレンダリング処理、DB処理の内訳なども確認できるようになっています。 Completed in 0.52340 (1 reqs/sec) | Rendering: 0.41524 (79%) | DB: 0.07341 (14%) | 200 OK [https://example.jp/hoge] 時間がかかっ

    Railsのproductionログから処理に時間がかかっている部分を探す - 元RX-7乗りの適当な日々
  • Linux チューニング - Ext3 のパフォーマンスを最大化させる

    じつは自宅サーバのロードアベレージが上がり続けています。分析の結果、ボトルネックは I/O 処理でした。CPU は Athlon64 X2 4400+ ですが、まだまだ当分この CPU で間に合いそうです。HDD は当時は 7200 回転で最速だった HITACHI Deskstar T7K250 SATA2 250GB を RAID1 構成にしたのですが、今思えば速度優先で RAID0 にしておけば良かったと少しだけ後悔。 I/O がボトルネックに成っている理由ですが、Drk7jp が公開しているサービスの全てがキャッシュファイルを利用した高速化手法を取っているのですが、単純にそれらファイルの write 処理が追いついていません。常に何らかのプロセスで I/O 待ち状態が発生しているような状況です。抜的な解決方法としては disk を高速なものに交換する以外ありません。 というわけで

  • 第2回 知っておきたいスケールアウトの基礎知識 その1 | gihyo.jp

    サービスを初めてから高負荷になるまで さて、今回からは具体的に、個人でサービスを初めてからシステムを増強していくまでの課程を説明していきたいと思います。 まずサービスを始める際は、手っ取り早さやコストの問題などから、複数のユーザと共有のレンタルサーバから始めるケースが多いですが、ある程度の人気が出てくるとアクセスに耐えきれなくなり専用サーバを借りるというパターンになると思います。 ここまではわかりやすくシステムを増強することができるのですが、専用サーバで耐えきれなくなってきた際はそれ以降はどのようにすればよいのでしょうか? その負荷はホンモノか? まず、サーバの負荷が高いといっても現象はさまざまです。負荷が高いといった現象は具体的に発見されるのは、「⁠ユーザから見たレスポンス」から発見されることが多いはずです。 ここで単純に「サーバを増強しなければ!」と判断はせずに、何が原因でパフォーマン

    第2回 知っておきたいスケールアウトの基礎知識 その1 | gihyo.jp
  • 4 Simple Steps to Detect &amp; Fix Slow Rails Requests | Scout APM Blog

    Dr. Brendan Reilly instituted a simple test to determine whether a patient was suffering from a heart attack. It combined just 4 questions with the results of an ECG. This simple test was 70% better than the barrage of questions previously asked by hospital staff to identify patients that weren’t having a heart attack and was nearly 20% better at identifying patients that were having heart attacks

    4 Simple Steps to Detect &amp; Fix Slow Rails Requests | Scout APM Blog
  • How to Detect and Fix Slow Rails Requests

    New to Rails 3? Check out the Ruby on Rails 3 Tutorial book and screencast. A book and screencast series showing you how to develop and deploy industrial-strength Rails apps in a direct, step by step way. The screencast series includes 12 lessons over more than 15 hours! Get the best "over the shoulder" experience of following what a top Rails 3 developer does when building an app today. Click her

  • CGMサイト構築で悩む負荷対策と拡張性の確保 (1/3)- @IT

    第1回 CGMサイト構築で悩む負荷対策と拡張性の確保 林田 幸一 株式会社Cuon 2008/8/4 Rubyを使った大規模エンタープライズ開発が始まっている。Ruby on Railsでの開発において、インフラやアプリケーションアーキテクチャをどのように構成すべきかを考える(編集部) 最近、Ruby on Rails(RoR)で構築されているCGM(Consumer Generated Media)サイトやコミュニティサイトが確実に増えてきている。例を挙げるまでもないが、Twitterべログ、iknowなどだ。 RoRの採用の理由として、 実験的なプロジェクトとして。最近評判のRoRを次期言語・フレームワークとして評価するため 人材採用のためのコマーシャル 開発リーダーやマネージャが純粋にRuby好き など、会社レベルから個人レベルまでさまざまな採用理由が存在する。 われわれの会社(

  • Railsのログを分析、グラフ化·LogJuicer MOONGIFT

    ※ 画像は公式サイトデモより Railsは遅いと言われる。確かに富豪的なフレームワークであり、そのままの使い方では動作が重たい。そのため、解決手段としてmemcachedをはじめとしたキャッシュ技術を利用することが多い。 ログを解析して一覧してくれる だが、フレームワークの問題ではなく、プログラム側の問題もあるかも知れない。その解決のためにはまず、現状分析からはじめてみよう。 今回紹介するオープンソース・ソフトウェアはLogJuicer、Railsログ分析ソフトウェアだ。 LogJuicerはproductionをターゲットにしたログを分析するソフトウェアだ。標準でテーブル組に各コントローラのヒット数、レンダリング、DBへの実行時間などをリストにしてくれる。さらにコントローラをクリックすると、各アクション別にドリルダウンしてくれる。 円グラフ もう一つのモードはグラフで、円グラフや棒グラフ

    Railsのログを分析、グラフ化·LogJuicer MOONGIFT
  • MOONGIFT: » Railsをさらに加速するテクノロジー「Ruby Enterprise Edition」:オープンソースを毎日紹介

    一般的にRailsは開発は速いが、動作は遅いという印象がある。もちろん、速度面の解決手段は様々に存在し、現在はキャッシュを利用する方法が多用される。そしてもう一つの欠点として、設置の面倒さが挙げられることが多い。これはmod_rails(Passenger)を使うことで相当楽になる。 Ruby Enterprise Editionのトップページ だが、mod_railsの欠点として挙げられるのが、メモリを相当使ってしまうということがある。速度面とメモリ、同時に解決するのがこのソフトウェアだ。 今回紹介するオープンソース・ソフトウェアはRuby Enterprise Edition、エンタープライズ向けRubyと名付けられたRubyだ。 Ruby Enterprise Editionはmod_ruby(Passenger)の開発者によって作られたRubyで、Ruby 1.8.6をベースにGC

    MOONGIFT: » Railsをさらに加速するテクノロジー「Ruby Enterprise Edition」:オープンソースを毎日紹介
  • Ring

    Ringとは、リクルートグループ会社従業員を対象にした新規事業提案制度です。 『ゼクシィ』『R25』『スタディサプリ』など数多くの事業を生み出してきた新規事業制度は、 1982年に「RING」としてスタートし、1990年「New RING」と改定、そして2018年「Ring」にリニューアルしました。 リクルートグループの従業員は誰でも自由に参加することができ、 テーマはリクルートの既存領域に限らず、ありとあらゆる領域が対象です。 リクルートにとって、Ringとは「新しい価値の創造」というグループ経営理念を体現する場であり、 従業員が自分の意思で新規事業を提案・実現できる機会です。 Ringフロー その後の事業開発手法 Ringを通過した案件は、事業化を検討する権利を得て、事業開発を行います。 さまざまな事業開発の手法がありますが、例えば既存領域での事業開発の場合は、 担当事業会社内で予算や

  • MOONGIFT: >> RailsにおけるMySQLのボトルネックを分析する「Palmist」:オープンソースを毎日紹介

    Railsは度々遅いということが話題に上がる。Ruby自体の性能もあるだろうが、データベースを富豪的に使っているのにも原因がある。便利であるためについついデータベースを多用していたり、データの取り出しを複雑(都度集計など)にしていないだろうか。 メイン画面 個人的な経験から言えばボトルネックになりがちなのはレンダリングとデータベースだ。このデータベースの問題点を洗い出すのに便利なのが、またしてもRailsアプリケーションだ。 今回紹介するフリーウェアはPalmist、RailsMySQL実行履歴を見るソフトウェアだ。ソースはGithubで公開されているがライセンスは明記されていなかったので注意していただきたい。 Palmistは他のRailsアプリケーションのログファイルを読み取って、それを解析して表示してくれる。コントローラ、アクション、DBへのCRUDごとにリストアップしてくれる。実

    MOONGIFT: >> RailsにおけるMySQLのボトルネックを分析する「Palmist」:オープンソースを毎日紹介
  • [RailsConf2008] Railsの最適化・スケーリグのシナリオ : Media Technology Labs (MTL) : メディアテクノロジーラボ ブログ

    Ringとは、リクルートグループ会社従業員を対象にした新規事業提案制度です。 『ゼクシィ』『R25』『スタディサプリ』など数多くの事業を生み出してきた新規事業制度は、 1982年に「RING」としてスタートし、1990年「New RING」と改定、そして2018年「Ring」にリニューアルしました。 リクルートグループの従業員は誰でも自由に参加することができ、 テーマはリクルートの既存領域に限らず、ありとあらゆる領域が対象です。 リクルートにとって、Ringとは「新しい価値の創造」というグループ経営理念を体現する場であり、 従業員が自分の意思で新規事業を提案・実現できる機会です。 Ringフロー その後の事業開発手法 Ringを通過した案件は、事業化を検討する権利を得て、事業開発を行います。 さまざまな事業開発の手法がありますが、例えば既存領域での事業開発の場合は、 担当事業会社内で予算や