MySQL 5.1のmysqldumpslowを使うとチューニングが楽になる!という話題です。 mysqldumpslowはもともとMySQLに付属しているツールで、スロークエリログを集計してくれるものです。これ自体はMySQL 5.1で特に変わったところはありませんが、スロークエリログ本体の方が機能強化されているため、組み合わせるとなかなか便利になっています。MySQL 5.1におけるスロークエリログの主な機能強化は以下の三点です。 long_query_timeに1秒未満の値を設定できるようになった。 出力先を設定できるようになった。 これらの設定をオンラインで変更できるようになった。 これでどうなるかというと、MySQLの性能分析をしたいと思ったときに、サーバを止めずにその場で mysql> set global slow_query_log = 1; mysql> set glob
X25-M、SSDで検索してくる方が非常に多いので、本ブログ内のSSD関連記事をリストしておきます。 MySQLのベンチマークを用いたIntel X25-M SSDの評価 (本記事) SSDの真の性能を引き出す MySQL 5.1.38 InnoDB Plugin (2009/09/07) 先週末IntelのSSD、X25-Mが突然7,000円ほど値下がりしたので、ついに我慢できず手を出してしまいました。初めてのSSD導入です。 SSDのベンチマーク記事は国内・海外問わずたくさんありますが、実際にデータベースを乗せて計測した記事はそれほど多くありません。そこで、先日ご紹介したtpcc-mysqlを用いてベンチマークテストを行ってみました。 データベースサーバ OS : Windows XP SP3 32bit CPU : Core2 Duo T7300 2.0GHz (EIST OFF)
MySQLを高速化する10の方法という記事がとても好評だったようである。記事を読んで頂いた皆さん、ありがとう。 この記事に対する便乗(?)でWeb屋のネタ帳: PostgreSQLを高速化する16のポイントという記事を書いて頂いたようだが、そちらの方もかなり人気だったようである。他人が作ったソフトウェアに改良を加えるというフリーソフトウェアやオープンソースソフトウェアの精神も基本は便乗であるので、便乗については大いに賛成したいというかむしろ取り上げてくれてありがとう!!と思うわけであるが、ここでさらに俺はこう考える。 と。 Web屋のネタ帳さんの記事では16のポイントが紹介されているが、漢(オトコ)のコンピュータ道の記事は10の方法だったのであと6つ足りない。オトコは数で勝負!!というわけで今日はネタを振り絞ってさらに7つのMySQL高速化テクニックを紹介しよう。 1. インテルコンパイラ
One thing to realize about our fractional reserve banking system is that, like a child's game of musical chairs, as long as the music is playing, there are no losers. Andrew Gause, Monetary Historian 「部分準備金融制度について一つだけ実現している事は、 子供の椅子取りゲームのように、 音楽が流れ続けている限りは敗者が存在しないということである。」 アンドリュー ガウス、金融史家 【Sun HotSpot VMのガベージコレクションとヒープ】 TomcatはApache Software Foundationが提供するフリーのサーブレットコンテナ実装です。要するにJ
MySQL 5.1からデフォルトで有効になっている便利な機能としてプロファイリングというものがある。MySQL 5.0でも利用出来たのだが、実験的な機能という位置づけであり、搭載されていたのはGPL版のMySQL Community Server限定だった。MySQL 5.1からは全てのエディションでプロファイリングを利用することができる。 プロファイリング機能を利用すると、クエリの状態(特に状態遷移やリソースの消費状況)を詳細に分析できるのでとても便利だ。MySQLエンジニア必携の機能といって良いだろう。というわけでプロファイリング機能の使い方を説明しよう。 MySQLサーバにログインしたら、まずは次のようにしてプロファイリングを有効にする。 mysql> SET profiling=1; すると、クエリの情報が記録されるようになる。次に、分析したいクエリを実行する。クエリはなんでもいい
スタンフォード大学で、CS193H – High Performance Web Sites というタイトルの講義が行われた。そのときのプレゼンテーション資料が、公開されていた。講義は、9/22 から 12/5 まで行われて、おもに次のような内容だったようだ。講義タイトルを翻訳してみた。 9/22: 導入 – Introduction 9/24: フロントエンド側のパフォーマンスの重要性について – The Importance of Frontend Performance 9/26: HTTP ウェブサイトの 100 のパフォーマンスプロファイル – HTTP Web 100 Performance Profile 9/26: 開かれたウェブのパフォーマンス挑戦 – Performance Challenges for the Open Web 10/1: フロントエンドカンフー –
じつは自宅サーバのロードアベレージが上がり続けています。分析の結果、ボトルネックは I/O 処理でした。CPU は Athlon64 X2 4400+ ですが、まだまだ当分この CPU で間に合いそうです。HDD は当時は 7200 回転で最速だった HITACHI Deskstar T7K250 SATA2 250GB を RAID1 構成にしたのですが、今思えば速度優先で RAID0 にしておけば良かったと少しだけ後悔。 I/O がボトルネックに成っている理由ですが、Drk7jp が公開しているサービスの全てがキャッシュファイルを利用した高速化手法を取っているのですが、単純にそれらファイルの write 処理が追いついていません。常に何らかのプロセスで I/O 待ち状態が発生しているような状況です。抜本的な解決方法としては disk を高速なものに交換する以外ありません。 というわけで
Apache is an open-source HTTP server implementation. It is the most popular web server on the Internet. The December 2005 Web Server Survey conducted by Netcraft [1] shows that about 70% of the web sites on Internet are using Apache.1. Apache server performanceApache server performance can be improved by adding additional hardware resources such as RAM, faster CPU etc. But, most of the time, the s
Tuning MySQL Performance with MySQLTunerVersion 1.0 Author: Falko Timme MySQLTuner is a Perl script that analyzes your MySQL performance and, based on the statistics it gathers, gives recommendations which variables you should adjust in order to increase performance. That way, you can tune your my.cnf file to tease out the last bit of performance from your MySQL server and make it work more effici
I’ve been working with Apache Tomcat for years and always seem to stumble upon new information related to the proper setup and configuration for a production environment. I’ve decided to put the instructions and tips I’ve collected together in one place. So here are some helpful hints for running Tomcat in a production environment: 1. If you’re running on a 1.5+ JVM… Add the following to your JAVA
All of Percona’s open-source software products, in one place, to download as much or as little as you need.
業務で参加ですが,ひとまずログ記録.こんかいから howm でもはてな記法で書いたのでコピペが楽です(ノ∀`). MySQL パフォーマンスチューニング MySQL は Orcale と同程度の安定性とスケーラビリティがあると評価されている(2005年) パフォーマンスとは? パフォーマンスの指標 スループット レスポンスタイム・レイテンシ スケーラビリティ 上記のコンビネーション CPU やサーバ環境によって変わるのか,など 指標は平均値だけでみるのではなく,ばらつきを調べるのも重要 キューイング 複数のユーザ・リクエストがある場合に発生 レスポンスタイム = キューイングによる遅延 + 実行時間 飽和するとキューイングによる遅延が増大する 天王山トンネルとかと同じ原理 事前の性能テストでは見えない部分でもある 性尿評価の基準作りが重要 実行時間 : Key to the hotspot
Webサイトの処理でどこに時間がかかっているか知りたい。 そんなときにおすすめなのが、『Jiffy Firefox Extension』。Firebugにパフォーマンスを測る機能をつけられるエクステンションだ。 これを使えば、ロードやAjaxのレスポンスなど、詳細なパフォーマンスタイムを計測することができる。 サイトを軽くしたいときに便利だろう。 Firebugにパフォーマンスを測る機能をつけられるエクステンション、チェックしてぜひ使ってみてはいかがだろうか。 ちょっと気になっていたカフェに行ってきた。こじんまりしているがとても居心地のいいところだった。 おばちゃんが「それAir?」って聞いてきたり、かっこいい店員さんに「俳優さんですか?」と聞かれたりといろいろだ。e-mobileはつながりにくかったけど。。
DRBDのパフォーマンスを評価する機会があったのでメモしておきます。 DRBDはTCP/IPネットワーク越しにディスクのミラーリングを行うソフトウェアで、Linuxのカーネルモジュールとして実装されています。ネットワーク経由のRAID1と考えるとわかりやすいと思います。Heartbeatなどと組み合わせると擬似的な共有ディスクを持ったクラスタを構築することができます。 5年くらい前に話に聞いたときは(主にネットワークが)遅すぎて使えない印象でしたが、今日ではGigabit Ethernetが当たり前に使えるのでどのくらいのパフォーマンスが出るのか興味深いところです。 環境 以下のような環境を用いました。 サーバハードウェア 機種 IBM x3650 2台 CPU Intel Xeon 1.6GHz Memory 5GB HDD SAS HDD 146GB RAID1 ネットワーク構成 10
全く本質的でなく効果も小さいものばかりだけど、最後のひと絞りにどうぞ。 Hardware HT無効 今時サーバでNetBurstもないだろうけど、使っているなら切った方が速い。並列実行度が高くなるには違いないが、spin lockとHTは相性がよろしくないし、そもそもNetBurstのHTは速くなる局面が少なすぎる。いっぱいプロセッサが見えるのは気持ちいいが、実効性能を考えると無効の方が速い。 RAID1+0 ブロックサイズは大きめで(256KBとか)にする。"1つのレコードの大きさ <= RIADのブロックサイズ"である状態だと、RAIDを構成する複数のディスクのうち1個へのリクエストで処理が完結するので具合が良い。逆に"1つのレコードの大きさ > RAIDのブロックサイズ"であると、1レコードの読み出しにも2個のディスクがその処理にかかり切りになってしまう。HDDの毎秒の処理回数は上限
Yahoo!は24日(米国時間)、Yahoo! Developer Networkを通じてWebページパフォーマンスを計測するツール「YSlow for Firebug(以下、YSlow)」を公開した。同ツールはMozilla Public License version 1.1のもとでオープンソースソフトウェアとして公開されている。 YSlowはYahoo! Exceptional Performance teamによって作成された評価基準にしたがってWebページのパフォーマンスを計測するツールエクステンション。Webアプリケーション開発におけるFirefoxエクステンションとして高い人気を誇っているFirebugに対する組み込みツールとして開発されている。 YSlowの実行例 YSlowでは「Performance」「Stats」「Component」の3つのビューが提供されている。P
PostgreSQLをチューニングする機会があったので その時に調べたチューニング項目を備忘録として残しておきます。 バージョンの違いやサーバの規模などによっても 効果は変わってくると思うのであくまで参考程度のものですが。 ・shared_buffers 7系では8000〜10000程度まで引き上げる 8系では150000程度まで引き上げることが可能、100000程度が性能のピーク これに多く割り当てるよりOSのバッファ領域として使う方が性能が向上する テーブルサイズを割り出して設定するのがベスト 簡単に設定するなら搭載メモリ量の1/4、搭載メモリが多ければ1/2ぐらいでも可 ・max_connections 7系では256程度、8系では1000程度が性能のピーク ・work_mem(sort_mem) 適切なサイズに調整する、2048〜4096程度 プロセス毎
komagataです。 Webアプリケーションのパフォーマンスの大半はデータベース、特にインデックスの使われ方にかかっている気がします。 仕事でもMySQLをよく使いますが、MySQLでは1テーブルに付き1インデックスしか使われません。PostgreSQLなどと比べてそのことが気になってMySQLでのパフォーマンスチューニングに全く自信が持てませんでした。 オライリーの実践ハイパフォーマンスMySQLには下記のように書かれています。 実際、UNIONを除き、MySQLでは、1つのクエリを実行するとき、1つのテーブルに付き1つのインデックスしか使用できない。この事実は、繰り返し述べるに値するほど重要である。「MySQLでは、1つのクエリを実行するとき、1つのテーブルにつき1つのインデックスしか使用できないのである。」 また、その制約を考えたクエリの書き方として下記の様に書いてあります。 my
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く