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

georg kuehnberger georg at georg.org
Thu Aug 14 17:15:37 CEST 2008


Dan,

Dan Osipov wrote:
> Thanks Georg,
welcome;
> That is exactly the set up we are planning at this time, however due to 
> limited budget we can't set up a cluster of DB at this time, and will 
> have to resort to using just one server. This creates a possible failure 
> point, but will have to work with it for now. I am just hoping that the 
> DB server doesn't choke...

Then tune you queries ;-)

Seriously:
I recall you asking for:
   "need to create a scalable structure, that can support 30 million 
page views a month, and be easily expanded upon site's growth. "

Guess you should tell your bosses or the budget-owner, that the depicted 
single DB-Server (as a single-point-of-failure)
- neigther is "scalable"
- nore "easily expanded".
So in case they are serious about their high-requirements they have to 
follow suit budgetwise.

hth, regards georg



> Dan Osipov
> Calkins Media
> http://danosipov.com/blog/
> 
> georg kuehnberger wrote:
>> 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