CGIのCPU使用率を下げるには?
[上に]
[前に]
[次に]
おおもり
2000/05/17(水) 00:20:31
ネットサーフレスキューさんのショッピングバスケットバージョン3
http://www.rescue.ne.jp/cgis/cargo3/ を使おうとしているのですが
CPU使用率(telnetを使ってtopで見ると)が凄いのです。
(ソフトのせいではないと思いますが)
かごに入れるとき 削除するとき 最後の注文のときなど cargo.cgi
が動くときに ・ ・ ・ ・ ・ %CPU %MEM TIME COMMAND
と並んだ%CPUのところが80%以上になることがあります。
共用サーバーですので使用禁止にならないかと心配で質問しました。
商品ファイル数が多くてこのようなことになるのかもしれません。
CSV形式のファイルが5個ありそれぞれが80KBぐらいあります。
設置と改造が少しできるレベル(<-自分)で負荷を下げる方法がありましたら
どなたかご教示下さいませ。
有名なところ(レスキューさん)ですしその辺は考えられていると思いますので
無理なのでしょうか。
よろしくお願いします。
D.D.
2000/05/17(水) 01:17:11
Perlを使っていると勝手に解釈しますが、mod_perlとかはどーでしょうか?
D.D.
2000/05/17(水) 01:18:33
あ、Apacheを使っていて、それの管理者権限がある場合です。
まあ、管理者権限は必須ではないのですが。
# そういうApacheが使えるならば、ですけど。
おおもり
2000/05/17(水) 01:58:21
お答えありがとうございます。
サーバーはApacheですが管理者ではありませんので。^^;
mod_perl というのは聞いたことしかありませんが1ユーザーの希望では
組み込んではもらえないのではないかと思います。big.or.jpです。
びび
2000/05/17(水) 02:39:09
>有名なところ(レスキューさん)ですしその辺は考えられていると思いますので
>無理なのでしょうか。
はっきりいって、レスキューさんとこのCGIはあまりデキがよくないです。
B-Cus
2000/05/17(水) 14:20:20
> %CPUのところが80%以上になることがあります
そもそも、CPU 利用率って負荷がかかっているかどうかの
指標になり得るんでしょうか?
> CSV形式のファイルが5個ありそれぞれが80KBぐらいあります。
dbm 形式にして、tie (dbmopen) でデータをいじくるか、
require "datafile" とするだけでデータがセットできる
ようなデータファイルの形式にするとか。要は
%data=(
Book=>{
Value=>1500,
Tax=>1,
Num=>10,
},
Bag=>{
Value=>23000,
Tax=>0,
Num=>20,
},
);
とかいうファイルを作っておいて、perl が直接解釈
できるようにしておく。
# dbm ではリファレンス情報が保存されなかったはず。
ふじ
2000/05/17(水) 15:26:11
CPU使用率が高い
↑他のプロセスが暇だから、多くのCPU時間をOSが割り当ててくれている。
てこともあるので、一概に負荷が高いとは言えないのでは。
それはそれとして、UNIXのApacheなら
RLimitCPUとかいうディレクティブがあるようです。
#使ったこと無いから効果の程は分かりませんが。
http://japache.infoscience.co.jp/japanese_1_3/manual/mod/core.html#rlimitcpu
おおもり
2000/05/17(水) 16:26:36
お答えありがとうございます。
>そもそも、CPU 利用率って負荷がかかっているかどうかの
>指標になり得るんでしょうか?
違いますか。勉強不足でして、ただ数値が大きかったため、驚いた
のです。通常の掲示板などでは数%でしたので。
ふじさんの
>↑他のプロセスが暇だから、多くのCPU時間をOSが割り当ててくれている。
>てこともあるので、一概に負荷が高いとは言えないのでは。
とのお答えからしましても、大丈夫なのでしょうか。
たしかに、同じと思える(勝手にです)処理の時でも、時間帯により
40%〜80%とばらつきがありました。
>dbm 形式にして、tie (dbmopen) でデータをいじくるか
私の場合、ローカルで編集してアップロードする必要があるのです。
と言いますか、dbm 形式の CGI を扱ったことがないので。^^;
B-Cus
2000/05/17(水) 22:40:18
> RLimitCPUとかいうディレクティブがあるようです。
これはおそらく、設定した時間以上 CPU を使ったプロセスは
強制終了させられるというもので、プロセスの優先順位を
いじるものではありません。念のため。
> とのお答えからしましても、大丈夫なのでしょうか。
だから、%CPU だけでは大丈夫かどうかは判断
できないんじゃないですか、ということです。
おおもり
2000/05/18(木) 15:10:09
[[解決]]
>だから、%CPU だけでは大丈夫かどうかは判断
>できないんじゃないですか、ということです。
はい、わかりました。
すべてのファイルを順番に開いて処理しているようなので
今回の問題はしかたないようですね。
%CPUだけでは、判断できないということがわかりかなりの
収穫でした。
みなさんありがとうございました。
[上に]
[前に]
[次に]