えるざっぷの日記

えるざっぷの日記とか

Webサービスを作ったらファイル転送量に注意しよう思った

先日


ドミネーター

というサイトを作って公開をしたのだが

 

 

公開(12月 13日 21時頃)

 

嬉しいことに好評で Twitter 拡散されていったのだが

 

公開終了(12月 14日 3時頃)

 

レンタルサーバーで運営しているのだが

サイトにアクセスしてみると

 

509 エラー

 

他サービス含めて自分のHP もアクセスできなくなってしまった

慌てて鯖に課金、ドミネーターを停止

 

 

アクセスは確かに多かった、が...

たかが 2000アクセス程度で転送量 約30GBのバンド幅制限を越すのはおかしい

 

 

調べてみた

クライアント & サーバー

まずクライアントとサーバー間

f:id:elzup:20150116034802p:plain

約650KB (560KBキャッシュ)

 

これは原因ではなさそうだ... にしても少し大きい気がする

CSSフレームワーク(Foundation) がこの内の殆どを占めていた

後回しにはするが、この辺もしっかり見なおしたほうが良さそうだ

 

サーバー & Twitter

次に思いつくのは バックエンドでの TwitterAPI へのリクエスト

とは言ってもそこまで大量に TwitterAPI を使ってるわけではない

...と思っていたのだが

 

一回のアクセスにつき最大で 200ツイート x 8ユーザ

計測してみた所大体 300kB x 8 = 2.4MB ??

計算が間違ってるかもしれないが仕様を変えて削減を考えよう...

 

 

サーバー & サーバー

そして発見した最大の原因はサーバーに置いた辞書ファイルだった

ローカル環境で Apacheアクセスログを見ていたら発見した

f:id:elzup:20150116041420p:plain

合計で 3MB もあるが、さらにそれを非同期で毎回呼び出していたので大量のファイル転送が行われていた

PHP の file_get_contents 関数を使う時に絶対パスで指定していたのが問題で

相対パスに変えた所ファイル転送されなくなり解決したようだ

 

 

この経験に懲りてサービスを公開するときはよくサイトの軽量化を見直そうと思う