コミックダッシュ!等の重さ対策についていろいろと試行錯誤中です
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
今後ともコミックダッシュ!等のサービスを何卒宜しくお願いいたします。
2007/07/18 [updated : 2007/07/18 23:59]
ブログ「デジモノに埋もれる日々」「アニメレーダー」「コミックダッシュ!」管理人。デジモノ、アニメ、ゲーム等の雑多な情報をツイートします。
@ckom をフォローする
« ニコニコ動画にAmazonアソシエイトと、いつのまにかMyリスト貼り付け機能も | トップに戻る | あまとも通信 - PC向けワイド液晶はゲーム向けにも? » |
▼ はてなブックマークのコメント ▼
関連記事
ピックアップタグ
- アニメ(440)
- GSR(319)
- ライブ(79)
- イベント(207)
- コラボカフェ(35)
- VTuber(25)
- アニメ吐き出しメモ(10)
- ウマ娘(50)
- 舞台挨拶(45)
- 先行上映会(19)
- トークショー(20)
- バンドリ!(51)
- ガールズ&パンツァー(59)
- 少女☆歌劇レヴュースタァライト(60)
- ゾンビランドサガ(9)
- プリンセス・プリンシパル(19)
- スタリラ(31)
- コラム(171)
- ゲームプレイ日記(69)
- ワンフェス(13)
- コメンタリー上映(7)
- 岩浪美和(25)
- 大洗(9)
- 響け!ユーフォニアム(12)
- リズと青い鳥(9)
- RAISE A SUILEN(10)
- 艦これ(23)
- ストライクウィッチーズ(23)
- メイドインアビス(8)
- BLAME!(8)
- ヤマノススメ(7)
- ラブライブ!サンシャイン!!(11)
- HELLO WORLD(6)
- 宇宙よりも遠い場所(5)
- ヴァイオレット・エヴァーガーデン(8)
- 私に天使が舞い降りた!(9)
Amazonウェブサービスを使ったウェブアプリにおいて、負荷を減らすため、動的生成をやめて準静的生成に切り替えたとのこと。こういうキャッシュはできる限り行った方が鯖の健康には良さそう。
Amazonウェブサービスを使ったウェブアプリにおいて、負荷を減らすため、動的生成をやめて準静的生成に切り替えたとのこと。こういうキャッシュはできる限り行った方が鯖の健康には良さそう。
コメントしましょう