[mod_python] Performance Problem

M Chaudhary igp-dev at infogridpacific.com
Thu Aug 25 01:51:19 EDT 2005


Hello friends,

1) When I perform just file io it takes 0.00026 seconds.
        import time
        fp = open("xyz.html","r")
        s = fp.read()
        fp.close()
        stime = time.time()
        fp = open('xyz.px','w')
        fp.write(s)
        fp.close()
        etime = time.time()
        print etime-stime


2) When I perform just pxtl processing it takes 0.064 seconds.

        import time
        stime = time.time()
        import pxtl
        reload(pxtl)
        pxtl.processFile('xyz.px')
        etime = time.time()
        print etime-stime

3) When I perform pxtl processing along with file-io it takes 1.33 seconds.
        import time
        fp = open("xyz.html","r")
        s = fp.read()
        fp.close()
        stime = time.time()
        fp = open('xyz.px','w')
        fp.write(s)
        fp.close()
        import pxtl
        reload(pxtl)
        pxtl.processFile('xyz.px')
        etime = time.time()
        print etime-stime

As you can see there is a major difference in 1+2 and 3 .
Can you please tell me what the problem might be and what should i do ?
I am using PXTL for developing a website along with file io as PXTL does 
not support string processing .
Thanks in Advance.
Regards,
Ajinkya

Orr, Steve wrote:

>Well obviously mod_python is performing well and I doubt anything
>connected with Linux versions would account for that much difference so
>the thing to focus on would be tuning dbxml or the code associated with
>it. Don't you have a way to run/test chunks of code outside of a web
>environment?
>
>-----Original Message-----
>From: M Chaudhary [mailto:igp-dev at infogridpacific.com] 
>Sent: Tuesday, August 23, 2005 12:13 AM
>To: mod_python at modpython.org
>Cc: Orr, Steve; IGP; and at doxdesk.com; xml at sleepycat.com
>Subject: Re: [mod_python] Performance Problem
>
>Hello Orr, Steve ,
>        As you told i tested my application using "ab" tool for three 
>cases (each for single request and 5 concurrent requests ):-
>and the results were as follows (the following log was generated from my
>
>mod-python handler itself using time.time() method ) ----
>Attached is the test module . Please check it and view the following 
>results.
>#-----------------------------------------------------------------------
>----------------------------
># Test 1 -- dbxml :- get a document and write it to browser
>#-----------------------------------------------------------------------
>----------------------------
>0.00605797767639 # single request
>0.0058479309082
>0.00573110580444
>0.148849010468
>0.00549292564392
>0.00417685508728 # 5 concurrent requests
>0.00559282302856
>0.00551891326904
>0.00600981712341
>0.00549983978271
>#-----------------------------------------------------------------------
>----------------------------
># Test 2 -- pxtl :- pxtl process a File and write it to browser
>#-----------------------------------------------------------------------
>----------------------------
>1.65334200859 # single request
>0.25177192688
>0.261835098267
>0.294239997864
>0.000832080841064
>0.428733825684 # 5 concurrent requests
>0.440675020218
>0.269226074219
>0.237013816833
>0.13219499588
>#-----------------------------------------------------------------------
>----------------------------
># Test 3 -- pxtl  and dbxml :- get a document from dbxml container ,pxtl
>
>process it and write it to browser
>#-----------------------------------------------------------------------
>----------------------------
>3.01918792725 # single request
>13.4880371094
>14.6321718693
>15.9680738449   # 5 concurrent requests
>16.1954669952
>0.010479927063
>17.400357008
>12.5239679813
>11.8724710941
>10.8379950523
>#-----------------------------------------------------------------------
>----------------------------
>
>As you can see the first problem is that when i test it for 5 concurrent
>
>request i get 9 entries in my log file
>each in each case.
>And the second but most annoying problem is for Test 3 ( for both pxtl 
>and dbxml ) it takes more than 10 seconds
>to satisfy each request .
>Even i tested my application on Upgraded Kernel (2.6.9-11.EL).
>Should i use any other Linux distribution.
>Can you tell me what the problem may be ? And what should i do ?
>
>Regards,
>Ajinkya N
>
>
>Orr, Steve wrote:
>
>  
>
>>I can't see that mod_python would be the problem. For a given request,
>>what percentage of the overall response time is involved with database
>>access versus code execution? You need to know that. I'd first try
>>tuning the code before doing any web stuff. Especially tune the
>>    
>>
>database
>  
>
>>queries and the network access to the database before going through the
>>web server. Then setup database connection pooling so each page request
>>reuses a connection instead of establishing a new connection with each
>>page turn. Can you do some kind of session management to avoid
>>    
>>
>repop'ing
>  
>
>>"the container" with each page turn?
>>
>>Using ab I did some bench marking a year ago and with an old, cheap
>>    
>>
>Dell
>  
>
>>2GHz PC with 512M RAM as the web server I was able to get 750 page
>>    
>>
>turns
>  
>
>>per second. The database was Oracle and I used the connection pooling
>>feature that comes with cx_Oracle on the OCI. (A persistent connection
>>can be established for each Apache process so this isn't really
>>necessary.) I also reused cursors to avoid the parsing overhead.
>>(Besides doing web development I'm a DBA dweeb.) Without mod_python and
>>connection pooling it got as slow as 11 requests per second. Of course
>>my benchmarking was doing simple stuff but I was satisfied that
>>Apache/mod_python would perform well and I wouldn't have to go down a
>>"Twisted" path. Don't know anything about dbxml but you should address
>>the architecture/code first. If performance is really a big issue then
>>consider load balanced web servers and a good disk array setup on the
>>    
>>
>db
>  
>
>>server. 
>>
>>
>>Steve Orr
>>
>>
>>-----Original Message-----
>>From: mod_python-bounces at modpython.org
>>[mailto:mod_python-bounces at modpython.org] On Behalf Of IGP
>>Sent: Wednesday, August 17, 2005 11:01 PM
>>To: xml at sleepycat.com; mod_python at modpython.org
>>Subject: [mod_python] Performance Problem
>>
>>I am accessing dbxml via my mod-python handler.
>>The dbxml manager instance is created  , the container is opened and
>>    
>>
>the
>  
>
>>required operation
>>is performed(querying , geting a document ) for each client request . 
>>This is affecting the
>>performance . Is there any way to enhance the performance ? I mean that
>>    
>>
>
>  
>
>>the XmlManager instance
>>will be created only once , the container will be opened and the stored
>>    
>>
>
>  
>
>>in memory , so that the
>>response time will decrease .
>>I am using following versions of software
>>1) dbxml -  2.1.8
>>2) python - 2.3.4
>>3) mod-python - 1.3.4
>>4) apache 2.0.52
>>5) Kernel version-2.6.9-5.0.5-EL
>>
>>Please do reply if you know the solution .
>>Thanks in Advance,
>>Regards,
>>Ajinkya
>>
>>_______________________________________________
>>Mod_python mailing list
>>Mod_python at modpython.org
>>http://mailman.modpython.org/mailman/listinfo/mod_python
>>
>>
>>_______________________________________________
>>Mod_python mailing list
>>Mod_python at modpython.org
>>http://mailman.modpython.org/mailman/listinfo/mod_python
>>
>>
>>
>>
>> 
>>
>>    
>>
>
>_______________________________________________
>Mod_python mailing list
>Mod_python at modpython.org
>http://mailman.modpython.org/mailman/listinfo/mod_python
>
>
>
>
>  
>


More information about the Mod_python mailing list