>
> For me these numbers are great and I plan on moving to 2.0 as soon as
> I can for my personal stuff. This works for me because I am only
> getting about 1 *request* per second, but at work we need to be able
> to deal with on average 18750 *page views* per second (1.62 billion
> page views per day on average).  Of course this is spread across
> multiple machines, but you also need to take into consideration the
> number of machines needed, cost of machines, cost to maintain the
> software on all those machines, etc.
>

That are really a lot of hits...

Did you use any cacheing of the output with Mason and/or Embperl? If for
examples headers or footers are more or less static Mason and Embperl are
able to cache the generated output, so the Perl code has to be run only
once. If the header and/or footer is a really static page, then you should
use the syntax "Text" in Embperl 2,this will speed things up again and
Embperl 2 use a concept of providers, so it is very simple possible to write
a pure text provider which will speed up inclusion of static files even
more, because no Perl code will be involved anymore.

Another question: Did you use Embperl::Object? Embperl::Object currently
does some more stat calls then necessary, which slows it down. That is
something that I like to optimize before the final 2.0 release.

As you say the slow down for more concurrent connections, is because of the
memory usage. Perl itself uses a lot of memory, so all Perl based solutions
will need more memory. Embperl uses some more memory than Mason, to provide
features like auto form fill, dynamic tables etc. The main point to consider
here is Apache 2.0 and mod_perl 2.0. The problem with Apache 1 is, that
every concurrent connection uses it's own Apache process, so every
connection needs the same amount of memory. With Apache 2.0 you can run it
as threads, where the threads share the memory that the Perl code takes up.
If correct configured this will safe very much memory.

Basicly PHP and Perl solutions are about the same speed at 25 concurrent
connections. At this number of concurrent connections, the memory isn't a
factor, because there is enough memory to hold all 25 processes in physical
memory. So as the concurrent connections increases at some point the machine
runs out of physical memory and beginns to swap. As you already mentioned
that's the reason why Perl solution doesn't scale so well, but if we
consider Apache 2.0, which will reduce the memory footprint, the Perl
solutions may come into play again.

Apache 2.0 is finaly released some weeks ago, mod_perl release candidate is
currently under heavy testing. One part of the improvement from b5 to b6 of
Embperl was to make the internal data strcuture ready for Apache/mod_perl
2.0 and threading. Embperl currently doesn't compile with Apache 2.0, but if
necessary we could get this working in a short time frame.

You say you personaly prefer Embperl, but PHP is faster for now. As you
surely know, you not only have to consider performance, but also how much
effort it takes to write and maintain an application. Of course when you
have so much hits, performance is a really important, but if you feel
Perl/Embperl is better for writing your application and if we could get
nearly the same performance with using Apache 2.0 threads, then maybe using
Embperl is a possibility again?

As I said Embperl currently not compiles with Apache 2.0 and I have put a
lot of time into the changes from b5 to b6, so for now I have to do some
other jobs to earn some money, before I can again put some more time into
Embperl.

But in case you would like to use Embperl and Apache 2.0 and need it in a
short time frame, I can offer you to do it as a consulting job for you. In
this case you we could get it working quickly. (there are also some other
optimizations which could be done, but this will not have the same amount of
improvment as using threads)

Gerald

P.S. I happy that you like Embperl and use it already for such a long time
:-)

P.S.S. Do you know what the PHP Accelerator does? Does it some kind of
output caching? I am not a PHP guru, so I have to ask. If it is some kind of
caching, maybe we can do a similar thing for Embperl?

-------------------------------------------------------------
Gerald Richter    ecos electronic communication services gmbh
Internetconnect * Webserver/-design/-datenbanken * Consulting

Post:       Tulpenstrasse 5         D-55276 Dienheim b. Mainz
E-Mail:     [EMAIL PROTECTED]         Voice:    +49 6133 925131
WWW:        http://www.ecos.de      Fax:      +49 6133 925152
-------------------------------------------------------------



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to