Amazon商品の価格変動チェック「あまとも」
コミックダッシュ!は初音ミクGTプロジェクトを応援しています
個人ニュースサイトを巡回する「メガとんトラック」
全ての記事 携プレMP3 デジカメ レコーダ ゲーム メモリ デジモノ コラム 雑談 ブログ あまとも コミックダッシュ!
前の記事次の記事
2007/07/18 23:59 - 2007/07/18

コミックダッシュ!等の重さ対策についていろいろと試行錯誤中です

カテゴリ : コミックダッシュ! タグ :

    最近、コミックダッシュ! が重い とお叱りを受ける日々が続いております。
    ユーザの皆さまにはご不便をお掛けして申し訳ございません。
    いろいろ機能追加もしていきたいところなのですが、その前にまず
    足回り整備ということで、いくつか試行錯誤をしていました。
     
    コミックダッシュ! - 集めているコミックの新刊をオートマチェック!
     
    サービスの注目度合いという意味でコミックダッシュ!の重さをご指摘頂く
    ことが多かったのですが、実際にはこのブログも含め、自宅サーバに乗って
    いる全てのサービスが平等に重い時間帯が発生していたという状態でした。
     
    その第一の要因は、実は一般ユーザの皆さまのアクセスではなく、
     
     検索エンジンやRSSリーダサービスの巡回ロボット
     
    のアクセスにあると見ています。何か異常に重いなーと感じたときに
    Webサーバの生ログを逐一観察していると、大抵の場合、
    Googlebot、Yahoo! Slurp、Bloglines、Livedoor FeedFetcher
    などの巡回ロボットが大量のアクセスをしている最中だったのです。
     
    そこで、いくつかの対策を講じることにしました。まず簡単にできる
    設定変更として、Apacheの MaxClients の設定を150→200に増やし、
    KeepAliveTimeout の設定は逆に15→10に減らしました。
     
    通常のユーザのアクセスではhtmlファイルと一緒に大量のjpgファイルなども
    持っていく必要がありますから、コネクションを繋ぎっぱなしにすることに
    価値があるのですが、ロボットのアクセスではhtmlやxmlの単体データを
    取得したら終了ですから、KeepAliveは短いほうがリソース開放を早めて
    他のユーザに迷惑を掛けにくいのではないかという判断です。
    これはそれなりに効果があったようです。
     
     
    続いて、目をつけたのは、メガとんトラックWii-Tube です。
    コミックダッシュ!のプログラム改造よりもこちらを優先しました。
    メガとんトラックの個別linkidページやWii-Tubeの個別ビデオ再生ページは
    それぞれ数十万ページが存在するにも関わらず全てPerlによる動的生成で
    HTMLデータを作って表示していました。
     
    それが何を意味するのかというと、GooglebotなどがこれらのPermaLinkを
    逐一巡回するたびに、Perlのプログラムがいちいち起動されるということです。
    例えばメガとんトラックは 既に45万ページものPermaLinkを 持っています。
    Googleにしてみれば星の数ほどある巡回対象のほんの一部なのかもしれませんが、
    45万回の巡回を動的ページにされるのは相当なサーバ負荷につながります。
     

     
    そこで思い切ってロジックを180度転換させ、メガとんトラックの個別linkidページは
    全て 静的HTMLのpublish で作り出すモデルに変更しました。情報に更新があった
    ときに静的HTMLデータ自体を再publishするという具合です。
    (もはや自分でブログシステムみたいなものを作っているのと変わりないですな・・・)
    自宅のWebサーバにはメガとん用だけで実際に 45万もの.htmlファイル
    作られた状態になっていて、それはそれで壮観ではあります。
     
    Wii-Tubeのほうは、改造と移行が難しかったため、まだ完全に静的HTML化に移行
    できたわけではありませんが、一度作られたHTMLをキャッシュとしてディスク上に残し、
    次のアクセスからはキャッシュがあればそれを丸ごと返す、というロジックにしました。
    Perlはアクセスごとに起動されてしまうものの、その処理内容は随分と軽くなっています。
     
    以上、コミックダッシュ!本編とは違う部分だけに手を入れていたワケですが、
    これらの対処によってサーバ全体の負荷上昇が多少抑えられ、重い時間帯も
    少しずつ減ってきました。ただ、まだ重くて快適に操作できない時間帯が何度も
    発生することを確認しています。今後も少しずつですが改善を試みたいと思います。
     
    なお、コミックダッシュ!などで以下のように、HTMLデータは取得完了しているのに
    Amazon画像だけが読めなくて 枠線だけが表示されるような状態になることもよくあります。
    これは、実はコミックダッシュ!やあまともで表示されている商品画像はすべて
    Amazon本家への直リンクになっているためです。すなわちAmazon側の画像表示サーバの
    ほうも悲鳴を上げているためにこういうことが起こっています。
     

     
    こればかりは私のほうではいまのところ如何ともしがたいところなのですが、
    こういった状態が続くとそうも言っていられません。結局はコミックダッシュ!やあまともの
    サービス自体の快適度に著しく影響を与えてしまいますので、必要であれば自宅サーバ側で
    画像データまで一時キャッシュするようなことも考え始めないといけないのかもしれません。
     
    皆さまにはご不便をお掛けして申し訳ございません。何卒ご容赦ください m(_ _;)m
    今後ともコミックダッシュ!等のサービスを何卒宜しくお願いいたします。

    CK@デジモノに埋もれる日々 @ckom
    ブログ「デジモノに埋もれる日々」「アニメレーダー」「コミックダッシュ!」管理人。デジモノ、アニメ、ゲーム等の雑多な情報をツイートします。



    投稿者 CK : 記事URL | コミックダッシュ! | | 2007/07/18 23:59


    « ニコニコ動画にAmazonアソシエイトと、いつのまにかMyリスト貼り付け機能も

    トップに戻る

    あまとも通信 - PC向けワイド液晶はゲーム向けにも? »


    ▼ このブログの新着記事 ▼



    ▼ コメント ▼

    ご自由にコメントください(=゜ω゜)ノ  ▼ コメント入力欄を開く ▼
    ※管理人は多忙のためお返事はほとんどできません(スミマセン)。
    スパムおよび本文と無関係なコメントは削除対象になる可能性があります。


    ▼ はてなブックマークのコメント ▼


    ▼ トラックバック ▼

    このエントリーのトラックバックURL:

    ★コミックダッシュ! 10,000人突破ありがとうキャンペーン!(9/18~10/23)
     
    デジモノに埋もれる日々 : (C) CKWorks