[記事をツリー上に表示] [記事を時間順に表示] [コメントを投稿]
【記事番号:298】 一日数万ー数十万アクセスでCGI式だと常時CPUが100%になってしまう人は

- -


投稿日時: 03/11/30 04:06:01

一日数万ー数十万アクセスで、CGI式だと閲覧時のPerlによるCPU負荷が100%になってしまう状態の人(←ほとんどいないと思いますが)は以下の改造をしてみてください。
注:クッキー無効化などのデメリットがあるので、普通の人はやらない方がいいです


1.設定部に以下のブロックを足す
#
# <CPU負荷が常時100%になる高アクセスサイト対策> R7 NEW
#
# 一日数万から数十万アクセスあるサイトで、Perl言語を用いた
# CGIによるCPU負荷が常時100%になってしまう人は、掲示板の
# 内容をキャッシュさせたHTMLファイル(index.html)を作り、
# このindex.htmlを掲示板のURLとして周知することにより、
# CGIよるCPU負荷上昇を抑えることができます。
# なお、設定がややこしいこと、クッキーが効かなくなること等
# のデメリットがありますので、普通の人は使わないでください。
# (使い方詳細は新FAQページを参照)
#
$PM{'make_bbs_html_top'}=1;# (1=yes,0=no)デフォルトは0
#
# Yesにした場合は必ずPerlのパスを設定してください。
$PM{'perl_prog'}="perl.exe";# Win32用
#$PM{'perl_prog'}="/usr/local/bin/perl";# UNIX 用

2.sub init_valiablesに以下の部分を足す

# 2003.11 コマンドラインの引数を取得する
$total_agvg=@ARGV;
if(@ARGV > 0){
for($i=1;$i<=$total_agvg;$i++){
$ARGV{$i}=shift @ARGV;
}
}

3.以下のサブルーチンを追加する

#=============================================================#
# CGI負荷100%の高ロードサイト用に、BBS先頭ページをHTML化する
#==============================================================#
#
sub make_top_html_for_high_load_svr{

if($PM{'make_bbs_html_top'}==1){
open (COMMAND,"| $PM{'perl_prog'} $cgi_name make_html_top>index.html");
close (COMMAND);
}
}

4.メインルーチンの
「モードが投稿モードの場合」「モードが削除モードの場合」において、
jump_htmlの前にmake_top_html_for_high_load_svrのサブルーチンを呼ぶ

&make_top_html_for_high_load_svr;# 超高負荷サーバ用にHTMLファイルを出す
&jump_html;# パラメータクリア用HTML

5.メインルーチンの最後の部分にContent-type出力抑止分岐を入れる

===========ここから周辺部を抜き出し===================
}else{
# モードが指定されてない場合,掲示板を表示
&protect_from_BBS_cracker if($no_disp_for_cracker==1);# 荒し対策
&protect_from_NON_member if($use_view_passwd_flag==1);# 会員限定
&count_bbs if($PM{'use_count'} == 1);# アクセスカウンタ

# 超高負荷サーバ用にHTMLファイルを出す
if($ARGV{1} eq "make_html_top"){# コマンドラインで呼ばれた
}else{
print "Content-type: text/html"."$Netscape4x_ch_set"."\n\n";
}

# HTMLヘッダ,ボディ.(書換えは初期設定の所で行う)
&top_html;
$COOKIE{'body'}="";
&output_form_html;# フォームを表示
&output_html("$file");# 掲示板を表示
exit;
}
==============ここまで============================

これで、index.htmlを周知すればいいだけです。
簡単です。


関連記事
No. 298 一日数万ー数十万アクセスでCGI式だと常時CPUが100%になってしまう人は <---
No. 301 β版、改造パーツ配布ルームにて

コメントを投稿

名前(必ず記入してください):

PASS(必ず記入してください)janis:

メールアドレス(省略可):

URL(省略可):

件名(必ず記入して下さい):

記事(必ず記入して下さい):
記事を引用する

名前・メール・URLを記憶する

BestBBS!! 0.4.3