FC2ブログ

Entries

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

コメント

[C4] 管理人のみ閲覧できます

このコメントは管理人のみ閲覧できます

コメントの投稿

コメントの投稿

管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://oyagweb.blog.fc2.com/tb.php/13-b7186c33
この記事にトラックバックする(FC2ブログユーザー)

備忘録

7月に70万PV/日で喜んでいたのですが、その後もアクセスは増え続けており今はこんな感じになってます。
20141018アナリティクス

10月13日に169万PV/日まで来てしまいました。



8月末(90万PV/日)
以前からwebとdbは分けていたのですが、いよいよwebサーバーが厳しくなってきました。
どうもディスクアクセスが足をひっぱっているようでしたので、画像サーバーを分けてみました。
ちょっと落ち着きました。



9月下旬(130万PV/日)
webもdbも夜11時以降はぎゅうぎゅうです。
特にdbはアクセスが激しすぎてoom killerがしょっちゅうMysqlを落とします。
これはいかん、ということでブログパーツ用にサーバー借りました。

Mysqlの負荷軽減をする場合、レプリケーション機能を使ってサーバーを増やすのが一般的です。
Mysqlではinsert、update、deleteを行うマスターdbとselectを行うスレーブdbを簡単に設定できますが、phpなどのアプリケーションは書き込みと読み込みでdbを分ける必要があるので、通常プログラム修正が必要です。

しかし、ブログパーツはdbから読み込むだけですので、これ幸い。
ブログパーツ用サーバーにwebとdbを乗せてお気楽に負荷分散することができました。
これでもちょっと落ち着きました。



10月上旬(160万PV/日)
もう限界。dbサーバーのロードアベレージが100を超えるぐらい限界です。
1分間に2000PVを超えるぐらいからロードアベレージが上昇しはじめ、後は坂道を転がるように処理が追いつかなくなります。
webサーバーも10を超えたので、両方の負荷分散にかかりました。

まずdbですが、9月下旬と同じようにレプリケーションを使った負荷分散を図ります。
phpのプログラムでdbの接続先を複数持たせられるように修正しました。
次にhaproxyをインストールし、参照系のクエリ(select)の場合はhaproxy経由でスレーブdbサーバーに接続するようにしました。insertなどの更新系のクエリは今まで使っていたマスターdbサーバーに接続します。
スレーブdbサーバーは2つ借りましたので、今の倍ぐらいのアクセスまで耐えられるハズです。

webサーバーはnginxのリバースプロキシの機能を使って負荷分散しました。
サーバーを1つ追加し、今までのwebサーバーとあわせて2台体制になっています。
webサーバーを複数利用すると問題となるのがセッションですが、すでにmemcachedに保存していたので大丈夫でした。
あと、dbへの問い合わせを減らすため、ファイルキャッシュで保存している情報(人気キーワードとかよく表示する部分)があるのですが、それはrsync+cronで同期をとることにしました。



これから先はアクセスに応じてサーバーを追加するだけというお気軽運用になりました。
めでたしめでたし。








スポンサーサイト

コメント

[C4] 管理人のみ閲覧できます

このコメントは管理人のみ閲覧できます

コメントの投稿

コメントの投稿

管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://oyagweb.blog.fc2.com/tb.php/13-b7186c33
この記事にトラックバックする(FC2ブログユーザー)

Appendix

プロフィール

アラフォーおやじ

Author:アラフォーおやじ
何か作りたくなったおやじです

最新記事

フリーエリア

おすすめ動画!
フッターです
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。