PHP+MySQLアクセス解析プログラムのその後名前: 小川 邦久 リンク: http://kunisan.jp/ 日付: 2010年3月5日
設置から3週間ほど経過したアクセス解析プログラムですが、ようやくここに来て、MySQLの動作が落ち着くようになりました。当初はテーブル1つで全サイトのアクセスデータを取っていましたが、さすがにこれではサイズが大きすぎて、Webサーバーとして稼働しているネットブックが高負荷になってしまいました。 そのため、サイト毎にテーブルを分割する方式を取りました。しかしこれでも一日数万アクセスのあるブログパーツの影響で、改良から10日ほどでCPU使用率が100%に達する現象が頻繁に出るようになりました(平均で30%強)。その後、ブログパーツをアクセス解析の対象から外してみたところ、CPU使用率が平均10%に見たない数字になりました。 ここまでで大分落ち着いてはきたのですが、やはりデータが貯まってくると、「問い合わせ」の際の負荷が大きくなる現象は解消できていません。特にページアクセスの度に行われるデータ追加処理にも、事前に「問い合わせ」の処理が不可欠なので、時間が経ってデータが貯まれば貯まるほどCPUが高負荷になるという状況がそのまま続いていました。 そのため、サイト毎に分割したテーブルを、さらに「アクティブデータ」と、「アーカイブデータ」に分割しました。「アクティブデータ」はページアクセス時などデータの読み書きに頻繁に使用されるデータ、「アーカイブデータ」は分析・参照用などサイト管理者(つまり私)のみが使うデータです。 「アクティブデータ」は24時間に1回、自動的に1週間以上前に追加されたデータを「アーカイブデータ」に移動する処理を行っています。これにより、データの読み書きに使うテーブルの大きさを制限できるため、ネットブックの負荷がある一定のレベルを超えることがなくなりました。 なお、データを分析する際には、MySQLの「UNION ALL」コマンドで「アクティブデータ」「アーカイブデータ」を縦に連結してまとめるようにしています。 表には出てこないアクセス解析プログラムを、ここまで詳細に語るのも何なのですが、近い将来プログラムをセットで公開する予定です。使う人がいるかどうかはわかりませんが、PHP+MySQLが使える環境であれば、どこでも動くような形に改良しておこうと思います。 Web管理関連記事(リンク一覧): さくらのレンタルサーバ 新サーバーへの移行 / SPF、DKIM、DMARCの設定とネームサーバー(DNS)設定のトラブル / さくらレンタルサーバーのアクセス履歴をPHPで表示 / PHPで画像のアップロード(さくらレンタルサーバーのPHPでImageMagick) / KUNISAN.JPサイトのメンテナンス(2018) / ...(記事連続表示)
最近の記事: MLB中継や選手・監督インタビューで英語学習 / くつとばしゲーム - 小6でBASICを覚えたての頃に作成したゲームをプチコン4で再現 / 息子のPCを新調 - GIGABYTE ゲーミングノート GAMING A16 CMHI2JP894SH / さくらのレンタルサーバ 新サーバーへの移行 / 来世は、きっとイタリア人 / 懐かし昭和の10円ゲーム3 - プチコン4の別の自作ゲームから物理演算系関数の流用 / ベルーナドーム(西武ドーム)で西武xロッテ戦 / ベルーナドーム(西武ドーム)で西武x楽天戦 / NetflixでSeinfled(となりのサインフェルド)の全エピソード視聴完了 / Headwolf(ヘッドウルフ) WPad7 11インチ Androidタブレット
■ ホームへ
|