2015/03/01(日)アクセス数制限と負荷対策
アクセス数制限と負荷対策
アクセス数制限
さくらインターネットのコントロールパネルを見ると、しばらく前からアクセス制限がかかっているようです。
(1時間ごとのHit数、503だけ右軸)
アクセスログを見ても、上のグラフの通り、21日以降は「503 - Service Unavailable」がいくつか発生しています。
原因
ちょっと調べてみました*1が、この制限は、転送量ではなくて同時アクセス数によるようです。
ログを見ると503になっているのは画像が多くて、他はJavaScript/CSSファイル、若干のWikiページでした。(もっとも、これだけだと単にアクセスされるリソースの中で画像が一番多いからそうなっただけかもしれませんが。)アクセスされている画像を確認してみると、モンスター、家具ページなど画像が多いページから参照されている画像が多く、画像が多いページへのアクセスが要因になっている可能性があります。
対策
画像が多いページへの対策としては、表示されている範囲+αの画像だけを読み込む遅延ロードを既に行っていますが、これはどちらかというと転送量対策で同時アクセス数はあまり気にしていませんでした。(ただ、快適さをできるだけ損なわないように+αをかなり大きくしていたので、2/26頃に少し範囲を絞りました。)
そこで、現在使っている遅延読み込みプログラムを少し改造して、画像の同時読み込み数を最大2に制限してみることにしました。とりあえず、これで少し様子を見てみます。
JavaScript/CSSファイルも影響しているかもしれないので、画像のようにキャッシュを強く効かせる*2ようにしても良いかもしれません。
もうちょっと根本的な対策としては、画像を別のサーバーに置くことでしょうか。
制限の解除
リソース情報に記載されている「制限」について|さくらインターネット公式サポートサイトによると、対応完了後にメールで連絡すると、制限を解除してくれるようです。
でも、制限されない程度に対策する必要があるなら制限はあってもなくても同じような・・・。
最近2ヶ月は、負荷状況はほとんど変化していなかった(どちらかというと減少傾向)ので、何がトリガーになって制限されたのかは聞いてみても良いかもしれません。(制限されたタイミングがたまたま2/21だっただけで、もともと制限されるようなアクセス数だったのかもしれないですが。)
追記
21日頃からサーバーのload averageが増えていたので、サーバー全体としての負荷が増えたのを契機に制限をかけることにしたのかもしれません。