このページは福井県立大学の田中求之が2006年1月まで運用していた Mac のサーバ運用に関する会議室 「Web Scripter's Meeting」の記録です。情報が古くなっている可能性がありますのでご注意ください。

perfoma6410+OS7.6+Macperl <-> PowerMacG3+OS8.1+Macperl

発言者:寺港みやび
( Date Tuesday, October 17, 2000 16:43:43 )


webster3.0.2を

いままで
performa6410+OS7.6+Macperl5.0.2r4
で動かしていたものを

PowerMacG3+OS8.1+Macperl5.0.2r4
に移し変えてみたところ

MacOSのメモリ割り当てがアクセスの度に
増加してそのうちメモリ不足になって
ファインダーエラーで止まってしまう
現象に出くわしました。

メモリを食っていくアクセスは
CGIがらみ全てに起こり、SSIを使う使わないとは関係ないようです。
CGIだけをリクエストされた時にも起こります。

またperform6210の時はCGIに多少アクセスが
集中しても遅れてもこなしていたのですが
PowerMacG3ではすぐにアップルイベントの
タイムアウトを返してしまうようです。

websterには
admin,auto binhex,byte server
ftp,powerkey pro ticker,ssi,vertual hosts
を入れてあり
MacOSの仮想メモリは切です。

performaの時は他にもDNSなどを同じホストで
動かしていましたが、PowerMacでは現状
上記のものしか動作させていません。

こんな経験をされた方いらっしゃいませんか?

#少々気掛かりなのはPowerMacにMacPerlを
#入れた時もしかしたら68k用のアーカイブも
#一緒に解凍したかも・・・記憶にありません。

田中求之 さんからのコメント
( Tuesday, October 17, 2000 17:35:03 )

CGI ではない Perl のアプレットを走らせるとどうなんでしょうか?

問題を引き起こしている可能性があるのが

1: MacPerl が何らかの原因でメモリーリークを起こしている
2: MacOS がメモリーリークを引き起こしている
3: WebSTAR の CGI 呼びだし処理がメモリーリークを引き起こしている

の3つなのですが、私の経験では、2と3の可能性は低いんですよね
(このサイトが MacOS 8.1 + WebSTAR 3.0.2 という点で同じなので)

1の可能性があるのかなと思うのですが…

寺港みやび さんからのコメント
( Tuesday, October 17, 2000 18:47:25 )

フォローありがとうございます。

Macperlで動かしているのは全てCGIです。(ACGIもありません)

>1: MacPerl が何らかの原因でメモリーリークを起こしている
なんだかそんな雰囲気なんですよね。
で、ついさっきアップルメニューからaboutで
MacPerlのタイプが確認できるのを思い出して
みたら68K用でした(恥)

これか?と思いPPC用に入れ替えてみましたが
やはりMacOSのメモリ割り当てが増加する現象は継続中です。

ちなみに処理できずにタイムアウトとなる事象は
激減したようです(がperformaでは起きなかっただけに・・・)

もし類似した環境で動作している方がいらしゃれば
状況を教えてください。G3でMacperlが大丈夫なのか
っていうのも若干気掛かりです?

寺港みやび さんからのコメント
( Wednesday, October 18, 2000 08:20:19 )

思い出したのですが、このPowerMacG3には
AV入出力ボードが最初からついていました。
サーバーにする前にこれを単純に抜きましたが
これは何か問題があったでしょうか。

寺港みやび さんからのコメント
( Wednesday, October 18, 2000 19:23:08 )

perfoma6410+OS7.6に戻してみるとやはり安定
PowerMacG3+OS8.1にしてみるといかに機能拡張を削っても
OSのメモリー割り当てが増加・・・。

普段使いにはperfoma6210+OS7.6をメインに
しているんですが6410にしても6210にしても
そんな事は経験したことがありません。
(QPQ+SSIではQPQのメモリー割り当てが増加するのは経験済^^;)

