[TYPO3-Performance] Where to put the "meat"?

georg kuehnberger georg at georg.org
Thu Aug 14 12:28:53 CEST 2008


Dan,
rethinking my previous post I'd like to add:

I feel the key parameters to answer your question probably are the 
desired amount of:
- flexibility / scalability (incl. performance) and
- security (failover / high-availability),

Below I depicted a setup we just recently did for a client of ours 
(custom LAMP Application),
which offers a meaningful maximum on all of the above (within the given 
budget).
In this case we did it with real boxes, however you could also do the 
same with any performant virtualization (eg. IBM p5, XEN..), which 
offers even more flexibility.

Lesson learned throughout the years:
You can do your best calculations and guestimate and do several tests 
upfront in order to scale right fpr the initial setup. However you WILL 
have to adjust ressources and configuration afterwards; if even only 
because the characteristics of your applications is changing - which it 
will (think TYPO3 3.5 > 4.2).

hth, regards georg

The below allows for:
- easy scale out: just adding boxes @ X
- easy scale adjustment: move box between DB-Cluster and Web-SRV-Cluster.

----------- LOADBALANCER ---------
    |       |       |       |
APACHE   APACHE   APACHE  APACHE-X
    |       |       |       |
-------- SWITCH ------------------
        |        |
     ccontr1 -- ccontr2
     |    |      |    |
cdbb1   cdbb2  cdbb3 cdbb4  - cdbb-X


APACHE - WebServer, PHP / App-Server, optionally incl. reverse Proxy
ccontrX - Continuent Controller
cdbbX - Continuent DB-Backend X



georg kuehnberger wrote:
> Dan Osipov wrote:
>> Writing static files makes sense, however, we are moving towards more 
>> personalized content, that is constantly updating, so this is against 
>> what we're doing... We are planning to rely on Typo3 caching as well 
>> as PHP accelerators.
>>
>> Our servers are fairly good, with several Quad core processors and up 
>> to 16 Gb of RAM. We just need to decide if we want to put them towards 
>> handling MySQL tasks or PHP?
> 
> IMHO: put them (cpu & mem - Ressources) on PHP, where they will be 
> needed more;
> 
> in addition:
> a) (as Olivier stated) using nginx, squid or whatever rev proxy will 
> massively releave your apaches at virtually no cost.
> 
> b) as for the db you might also consider the commercial version of 
> sequoia www.continuent.com which we recently made excellent experience 
> with.
> 
> regards georg
> 
>> Dan Osipov
>> Calkins Media
>> http://danosipov.com/blog/
>>
>> Olivier Dobberkau wrote:
>>> Dan Osipov schrieb:
>>>
>>>> Thoughts?
>>>
>>> my suggestion:
>>>
>>> try to avoid typo3 for the frontend stuff as much as possible... :-)
>>>
>>> use nginx to deliver static file, like statified html, jpg, pdf, etc
>>> instead of apache with php using your memory on the app servers.
>>>
>>> -> nginx (proxy) -> apache -> php -> typo3
>>>
>>> use a much caching as possible.
>>>
>>> loadbalance the stuff. get as much memory per server as possible.
>>>
>>> take a look at mysql proxy and use a master slave setup.
>>>
>>> hope this gives you some thoughs..
>>>
>>> olivier


More information about the TYPO3-Performance mailing list