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番です。
オーム社
売り上げランキング: 88412

お気に入りの本です
本当のソフト開発を本当の意味でわかってもらうのにいい本
楽しい
実際に現場で使わせてもらってます
優秀なソフトウェア開発者の日々の徒然
