[Armadillo:00735] Armadillo-Jのメモリ管理について

Makoto Nakamura email@hidden
2005年 12月 15日 (木) 00:59:06 JST


いつもお世話になっています。中村です。

先日問い合わせたCGIのテストを行っていたのですが、
メモリ管理について不明点があります。

自作のCGIを動作させてみたのですが、
メモリが200kb程消費されている事がわかり
調査を行っていました。

プログラム上異常な箇所が見当たらなかった為、
cgi_genericをそのまま動作させてみた所
同じく200kb程消費されています。

同じCGIをいくつか複製し動作させてみた所、
thttpdにアクセスしたタイミングで500エラーが返ってきたり
空白ページが表示されたりします。
また、http://xxx.xxx.xxx.xxx/cgi-bin/
とブラウザから入力してファイルリストを見ようとしても
同じく500エラーが返ってきたり、空白ページ
または、以下のような中途半端なHTMLを取得してしまいます。
---------------------------------------
<HTML><HEAD><TITLE>Index of /cgi-bin/</TITLE></HEAD>
<BODY>
<H2>Index of /cgi-bin/</H2>
<PRE>
mode  links  bytes  last-changed  name
<HR>
---------------------------------------
※通常時はファイルリストも参照可能となっています。

このメモリ量は「cat /proc/meminfo」を実行して
MemFreeを見て判断しています。

この消費されたメモリはいつ開放されるのでしょうか?

連続稼動が出来ないため非常に困っています。

動作環境は以下の通りです。
AJ020
atmark-dist-20051017.tar.gz
linux-2.4.22-uc0-aj3.tar.gz
+Etherドライバ修正版
+thttpd 2.04 of 10aug98

ちなみにAJ010の時にはこのエラーは発生していません。

この問題に関して以下のような調査を行いましたので
念のため添付します。
----------------------------------------
・lsコマンド等を実行してもメモリが減り、戻らない
・単純なmalloc→freeを行うアプリを動作させると、
 確保した分のメモリ量が減り、freeしても戻らない
・「cat /proc/kmsg &」を実行しておくと以下のメッセージが出る事がある。
   <4>Allocation of length 413696 from process 104 failed
   <4>Buffer memory:      460kB
   <4>Cache memory:      432kB
   <4>Free pages:         584kB (     0kB HighMem)
   <4>Zone:DMA freepages:     0kB min:     0kB low:     0kB high:     0kB
   <4>Zone:Normal freepages:   584kB min:    80kB low:   160kB high:   240kB
   <4>Zone:HighMem freepages:     0kB min:     0kB low:     0kB high:     0kB
   <4>( Active: 149, inactive: 74, free: 146 )
   <4>= 0kB)
   <4>56*4kB 5*8kB 0*16kB 0*32kB 1*64kB 0*128kB 1*256kB 0*512kB 0*1024kB 0*2048kB = 584kB)
   <4>= 0kB)
   
   ※process 104とはCGIのプロセスIDのようです。
・まれに「SIGSEGV」と表示される。
・まれに「fault-common.c 61」と表示されっぱなしになる。




armadillo メーリングリストの案内