###前提・実現したいこと
とある掲示板サイトを個人で運営管理しています。
ユーザー数は平均で1日で300人ほどで、
1時間でだいたい書き込みがざっくりですが1000~2000件ほどです。
アクセスが集中しがちな時間帯になると、書き込みが見れるページだけが
重たくなるので、そこを改善したいです。
少ない情報で申し訳ないのですが、
一般的な具体的な改善案や、試した事に対しても効果の有無や
問題があればご指摘頂きたく思います。
###発生している問題・エラーメッセージ
アクセスが集中しがちな時間帯になると、
書き込みが見れるページだけが重たくなる。
長い時で読み込みに30秒~1分かかる場合もあります。
###該当のソースコード
投稿が書き込まれたデータベースを読み込んで、
表示する処理はだいたいこのような感じです。
//ブロック情報の取得
$UserBlockList = GetBlockList($dbBlock, $MyUserID);
foreach ($db->query( "SELECT * FROM 投稿一覧 WHERE スレッドID = '$TID' ORDER BY ROWID DESC" ) as $row) {
//ここで投稿者のユーザー情報の取得
$UserInfoArray = GetUserInfo($dbProf, $row['投稿者ID']);
//ブロックチェック!!
if( $BlockUserIDList != null ){
if( isset($BlockUserIDList["{$row['投稿者ID']"]) ){
continue;
}
}
echo "<div class"contents">
//省略していますが、ここで
//投稿情報(時間、投稿本文)ユーザー情報(ユーザー名、プロフアイコン)
//を表示しています。
###試したこと
■データベースの分割。
元々たった1つのデータベースで管理していたので、そこが原因ではないかと思い、
およそ100MBのデータベースを1~3MBほどの複数のデータベースに分けました。
(少し効果があったような気はするがまだ重たい)
■ページの分割
A.phpという書き込み閲覧ページを、A1.php,A2.php,A3.phpといった具合に
複製し、当掲示板内固有のユーザーIDで判別しアクセスするページを分けています。
※例.ユーザーID(1~100)はA1.phpで閲覧ください。的な感じです。
(結局共通してincludeしているphpファイル(API)があるので意味なかったように感じます
この場合includeしているファイルも複製し分ける事で改善するのでしょうか?)
■広告数の減らした。
広告を10枠ぐらい書き込みと書き込みの間に、
ランダムな位置に表示させていたのを、
「アイモバイル(広告媒体)」
Webアイコン広告1枠(icon x 4)
バナー1枠(256x64ぐらいのやつ)
四角のでかいやつ1枠(256x256ぐらい)
までに減らしました。
(あまり効果は無かったように感じます)
###補足情報(言語/FW/ツール等のバージョンなど)
■システム・環境
システムは主にPHPで設計しており、データベースはSQLiteを使用しています。
サーバーは共有サーバーのレンタルサーバーロリポップで一番高いプラン。
私個人の技術はWebプログラム経験は独学レベルで2年ほどで、扱えるのはPHPだけです。
■1日のアクセス状況
リクエスト成功件数 383093 件
リクエスト成功件数の日別平均 209196 件
ページリクエスト成功件数 54 件
ページリクエスト成功件数の日別平均 28 件
ステータスコード不在ログ行数 -
リクエスト不成功件数 53111 件
リダイレクトされたリクエスト件数 - 件
ステータスコードつきリクエスト数 -
異なるリクエストファイル数 41796 ファイル
異なるサービスホスト数 1347 件
異常ログ行数 -
不必要ログ項目数 17015
データ転送量 4899015336 バイト
データ転送量の日別平均 2675230217.610921 バイト
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/05/18 16:00