[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 メーリングリストの案内