今、ためしにと思いあまり使わない
PowerMac9500/200を立ち上げてメモリー
を観察してみました(serverではありません)。

なんとIE5で色々なサイトをブラウズするたびに
MacOSのメモリ割り当てが増加していくようです。

まあ、IEだからなあ・・・と思いつつ
YooEdit1.71-ppcを使ってみるとやはり増加。
FinderExampleをダウンロードして起動してみると
0.2MB増加しました。OS8.1+PPCにはメモリー
関連でなにか問題があるのでしょうか?

寺港みやび さんからのコメント
( Friday, October 20, 2000 10:32:06 )

昨日Websterを動かしているPowerMacG3の
システムを再インストールしてみました。
結果は同じでした。

今考えている予想
(1)なんらかのハード不良
(2)MacPerlとOS8.1とG3の相性不具合
(3)CGIスクリプトのロジックミス
といったところですが

(1)ハード不良でこんな事がおきるとは思えないのと
PowerMac9500で似た環境を作っても発生する
点からみてこれは自分としては可能性を低くみています。

(2)ソフトの相性については情報を探してもみつからない
のと、この組み合わせが特殊とは思えない点でやはり
低い可能性では?と考えます。

(3)これは・・・・見直そう(^^;)

寺港みやび さんからのコメント
( Friday, October 20, 2000 20:06:42 )

大きなファイルを読み込んで処理するCGIの場合
以前ならMacperlのメモリ割り当てが一時的に
増加(マスの未使用部分を使用する程度)していたのが
今はMacperlのそれはほとんど変化がなく
MacOSのメモリ割り当てが増加(マス自体が増加)する。
増加度合いは以前Macperlが増加していたほどではなく
小さな処理をするCGIと同じように増加します。

◎perfoma6410 + OS7.6の時
MacPerl ■■□□□□
MacOS  ■■■

↓(大きなファイルに対するCGI処理)

MacPerl ■■■■■□
MacOS  ■■■

↓(CGI処理後)

MacPerl ■■□□□□  ←もどる(^_^)
MacOS  ■■■

--------------------------

◎PowerMacG3 + OS8.1では
MacPerl ■■□□□□
MacOS  ■■■

↓(大きなファイルに対するCGI処理)

MacPerl ■■□□□□
MacOS  ■■■■

↓(CGI処理後)

MacPerl ■■□□□□
MacOS  ■■■■  ←もどらない(ToT)

これはこれで皆さんと同じなのでしょうか?

寺港みやび さんからのコメント
( Monday, October 23, 2000 11:32:57 )

メモリリークさせている犯人がわかりました。
Ethernetドライバでした。

Power Macintosh G3 DT 233 
Power Macintosh G3 DT 266(M6309J/A) 
Power Macintosh G3 MT 266 
Power Macintosh G3 MT 300(M6573J/A、M6495J/A) 
Macintosh Server G3 266 
PowerBook G3 233/12"(M6478J/A) 
PowerBook G3 233/13" 
PowerBook G3 250/13" 
PowerBook G3 292/14" 
でOS8に標準のEtherドライバを使っていた場合
「AppleTalkネットワークが中断されました」という
問題は報告されていましたが、メモリリークについては
appleのサイトでは報告されていません。

しかしこちらではappleTalkも使用していますが
これについて報告されているような問題はおきないかわりに
MacOSのメモリが徐々に増加するという問題が
おきていました。

結論として上記マシンの標準Etherボードを
OS8で使った場合にメモリリークする問題について
Ethernet (Built-In)204を使うことで、これが解決できました。


→  Ethernet (Built-In)204

寺港みやび さんからのコメント
( Saturday, November 04, 2000 17:18:20 )

お詫びをしなければなりません。
今日メモリ不足でマシンが止まりました(@o@;)。

ほんとに申し訳ありません。
再度テストしました。
PowerMac9500/200 と PowerMacG3 DT266 で
同じOS(8.1)、同じ機能拡張、同じコントロールパネル
同じWebSter+MacPerlで30分ずつ動作確認をしました。

