durusmail: quixote-users: performance problems
performance problems
2002-07-26
2002-07-26
2002-07-26
2002-07-26
2002-07-26
performance problems
Greg Ward
2002-07-26
[Eckard -- please wrap your lines to 80 columns!]

On 26 July 2002, Eckhard Licher said:
> after having explored several Python appservers, frameworks and the
> like (which all have their specific pros and cons) I finally found
> quixote (by accident) and I have to admit that I very much liked the
> concept instantly. Having not (yet) gone much beyond the demo examples
> I already experienced severe performance problems.
>
> My workstation setup is as follows:
> - Linux 2.2.18 (SuSE 7.2) running on a 700MHz Duron machine (640MB RAM)
> - Apache 1.3.x
> - Python 2.0 (gcc 2.95.x) w/ the compiler installed from the Python source
distribution
>
> A typical request to a quixote-generated page via the demo.cgi driver
> takes (depending on the page requested) between 2,4 and 3,5 seconds
> (!) on an otherwise idle machine. For comparison: the legendary
> WelloWorld.py CGI program takes some 60 ms to process and a more
> realistic Python CGI program including access to a SQL database
> (including establishment of a new connection) takes some 240 ms
> (MySQL) and 350 ms (PgSQL) on this machine.

Yes, something is definitely wrong with your setup.  My setup is roughly
similar -- 800 MHz Athlon, 256 MB RAM, Linux 2.4.19-rc2, Apache 1.3.23,
Python 2.2.  The newer kernel and Python might make a small performance
difference, but new Python releases are usually slower while Linux gets
faster, so it's probably a wash.  ;-)

My timings, using ApacheBench with no concurrency (ie. one request at a
time -- "ab -c 1"):

  demo.cgi     242 ms min, 261 ms mean, 642 ms max    (100 requests)
  demo.fcgi      6 ms min,   6 ms mean,  24 ms max    (500 requests)

If I remove all *.pyc and *.ptlc files, and make the directories where
they live unwriteable, CGI performance takes a nosedive:

  demo.cgi    1141 ms min, 1240 ms mean, 2203 ms max  (100 requests)

So inability to write bytecode files really makes a difference.

> There must be something terribly wrong with my setup. BTW, after
> running the demo I did not find any byte-compiled ptlc files in demo
> directory even after permitting the webserver to have write access to
> the relevant directory and manually byte-compiling the ptl files in
> the demo dir did not enhance the performance a bit.

The demo exercises pretty much all of Quixote, so the web server will
need write access to quixote, quixote/demo, and quixote/form .

Did you manually byte-compile the Quixote .py files as well?  Just
compiling the .ptl files will help a bit, but there's more to it than
that.

        Greg


reply