Latest Entries

スポンサーサイト

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

1年サイト運営して経験した5つのこと

昨年11月末に動画エロタレストをオープンしました。
今では220万PV/日にまで大きく成長しました。
掲載しているブログ管理人様と使ってもらっている閲覧者様に感謝です。

さて、この1年間運営していろいろありましたので、ランキング形式で発表します。

5位 Nginx(えんじんえっくす)
最初はWebサーバーにApacheとモジュール版PHPという、ごくごく一般的なWebサイトで運営していました。
しかし、今年2~3月頃に毎週ごとにPVが倍々に増加し続け、Apacheの設定変更では対応しきれなくなりました。
そんな中、Nginxが超速いと風のウワサで聞き、藁にもすがる思いでNginx+PHP-FPMにしてみました。
結局は借りているサーバーのグレードを上げて対処することになりましたが、Nginxにしたおかけでリバースプロキシやサーバー分散、画像のリサイズ、などなどその後の問題解決が簡単に行えるようになりました。
Apacheでも実現できますが、Nginxは設定が簡単です。あの時乗り換えてなかったら今のサイト規模にはなっていなかったことでしょう。

4位 テレビ
天使もえ(あまつか もえ)って知ってます?
検索してもらうと分かりますがAV女優です。
「水曜日のダウンタウン」というテレビ番組で一気に有名になりました。番組の企画で芸人にドッキリをしかけるため裸になりました。
7月にデビューしたばかりの新人女優なのですが、番組公開1週間前の10月30日は150回の検索回数でした。
1週間前に次回の番組内容が公開されたのでしょうか、10月31日は860回に増えました。
その後の1週間は650~900回程度の検索回数となり、番組放送日の11月5日に16,400回に激増しました。
さらに番組放送後にネット上で話題になり、最高は放送2日後の11月7日20,800回を記録、その後は沈静化していきました。
テレビを見なくなった、と言われて久しいですが、マスメディアの力を見せ付けられました。

3位 サイトデザイン
アクセス増加に合わせてサーバーを増強していたら、いつのまにか9つも借りていました。
自分のお小遣いではまったく足りなくなったので、広告を設置して運営費の足しにしています。
広告枠はこのページのとおり用意し、パソコン向けではサイト上部のヘッダー枠が一番価値があると思っておりました。
しかし、クリック数を計測してみるとヘッダー枠はフッター枠よりクリック数が少なくなっています。
一般的にWebページは左上から見始めるので、右端は目が届きにくい場所です。
しかし、ファーストビュー(スクロールせずに見られる範囲)にもかかわらずここまでクリック数が少ないとは考えていませんでした。
当初は広告の設置を考えていなかったので、無理なく広告を設置する場所が非常に少なくて困っております。

2位 不正アクセス
ウチのサイトがクラッキングされたとかではありません。
動画エロタレストは掲載ブログ様とアクセストレードをしています。
アクセストレードとはブログパーツや記事紹介などで自サイトの閲覧者をよそのサイトに流す行為です。
アクセストレードでアクセスをもらったお返しに、対象サイトの記事紹介するなどして自サイトからもアクセスを送ります。
これにより人気サイトはさらに人を集めることができます。
動画エロタレストではアクセスが多いサイトの記事は上位表示することでアクセスのお返しをしています。
しかし、ここでよからぬことを考えるヤツもいまして、通常はリンクをクリックしてもらうことでアクセスを送るところを、imgタグに対象サイトのURLを書くことで不正にカウントアップさせる手法が出てきます。
通常、どこのサイトからアクセスが来たかはリファラーで判断しています。
リファラーとは、どのページから来たかを教えてくれるブラウザの機能です。
リンククリックもimgタグも共にリファラーは参照元を示すので、アクセスを送られた側からは違いが分かりません。
他にもインラインフレームを使って同じことができます。
ここまで汚いことをしてでもアクセスを集めたい人がいるのかと驚きました。

1位 恩
動画エロタレストの最初の1年は大成功しました。
そのため、今ではえらそうに掲載依頼をいただいたサイト様に注文をつけたり、ワンクリ詐欺サイトへのリンクを発見したら問答無用で掲載停止とかしています。
しかし、開設当初はアンテナサイトの意味がよくわかっておらず、掲載サイトのRSSを取得してそれをただ並べていただけのどうしようもないサイトでした。
転機は2月に訪れました。
ある方からサイトの問題点をいろいろ指摘してもらいました。
サイトのデザインや機能、アクセストレード、ブログパーツ、広告、SEO、掲載サイト、詐欺サイト、などなど、あまりに多くのことを教えてもらいすぎております。
見返りが少ないにも関わらず、親身になって考えてもらったおかげで、動画エロタレストの今があります。