結果PowerMacG3 DT266ではメモリーリークが
起きるようです。今となっては気のせいかもしれないですが
Ethernet (Built-In)204する前よりは発生率が少ない
ような印象をうけています。
PowerMac9500/200では発生しません。

サービスを開始すると直にCGIへのリクエストが
開始されるのでMacPerlが原因なのかWebSterなのか
スクリプトなのか切り分けできていませんm(__;)m

誤った情報を流してしまい誠に申し訳ありません。

tyu-sei さんからのコメント
( Wednesday, May 09, 2001 00:12:20 )

過去ログを見ていたら同じ現象があり困っていますので発言します。

今回、PowerMac6400+MacOS8.1+Web共有+MacPerl5.2.0r4で掲示板、
チャット、カウンター、ゲーム等のCGIを動かそうとサーバーを立上
げたのですが、やはりメモリーがCGIが動作するたびに増えてしまし、
最終的にメモリー不足に陥ってしまいます。ちなみにメモリは136MB
をつんでいます。

いま色々動作テストしていますので、また報告します。

344 さんからのコメント
( Thursday, May 10, 2001 12:10:10 )

>MacOSのメモリ割り当てが増加(マス自体が増加)する。

この現象は私も経験したことがあります。
ただし、使用環境は全く異なり、クライアントとして使用していたマシンです。
今も同じマシンを使用していますが、利用するソフトの関係でOS8.1からOS8.6にバージョンアップしてからは起こっていません。
きちんとした原因究明をしたわけでは有りませんので、的外れかもしれませんが・・・
なにかご参考になればと思います。

tyu-sei さんからのコメント
( Saturday, May 12, 2001 10:04:39 )

344 さんありがとうございます。

現在どのような組み合わせがいいのか、悪いのかテスト中ですが、
今の所分かった範囲で報告しておきます。

LC475+MacOS8.0+Web共有+MacPerl5.2.0r4 => ○
PowerMac7100+MacOS8.0+Web共有+MacPerl5.2.0r4 => ×
PowerMac7100+MacOS8.1+Web共有+MacPerl5.2.0r4 => ×
PowerMac4400+MacOS8.0+Web共有+MacPerl5.2.0r4 => ×
Performa6400+MacOS8.1+Web共有+MacPerl5.2.0r4 => ×

やむなく現在サーバーはLC475で稼動させています。

まだOS8.5以上はテストしてませんので確認出来ましたら報告します。

ゆきふね さんからのコメント
( Saturday, May 12, 2001 12:31:49 )

はじめまして。自分もMacPerlでCGIをしているので、気になってチェックしてみました。
環境:
WGS9150/120 RAM136M
 AppleShareIP6.3.1
 MacJPerl5.2.0r4J1

あまり大量のデーターを処理する事をしてないのですが、
とりあえず掲示板にこのページのテキストを発言してみると…
OS、及びMacPerl自体のメモリ消費量は変化しませんでした。
変化があったのはcgiアプリケーションそのもので、
標準の196K割り当ての中、待機中はその1/3程を使っていますが、
発言処理中は2/3まで増えます。

MacPerlには16MB割り当ててますが、使っているのは1MB程みたいなんで
実際にはcgiアプリケーションに対してメモリ割り当てを増やすのが
良いのかもしれません…

tyu-sei さんからのコメント
( Friday, May 25, 2001 22:38:25 )

報告がおくれましたが、その後のテストの結果をお知らせします。

Performa6400はOS8.6ですと使用メモリーも増えることはありません。
OS8.5ではCGIが動作する度に使用メモリーが増え解放しませんでした。

結果、Performa6400+OS8.6+web共有&LC475+OS8.0+web共有で
web+CGIサーバを稼動させることにしました。

原因については、残念ながら私には勉強不足のため解明できません。
どなたか詳しい方がいましたらお願いします。