タグ

チューニングに関するyanbowのブックマーク (15)

  • MySQL InnoDBストレージエンジンのチューニング(後編)(EnterpriseZine) - goo ニュース

    チューニングの基礎  それでは、具体的にInnoDBでどこをチューニングするべきかを見ていこう。 ■バッファプール  最も基となるのがバッファサイズの調整だ。ワーキングセットが全てバッファに収まらない限り、バッファプールは大きければ大きいほど良い。その分ディスクアクセスが減るからだ。バッファサイズが小さいと、キャッシュミス時にディスクからReadするのに時間がかかり、I/Oがボトルネックになってしまう。予算のある限りメモリを目いっぱい搭載し、バッファプールに割り当てよう。InnoDBのバッファプールは、innodb_buffer_pool_sizeオプションで設定する。利用可能なメモリは、他の処理に必要な分を除いたすべてをInnoDBのバッファプールに割り当てよう。 innodb_buffer_pool=32G ここで一つ注意がある。innodb_buffer_pool_sizeはバッフ

    MySQL InnoDBストレージエンジンのチューニング(後編)(EnterpriseZine) - goo ニュース
  • 開発者のためのSQLパフォーマンスの全て

    前書き - インデックスの作成はなぜ開発者のタスクなのか インデックスの 内部構造 - インデックスは何に似ているか インデックス リーフノード - 二重連結リスト 検索 ツリー(Bツリー) - バランス木 遅いインデックス パートI - インデックスを遅くする2つの原因 where 句 - 検索のパフォーマンスを改善するためにインデックスを作成 等価 演算子 - 一致するキーの検索 プライマリキー - インデックスの使い方を確認 複合インデックス - 複数列に対するインデックス 遅いインデックス パートII - 前の問題点が再び 関数 - where句の 中での関数 大文字・小文字を区別する 検索 - UPPERと LOWER ユーザ定義 関数 - 関数インデックスの制限 インデックスの作り過ぎ - 冗長性の排除法 パラメータ化 クエリ - セキュリティとパフォーマンスのために 範囲 検

    開発者のためのSQLパフォーマンスの全て
  • パフォーマンスを求めて - お前の血は何色だ!! 4

    結局、わかったことは、 次の4つ。 index から 実体へのシークは遅い。 すべてがindex内で完結するクエリーは早い。 limit をつけても where や order by すると意味がない。 indexを張るなら Using indexe をゲットできないと負けかな。 では、select で取得する値すべてに index を張りますか? 場合によっては可能ですが、テーブルに文字列なんかがふんだんに含まれていると難しいものがあり、現実的ではありません。 そこでこんな方法を提案します。2段階にわけてクエリーを打ちます。 A. task テーブルの 2008/6/5 〜 2008/6/18 のデータを開始日順にならべて、先頭5件だけ表示せよ。 select SQL_CALC_FOUND_ROWS * from task where task.task_starttime <= '20

    パフォーマンスを求めて - お前の血は何色だ!! 4
  • MySQLの複合INDEX - 憂鬱なプログラマの形而上学

    MySQLMySQLの複合インデックスについて。MySQLを使いこなしている人には常識の範疇にはいる知識だと思うのですが、かつての私のように、知らないとドツボにはまるので、ここにまとめておきます。タイトルでどういう内容か、もしかしたら大体、想像がつくかなと思うのですが、MySQLは1つのクエリーで1つのテーブルに対し、1つのインデックスしか機能しないということです。ようするに、あるテーブルに対して、普通に大量のインデックスを張ってもあまり意味がありません。そこで、今回は、最適な複合インデックスはどのようにしてはることができるか考えていこうじゃないか、という趣旨で書いていきたいと思います。まずは分析。テスト環境でインデックスが使われていないSQLを集めるまずは、/etc/my.cnfのパラメータを以下のように設定し、インデックスが使われていないSQLをスロークエリーに吐き出します。 slow

  • Apacheのチューニングメモ - Qiita

    個人的Apacheチューニングのメモ。 間違いがあったら教えて下さい! prefork 前提 Apacheでは、リクエストはApacheの子サーバプロセスが処理する。 子サーバプロセスは動的にforkで生成されたり、殺されたりする。 が、forkはとても重い処理なので、forkが発生しないように設定するのがよい。 チューニング方針 負荷が高かろうが低かろうが常に一定数のプロセスが動いている状態にする。 preforkの動作 MaxClientsは絶対値。 子プロセス数はこの値を超えない。 (以下正確ではないですが簡単に) Apacheは負荷が高くなってきたら 子プロセスを生成していく アイドル状態の子プロセスはMinSpareServers以上になるよう維持 MaxClients以上の子プロセスは生成しない MinSpareServersよりMaxClientsが強い 負荷が低くなってきた

    Apacheのチューニングメモ - Qiita
  • WordPressで読み込み速度1秒台を実現するために実施した5つの施策

    あなたのページ読み込み速度、遅すぎませんか? サイトがなかなか表示されないのはユーザーとして見た時に非常にストレスフル。理想のページの表示時間は最低でも2秒以内、目指すべきは1秒以内と言われている。 gori.meでも長いこと様々なツールを駆使しては読み込み速度改善にむけて取り組んできた。先日、ついにGTMetrixにおける測定値が安定して1秒台を出すことに成功したので、今回はこれを実現するために僕が実施した5つの施策をまとめておく!ページの読み込み速度に悩んでいる人は参考にどうぞ! gori.meのGTMetrixスコアと読み込み速度 1秒台を出す方法を話す前にそもそも当にgori.meは読み込み速度1秒台なのかということについて、先ほど取得したGTMetrixのスクリーンショットと共に紹介しておく。 ご覧の通り、読み込み速度は1.4秒、Googleの「Page Speed Grade

    WordPressで読み込み速度1秒台を実現するために実施した5つの施策
  • MySQLTunerでMySQLのチューニングを診断する方法

    https://github.com/rackerhacker/MySQLTuner-perl MySQLTunerはMySQLのチューニングを診断してくれるアプリケーションです。 基的なパフォーマンスチューニングのヒントをわかりやすく表示してくれます。 MySQLのチューニング設定に不安な方や、はじめてMySQLをさわる方は試してみると良いでしょう。 ライセンスはGNU GPLで無料で使えます。 検証環境 CentOS 6.3(64bit) MySQL 5.5.28 MySQL 5.5をインストール MySQL 5.5をインストールします。 # wget http://rpms.famillecollet.com/enterprise/remi-release-6.rpm # wget http://ftp.jaist.ac.jp/pub/Linux/Fedora/epel/6/x86

    MySQLTunerでMySQLのチューニングを診断する方法
  • WEBアプリケーションチューニングを始める - Mandy Code

    さてISUCON2も近づいていることですし、チューニングを題材に今実際にWEBアプリを作る中で行なっているチューニングの初歩について書いてみたいと思います。 まず、僕はものすごくMySQLに詳しいわけでもものすごくPerlPHPに精通しているわけでもない、という前提があり、自分で考えたり少ないながらも経験したことをもとにしてチューニングを進めております。 その中で覚書的に、誰でもいますぐ出来る測定方法などを書いておこうかなーと思います。 チューニングにはものすごく大きく分けて2種類あります。 アプリケーションのチューニング インフラレイヤーのチューニング まずはこの2つが効果的なチューニングになります。 この中でもアプリケーションのチューニングのほうが絶大な効果をあげることが多い、とYAPCでfujiwaraさんがおっしゃっていました。 アプリケーションのチューニング ではWEBアプリケ

    WEBアプリケーションチューニングを始める - Mandy Code
  • 解析まで10分!最強のMySQLチューニングツール「Jet Profiler」 - Lancers開発ブログ

    こんにちは、keiです。 今回は、MySQLのチューニングに大活躍な「Jet Profiler」というツールをご紹介します。 Jet Profilerとは Jet Profilerは、MySQL向けのクエリアナライザです。 クエリチューニングは、DBパフォーマンスチューニングの中でも重要な作業の1つですが、 Jet Profilerを使えば、その作業をGUIで直感的に行うことができます。 フリーウェアの形態で提供されており、機能限定版であれば無料で利用することができます。 購入する場合は、$499となります。 詳細情報、ダウンロードは公式ページからどうぞ。 http://www.jetprofiler.com/ja/ Jet Profilerの魅力 その1 導入のしやすさ 通常のWindowマシンに、普通のアプリケーションをインストールする感覚でインストールが可能です。 イン

  • はじめての MySQL で100万件のデータを管理する時に行ったチューニングまとめ

    MySQL の勉強をせずにフレームワーク等で SQL を書かずに Web サイトを構築していました。データ数も2万件程度でしたので、そこまで困ることはありませんでしたが、今回100万弱の商品データを扱う機会ができたので、MySQL のチューニングや発行する SQL について見直す機会がありました。 この記事では MySQL を高速化するのに行った対策など勉強したものを自分用にメモしておきました。 条件式で比較するカラムにインデックスを使用して高速化 商品コードで存在しない商品を見つけて、商品をDBに登録するという処理を行っている場合、4万件超えたころから処理に2秒以上かかるようになってきます。12万件超えた頃には10秒程度かかるようになってしまいましたが、商品コードのフィールドに対してカラムインデックスを貼ることで0.2秒に短縮することができました。 MySQL のリファレンスにも以下のよ

  • 高負荷サイトのボトルネックを見つけるには : DSAS開発者の部屋

    はじめに アクセスが急増すると、応答時間が著しく悪化するサイトはありませんか? 普段は200ミリ秒以内で安定してアクセスをさばいているのに、イベントやらキャンペーンやらを開始した瞬間から、普段の2倍や3倍のアクセスが殺到し、その結果、レスポンスタイムが3秒とか9秒とかかかるようになってしまうことってありますよね。 あるサイトの実状 つい先日まで、そんなサイトが私の目の前にもありました。自社で運営している某ソーシャル系のサイトなんですが、イベント開始時刻と同時にアクセス数が急増するのです。とはいえ、所詮は普段の2倍とか3倍程度の数なのだから、少なくとも1秒以内にレスポンスを返せるくらいの性能は維持したいものです。 しかし実際は困ったことに、応答に3秒以上もかかってしまう処理が大量に発生してしまう状況に陥ってしまっていました。これはきっと、どこかにボトルネックがあるに違いありません。 仮説を立

    高負荷サイトのボトルネックを見つけるには : DSAS開発者の部屋
  • Apacheチューニングのためのメモリ使用量計算 - 仙台の山奥で自転車に乗ったり転んだり

    「/proc/(pid)/status」のメモリサイズからメモリ消費量をリストアップするスクリプトを準備した。 「サーバ/インフラを支える技術」に載っている、id:naoyaさんの共有しているメモリのサイズを計算するスクリプトとあわせて、エクセルに落とし込んでごにょごにょと計測してみる。 http://d.hatena.ne.jp/naoya/20080212/1202830671 http://archive.linux.or.jp/JM/html/LDP_man-pages/man5/proc.5.html [www]~ $ cat memory_size.sh #!/bin/sh GREP="/bin/grep" AWK="/bin/awk" PRINTF="/usr/bin/printf" if [ $# -lt 1 ]; then echo "usage: ${0} [pid .

    Apacheチューニングのためのメモリ使用量計算 - 仙台の山奥で自転車に乗ったり転んだり
  • 同時接続数(MaxClients)をいくつに設定すべきか?

    へんじがない。ただのポンコツのようだ。 ポンコツが今日も持ち場でガンバリつつ、 楽しく生きていくための備忘録ブログ。ぬわーーっっ!!2005年7月から絶賛「更新」中! 【この記事の所要時間 : 約 9 分】 Apacheの同時接続数(MaxClients)をどのように設定するのがいいのか調べた。 Apacheのプロセス数を制限するためのディレクティブが「MaxClients」で、このディレクティブには、同時に接続できるクライアント(厳密にはセッション)の数を指定しなければならない。 ●まずはApacheドキュメントを確認しよう Apacheのドキュメントでは、以下のように定義されていた。 MaxClients ディレクティブ 説明: リクエストに応答するために作成される子プロセスの最大個数 構文: MaxClients number デフォルト: 詳細は使用法をご覧下さい。 コンテキスト:

    同時接続数(MaxClients)をいくつに設定すべきか?
  • Apache チューニング Tips | Carpe Diem

    先日、Web サーバ勉強会 #2 が開かれました。内容は、Apache のチューニングということで、参加したかったのですが、他の予定があって参加できませんでした。 そこで、僕が個人的に行っている Apache のチューニングを紹介したいと思います。最初、スライドで作成しようかと思ったのですが、ブログにまとめたほうがよさそうなのでブログにまとめていきます。 まず、大前提として Apache をチューニングするうえで、大事なことはその Apache が提供する Web サービスの種類のよって大きくチューニングする内容が異なるということです。例えば、動画・写真共有サービスと株価情報のサービスを比較すると、当然のことながら大きくサービスの内容が異なりますし、HTTP レベルでみるとクライアントからのリクエスト数、データサイズ、などがかなり違ってきます。 ですので、まずは自分が扱っているウェブサービ

  • PHP開発者のMySQLの間違いトップ10:phpspot開発日誌

    WindowsアプリのツリービューっぽいUIをWEB上で簡単実装できるjQueryプラ... 次の記事 ≫:シンプルさがいい感じの154種類のアイコンセット Top 10 MySQL Mistakes Made by PHP Developers PHP開発者のMySQLの間違いトップ10。 手慣れている人にとっては知ってることも多いかもしれませんが、初心者が役立ったり、知らない部分のカバーとしてメモとして書いてみます MyISAMを使っている デフォルトはストレージエンジンにMyISAMだけどInnoDBを使おう リカバリ可能でオンラインバックアップ機能、外部キー利用可能なInnoDBおすすめ 詳細:Open database life: MyISAMとInnoDBのどちらを使うべきか PHPMySQL関数を使っている mysql_* 関数を使わず、PDO等でストレージ変更に対応しよう

  • 1