2年目の目標はこの恩を返すことです。




スポンサーサイト

備忘録

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で同期をとることにしました。



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








ロードアベレージ105

もうだめぽ

サイト運営難しい

動画エロタレストというエロ動画アンテナサイトを運営しているのですが、アクセスが日増しに増えて大変です。
今まで何やったかの備忘録です。
※PV/day(1日当たりページビュー)は各月の15日前後の数字です。

2013年11月末
0PV/day
効率的にエロ動画を探したいと思い、週末の2日使ってサイト開設
GMOクラウドVPSマイクロ(メモリ2Gのやつ)を使用

2014年1月
500PV/day
毎週倍々にアクセスが増加しだす

2014年2月
8,000PV/day
さらに毎週倍々にアクセスが増加

2014年3月
60,000PV/day
夜11時以降はロードアベレージが常に5以上になり、アクセスしずらい状況が続く。
Apache+PHPからNginx+PHP-fpmに乗り換えたり、Mysqlの設定調整を毎日やってもアクセス増加に追いつかなくなる。
そのため、サーバーをミドル(メモリ6G)に変更して対応。

2014年4月
80,000PV/day
サーバー変更してからアクセス増加がパタッと止まり意気消沈。
と、思ったら中旬から検索エンジン経由のアクセスが増えだして毎週倍々の増加になる。

2014年5月
250,000PV/day
毎週倍々はなくなったが、Mysqlのエラーが何やっても止まらなくなる。
別サーバーとしてミドル(メモリ6G)を借り、本腰入れて設定する。
今まではフルテキストインデックスを使うためにストレージエンジンにMyisamを使っていたが、更新時にテーブルロックされて更新待ちの大行列ができていた。
そのためinnodbでフルテキストインデックスを使えるようMysqlのバージョンを5.6に更新した。
innodbを使うことで更新時は行レベルロックになり、更新を待たずに参照や他の更新が行えるようになり、更新待ちがなくなった。

2014年6月
400,000PV/day
サーバーを分けたことで劇的にサーバー負荷が下がったが、DBサーバーで数日ごとにoom-killerがMysqlをキルする状態になる。
メモリーを使い切っていない状態でも突然スワップを使い果たしているようで、どうにも解決方法が見つからない。
そもそも、未使用メモリーが1G以上残っているのに、Linuxがcacheで使ってくれないのが不思議だ。
とりあえずSqlの問い合わせ回数を下げてみるか、とmemcachedを入れてみる。
サイト表示速度が超絶速くなり、閲覧が超快適になる。


2014年7月
600,000PV/day
memcachedのおかげでMysqlのクエリ数はかなり減ったが、oom-killerは相変わらず作動する。
ブログパーツの表示回数もどんどん増えているので抜本的な対策が必要だが、相変わらず原因が分からない。

で、昨日。
Mysqlのslow-queryログの設定をクエリ実行5秒以上から1秒以上に変えてみると件数カウントのSqlがかなりの回数記録された。
Sql文を見るとインデックスを使わない書き方だった。
んで、書き直した。
どうやら正解を探し当てたみたい。


長年の不具合解決と700,000PV/day達成の記念カキコでした。

サイト分割

動画エロタレストへのアクセスが増えすぎたのでもう一つサーバー借ります。
今のサーバーでもload Averageがアクセス多い時間帯で5以下なので、まだなんとかやっていけますが、日増しにアクセスが増えて設定のチューニングばっかりに時間を取られています。
それならいっそのこと余裕のあるサーバーを借りて新サービスの開発に時間を割きたいのです。

それと毎時0分40秒あたりに30秒程度Disk I/Oが急上昇するトラブルがあり、原因が分かりません。
Cronを切っても発生しているので、Mysqlのsql文かインデックスが不適切なんではないかと想像していますが、ログに何も残っていないので、お手上げです。
とりあえず重たいサイトを分けることで全体の負荷自体を下げたいです。

しかし、まだ広告なしなのでお小遣いからの出費が痛いです。

Appendix

プロフィール

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

最新記事

フリーエリア

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