Xサーバーにおける、PHP(またはMysql)のアクセス数調査を行いたいです。


レンタルサーバーサービス Xserverに設置したPHPスクリプトと、それに連携するスマフォのアプリを作っています。

スマフォのアプリは、サーバー上のPHPを経由して、MySQLに読み書きします。
デフォルトでは、毎秒一回、PHPにデータ読み込みのリクエストを発行しており、
そのアンサーに「次はn秒後以降にリクエストを発行していいよ」というデータを含んでいます。

その「n秒後」をサーバー側の負荷に応じて決定したいのですが、方法が分からずに困っています。
具体的には、PHPスクリプトに対する毎分のアクセス数を記録し、そのアクセス数に応じて「n秒後」を決定したいと思っていますが、どのような方法がありますでしょうか?

現在は、上記の「n秒後」を求める部分以外はほぼ完成しています。

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2013/09/30 21:05:03

ベストアンサー

id:TransFreeBSD No.1

回答回数668ベストアンサー獲得回数268

真面目にリアルタイムのアクセス数を取ろうとすると自分でアクセスカウンタのような物を作る事になるんじゃないでしょうか。
アクセス毎にデータベースに時刻を持つレコードを挿入&一定時間以降を消去して件数取得か一定件数以降を消去して最古の時刻を得るか。

ただ、面倒だしちょっと負荷が気になりますので、代替手段を考えても良いかもしれません。
そもそもがサーバ負荷が上がるのを防ぐためですので、代替手段は何がネックになるかによるでしょう。

データベースサーバがネックになるならSHOW STATUSで見てみるか。
http://dev.mysql.com/doc/refman/5.1/ja/show-status.html
http://dev.mysql.com/doc/refman/5.1/ja/server-status-variables.html
Bytes_sent, Connections, Questions, Threads_connectedあたりが指標になるでしょうか。

取得が簡単なのはsys_getloadavgによるロードアベレージ。
http://jp1.php.net/manual/ja/function.sys-getloadavg.php

もしくは/proc/meminfoで空きメモリを見てみるか。
http://www.itmedia.co.jp/enterprise/articles/0803/04/news006_2.html
http://wiki.bit-hive.com/linuxkernelmemo/pg/proc%2Fmeminfo

あと、本当は多分server-status使えると良いのかも知れない。
http://www.arcetri.astro.it/manual/ja/mod/mod_status.html
http://www.hitachi.co.jp/Prod/comp/soft1/manual/pc/d3U1720/EU170055.HTM
ReqPerSecとかIdleWorkersあたり?

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません