[TYPO3-v4] Core performance for 4.6 and beyond

Christian Kuhn lolli at schwarzbu.ch
Thu Feb 10 17:47:48 CET 2011


Hey,

On 02/10/2011 04:46 PM, Dmitry Dulepov wrote:
> Just for the record: this e-mail is not attacking or unfriendly. I know
> it can be seen like that but it is not.

I don't feel offended by those mail from you. We've had those things 
before ...


> LiveJournal uses memcached and serves millions of users with its help!
> Naturally I want to use Memcached too ;) Now you tell me TYPO3 can't
> work with Memcached? Man, everybody can, why TYPO3 can't? :)

Simple technical reason: memcache is a flat key-value store, but the 
caching frameworks must tag entries. So we try to push some structure 
into memcache which is a clear misuse, this is the main reason why 
memcache is not the ideal backend with the caching framework. Maybe we 
should come up with a hybrid backend: tags and relations in sql or some 
other persistent storage, data in memcache. This might work out much better.


> Could be but I want memcached! I know how fast it is because I used it
> and many people use it!

Yep, memcache can easily handle >50k reads / s on a single server. I'm 
aware of that. In general I'd love to use memcache too ...


>> So, your comparison is 'not cached' versus 'tons of caches on different
>> levels with cf', and you experience a major loss in performance. It's
>> not about 'old caching' versus 'new caching', so your load numbers are
>> completely irrelevant for our discussion.
>
> No, you got it wrong :) loadavg=64 with caching framework and 3.5
> without caching framework (just good old page cache and USER_INT
> objects, no my own cache implementation). So with caching framework on
> the dedicated server with 2 4-core XEONs I got load 64 during normal work.
>
> I tried cached framework the way that any external user will do: use the
> most popular and easy tool - memcached. As a result disabling cache is
> better than cache. Sucks. So my numbers are very relevant. This is real
> world experiment that many will do (and fail)!

Please compare the 'old' (db driven) caching with the caching framework 
and db backend. I'd expect your load to be normal. Next, you could 
compare different cf backend implementations to check if there is one 
with better performance than mysql for your use case.


> Look at the on the wiki: memcached backend is bad

Memcache backend is great if you don't tag.


> APC backend is bad,

APC backend is great for small data sizes and sharing data between PHP 
processes on one server.


> use Reddis.

This one is great for big data sizes and tons of tags.


It's all about use-cases. I won't recommend APC for content caches, but 
it would be great for eg. an autoloader class cache or domain record 
cache in typolink, or maybe as prepared Statement cache.


Regards
Christian


More information about the TYPO3-project-v4 mailing list