I'm writing a SOAP::Lite service using Apache and
SOAP::Lite::Transport::FCGI. I'm calling a
method which takes a file as a MIME attachment. Actually, I upload
sequentially. After a file is uploaded, the process uses HUGE amounts
of memory. When
uploading a 2MB file, the memory requirement jumps from 25MB to
100MB. What's worse,
the memory isn't freed/garbage collected afterwards! When the apache
spawns several of
these processes, my main memory is consumed quite fast and the
machine starts to trash.
This makes FCGI (where the process isn't terminated after a request)
unusable for my
project and I have to revert back to CGI where I have to face big
startup costs for each
- Why does the memory footprint of the process jump so high?
- Why isn't the memory freed? A Bug in SOAP::Lite or MIME?
- Am I missing something?
I hacked around the problem with my own transport which exists the
FCGi while loop after
a method for uploadind a file has been called. Not a nice workaround.
TIA for any help,