[mod_python] Performance Problem

M Chaudhary igp-dev at infogridpacific.com
Thu Aug 25 02:31:09 EDT 2005


Even if i remove    reload(pxtl)    ; there is no improvement.

Graham Dumpleton wrote:

>Why are you doing:
>
>  reload(pxtl)
>
>What is it about "import" that isn't enough?
>
>M Chaudhary wrote ..
>  
>
>>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
>>>
>>>
>>>
>>>
>>> 
>>>
>>>      
>>>
>>_______________________________________________
>>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