2005年03月21日

処理の高速化について

いつもランキング☆ナビをご利用いただきありがとうございます。おかげさまで利用者の増加に伴い、処理時間の遅延が目立ち、新規登録サイトを含め全てのバッチ処理に遅延が発生しておりました。昨年の10月くらいから断続的にいろいろな手段を施してきたのですが、あまり良い解決策はありませんでした。
試みたことはいろいろなものがありますが、少しご紹介したいと思います。
・データベースエンジンの置き換え(一部MySQL化)
 ⇒約2倍ほどの処理速度向上効果あり
・ディスクの増設
 ⇒検索速度に効果あり、その影響で若干の統計カウント処理も向上
・リピータカウントオンメモリー化
 ⇒膨大なデータのため断念
・リピータカウント一部オンメモリー化
 ⇒オンメモリーにした部分にヒットすることが少なく断念
・メモリーの増設
 ⇒期待していたほどの効果は無し(限界がある)
・一定のアクセス数に満たないサイト様のリピータを測定しないようにする
 ⇒処理速度が上がるほどのデータ処理件数に影響無し
・バナーをブラウザに一定時間キャッシュする。
 ⇒正常なカウントが取得できないことが発覚
となかなかうまくいきませんでした。
そして半ばあきらめモードになっていた最近の中でふと思ったことが、
データベースに書き込みを行う際のインデックスの調整として、ログデータをSELECTするための最適だと思われていたインデックス(255バイト)に変わり、SELECTする際には最適ではない、15バイトのインデックスに置き換える事を検討しました。
理由としては、データをセレクトする際の遅延より、書き込みをする際のインデックス領域を作成する際の遅延の方が大きいかもしれないと思ったためでした。早速プログラムを修正してみると効果は思った以上でした。考えてみればもっと早くに試しているべきことだったと思いますが、身近なところに回答があるものだと力が抜ける思いでした。完全に満足したわけではないのですが、当面はプログラムに手を入れずにすむかと思います。
登録されるまでに一日以上かかるなどご迷惑をいろいろおかけして申し訳ありませんでした。
また現在の課題と致しましては、夕方から12時ごろまでかなりネットワークが重くなる点です。実際にどの部分が重くなっているのか判断しかねているところがあります。この点についてはまた折をみて改善していきたいと思います。
  

Posted by rnavi at 12:34Comments(0)TrackBack(8)