Here's the deal. We would take the full static html-way to solve performance problems, but since the site will be partially dynamic, this will not work for us. Instead, we used memcache + eAccelerator to speed up PHP and provide caching for the most commonly used data.
Here are two of our approaches that we were thinking right now:
Using memcache for -> all <<basic queries and leaving him alone to do what he does best.
Usinc memcache for the most frequently retrieved data and combining with a standard hard disk cache for future reference.
The main advantage of using memcache is, of course, performance, but as the number of users increases, memory usage becomes difficult. The combination of the two sounds seems like a more natural approach to us, although the theoretical compromise is in performance. Memcached may have some replication features that can come in handy when you need to grow nodes.
Which approach should we use? - Is it stupid to compromise and combine the two methods? Should we focus on using memcache and instead focus on updating the memory while increasing the load with the number of users?
Thanks a lot!
- , .
v.s. , CPU. . , . memcache. , memcache. , (tmpfs). memcache, (- ).
tmpfs
( , memcache) - , . KV, concurrency.
- , . , , . - . -, ( ). , . -, . -, . concurrency .
, (memcached-tag). . , (: {directory#5: 1, user#8: 2}). , memcached ( multiget). , , . (, ), . , . . Memcached .
{directory#5: 1, user#8: 2}
multiget
, , : "" " : - " - .
Memcached - . , , Ketama, / Memcached . , , Memcached, . , , , . , , multiget(). , , Memcached, , . , /, , .
, , . -, , , . , , Linux , , (, hdparm).
, , , . , , PHP, Memcached -.
memcache . , , .
, .
Memcached - , , , . , , , , .
memcached , , , .
memcached , , . , , , ( ) ( ).
, memcached, ; memcached- ( DC ).
:
, /, IN PRODUCTION.
, , , / . , , . (< 90%, ), , , .
: . , .
/ ( ). Solaris SSD ; L2ARC.
I would recommend you read this to get you started: http://blogs.oracle.com/brendan/entry/test .