Re: Pylons Optimizing on Multiprocessor Server?

2009-11-16 Thread Didip Kerabat
3: fapws has basic example on running as wsgi server.

2: You can compress/gzip your HTML payload. The easiest way is to use
paste.gzipper inside your middleware.py:
from paste.gzipper import middleware

If you use mako, you can take advantage of its function-level caching.

- Didip -

On Sun, Nov 15, 2009 at 2:03 PM, kevbaker kba...@missionvi.com wrote:


 I am working on optimizing our Pylons servers for better performance.
 Currently I am getting what I would consider pretty poor performance.

 I have some data and questions.


 = Questions
 1. Does Pylons take advantage of multiple processors on my server?
 2. Other than shutting off debugging what can I do to improve
 performance?
 3. Are there any other options outside of Paster and Cherrypy? Which
 should I use?


 = Configuration
 - Pylons 0.9.6.2
 - Amazon EC2 c1.medium, 1.7 GB Ram, 5 EC2 Compute Units (2 virtual
 cores)
 - Ubuntu 8.04.3


 = Data
 - Running Apache Benchmark to get usable numbers to measure
 performance improvements after config changes. All tests were using
 ab -n 400 -c 10 {MY URL}
 - Pylons direct, no proxy, load static file - response:36.86
 - Pylons direct, no proxy, load template file with a few variables -
 resp/sec:30.28
 - Pylons direct, no proxy, load template with database query - resp/
 sec:16.06




 


--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
pylons-discuss group.
To post to this group, send email to pylons-discuss@googlegroups.com
To unsubscribe from this group, send email to 
pylons-discuss+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/pylons-discuss?hl=en
-~--~~~~--~~--~--~---



Pylons Optimizing on Multiprocessor Server?

2009-11-15 Thread kevbaker

I am working on optimizing our Pylons servers for better performance.
Currently I am getting what I would consider pretty poor performance.

I have some data and questions.


= Questions
1. Does Pylons take advantage of multiple processors on my server?
2. Other than shutting off debugging what can I do to improve
performance?
3. Are there any other options outside of Paster and Cherrypy? Which
should I use?


= Configuration
- Pylons 0.9.6.2
- Amazon EC2 c1.medium, 1.7 GB Ram, 5 EC2 Compute Units (2 virtual
cores)
- Ubuntu 8.04.3


= Data
- Running Apache Benchmark to get usable numbers to measure
performance improvements after config changes. All tests were using
ab -n 400 -c 10 {MY URL}
- Pylons direct, no proxy, load static file - response:36.86
- Pylons direct, no proxy, load template file with a few variables -
resp/sec:30.28
- Pylons direct, no proxy, load template with database query - resp/
sec:16.06




--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
pylons-discuss group.
To post to this group, send email to pylons-discuss@googlegroups.com
To unsubscribe from this group, send email to 
pylons-discuss+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/pylons-discuss?hl=en
-~--~~~~--~~--~--~---



Re: Pylons Optimizing on Multiprocessor Server?

2009-11-15 Thread Philip Jenvey


On Nov 15, 2009, at 2:03 PM, kevbaker wrote:

 
 I am working on optimizing our Pylons servers for better performance.
 Currently I am getting what I would consider pretty poor performance.
 
 I have some data and questions.
 
 
 = Questions
 1. Does Pylons take advantage of multiple processors on my server?

Yes, it generally runs via a multi-threaded web server like Paste http server, 
CherryPy, or mod_wsgi Apache, or even J2EE containers under Jython. Of course 
how much parallelism you can really get is hindered by Python's Global 
Interpreter Lock.

 2. Other than shutting off debugging what can I do to improve
 performance?

The easiest gain is to serve the static files (in the public/ directory) via a 
faster frontend server like Apache, nginix, or a CDN. To really reap the 
benefits of this, you must switch the static_files flag in the ini file to 
false. Then Pylons no longer checks if URLs are for a static files (which takes 
precedent over everything else) during every request.

 3. Are there any other options outside of Paster and Cherrypy? Which
 should I use?

There's also FAPWS, Spawning, and some others. Try mod_wsgi if you're trying to 
squeeze out every bit of performance.

 = Configuration
 - Pylons 0.9.6.2
 - Amazon EC2 c1.medium, 1.7 GB Ram, 5 EC2 Compute Units (2 virtual
 cores)
 - Ubuntu 8.04.3
 
 
 = Data
 - Running Apache Benchmark to get usable numbers to measure
 performance improvements after config changes. All tests were using
 ab -n 400 -c 10 {MY URL}
 - Pylons direct, no proxy, load static file - response:36.86
 - Pylons direct, no proxy, load template file with a few variables -
 resp/sec:30.28
 - Pylons direct, no proxy, load template with database query - resp/
 sec:16.06


Regardless of what you do with Pylons your database is the larger bottleneck in 
at least some cases. On the Pylons side, assuming you're using SQLAlchemy, you 
can speedup some operations by using the SQL expression layer directly instead 
of the ORM layer, to avoid its object creation. However the data i/o is 
probably a larger hit. Consider caching some of it.

More important than anything I've said is to benchmark your app and go by the 
numbers.

--
Philip Jenvey
--~--~-~--~~~---~--~~
You received this message because you are subscribed to the Google Groups 
pylons-discuss group.
To post to this group, send email to pylons-discuss@googlegroups.com
To unsubscribe from this group, send email to 
pylons-discuss+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/pylons-discuss?hl=en
-~--~~~~--~~--~--~---