2008-03-03 [長年日記]

いろいろありえん。

朝6時に起きた。俺スゲー。3時間しか寝てないけど。

外に出て、いきなり黒猫が前を横切った。勘弁してくれ。

えらい久しぶりの朝の通勤ラッシュ。日本人はアホだと思う。つか、新宿まで5分の所に住んでいながら、乗り換え3回とかありえん。

さて会社に着いて、軽く挨拶を交わし、席へ案内する。どうでもいいが、さも当然のようにWindoze PC渡すのやめてほしいよね。Windoze XP/Pentium M 1.4GHz/Memory 1GBなDellノート。Joel Testの9番目を読めと言いたい。

まあこの会社、外国のCMSの国内代理店みたいな感じで、実は開発部隊は日本にはいない。そんな中、なぜかとりあえずパフォーマンスチューニングをやるとかいう仕事。なんでもトップページの表示に15分かかるらしい。ありえん。

さてまじめに仕事。Apache-Tomcat-MySQLな構成。とりあえず、遅いクエリがないか探す。my.cnfの[mysqld]セクションに以下を追加。

log-slow-queries
long-query-time=2
log-long-format

なんか、20個ぐらい出てきた。EXPLAINしたらインデックス貼られてない。10万件 * 20回をフルスキャン。ありえん。インデックス貼ったら半分ぐらいの時間になった。

引き続いて調査。負荷見てると、TomcatとMySQLが断続的に高い負荷を示している。速いクエリを大量に投げてるんかと推測。JOINしないで1コ1コ取りにいってるとか。結局、SQLを全部出してみることに。[mysqld]セクションにry

log

なんだ!? 1ページなのにログの量が果てしないぞ!? 中身を確認してみると、設定テーブルから約20万回ほど読み出していた。ありえん。しかも、CMSの構造上の制限っぽい。アリエンティ。つか、同じとこウン万回とか読んでるだけなので、とりあえずキャッシュにのせてみた。

query_cache_limit = 1M
query_cache_min_res_unit = 4k
query_cache_size = 32M
query_cache_type = 1

トータルで1分以内に返ってくるようになった。まだ最適化の余地はあるが、今日はこんなもんか。つか、こんなんテストフェーズでやるチューニングじゃねぇよ。設計時にやっとけ。

どう見てもステキCMSです。ありがとうございました。

どうでもいいが、「ステキCMS」で検索すると1番です。

Joel on Software
Joel on Software
posted with amazlet at 09.03.23
Joel Spolsky
オーム社
売り上げランキング: 88412
おすすめ度の平均: 4.5
4 お気に入りの本です
5 本当のソフト開発を本当の意味でわかってもらうのにいい本
4 楽しい
5 実際に現場で使わせてもらってます
3 優秀なソフトウェア開発者の日々の徒然
Tags: MySQL 仕事 | Bookmark:


«前の日記(2008-03-02) 最新 次の日記(2008-03-07)»