Graham Dumpleton
graham.dumpleton at gmail.com
Tue Jul 3 04:19:31 EDT 2007
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
|