yubing
trueice at gmail.com
Tue Jul 3 07:22:34 EDT 2007
oh, sorry, that's my typo in the mail, it should have been: ------------------------------ def pump_file(req): fp = open("/dev/zero", "r") while(True): buf = fp.read(4096) try: req.write(buf) time.sleep(0.1) except: fp.close() break ------------------------------- you can still observe the memory going up slowly BTW: I'm using the prefork mpm of apache On 7/3/07, Graham Dumpleton <graham.dumpleton at gmail.com> wrote: > > On 03/07/07, yubing <trueice at gmail.com> wrote: > > Our project has a live HTTP video streamer written in python, which > keeps > > pumping a stream out to the client. > > The HTTP serving module is a simple mod_python request handler running > on > > Apache 2.2.4 with mod_python 3.3.1 (Python 2.5.1). > > The stream is read out of our streaming server via TCP socket, and the > > python script just do some simple processing like header building, each > > allocated buffer is del-ed after being used. > > > > The problem is: > > We observed that after its running serveral hours, its memory occupation > > grows up to serveral hundreds of megabytes and keeps growing in 4k-8k > > increment every 1-2 seconds. > > > > Below is a simple testing scriptlet, the memory leaking issue is not so > > serious as our live serving module, but you can still observe 4k memory > > growing every serveral seconds. > > > > Could anyone help me to figure out the root cause of this issue? > > > > -------------------------- > > import time > > > > def pump_file(req): > > while(True): > > fp = open("/dev/zero", "r") > > buf = fp.read(4096) > > try: > > req.write(buf) > > del buf > > time.sleep(0.1) > > except: > > fp.close() > > break > > BTW, you do realise that you open the file in the loop when it should > be outside. > > Graham > -- truly yours ice -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mm_cfg_has_not_been_edited_to_set_host_domains/pipermail/mod_python/attachments/20070703/a6c8cf61/attachment.html
|