You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@trafficserver.apache.org by Karri Vrkreddy <kv...@ymail.com> on 2011/08/09 20:38:14 UTC

Suggestions for cachine dynamic content

Hi,
   We are using ATS as reverse proxy. 
   In our use case most of the data is dynamic ( responses from the backend hosts ) and need not be cached for more than 5-10 mins.

   We currently configured it to have a disk cache size of 10 GB and we left the proxy.config.cache.ram_cache.size as -1. So that would give us a ram cache size of 10 MB.
    Here are my questions :

    1. Since the ram cache size is very small, does a TCP_HIT mean a disk access  ? ( this is a 16 GB node and lots of free memory, so I mostly buffer cache plays a 
        significant role )
    2. Given the nature of the data ( not required to cache for more than 10 min ), any specific suggestions to make ATS more efficient ?
    3.  As far as I can understand from the documentation, it looks like only highly used objects will go to Ram Cache. According to that in our use case only few will
         it there. Any tweaks or change in algorithms to move as much as possible to Ram Cache.

    Please feel free to list out any specific suggestions for configuring YTS regarding this particular use case.


--
Thanks very much for your time,
Karri    

Re: Suggestions for cachine dynamic content

Posted by "ming.zym@gmail.com" <mi...@gmail.com>.
for question #1:
proxy.config.http.record_tcp_mem_hit will help you get a TCP_MEM_HIT in
the squid log of trafficserver.

FYI

在 2011-08-09二的 12:55 -0600,Leif Hedstrom写道:
> On 08/09/2011 12:38 PM, Karri Vrkreddy wrote:
> > Hi,
> >     We are using ATS as reverse proxy. 
> >     In our use case most of the data is dynamic ( responses from the backend hosts ) and need not be cached for more than 5-10 mins.
> >
> >     We currently configured it to have a disk cache size of 10 GB and we left the proxy.config.cache.ram_cache.size as -1. So that would give us a ram cache size of 10 MB.
> >      Here are my questions :
> >
> >      1. Since the ram cache size is very small, does a TCP_HIT mean a disk access  ? ( this is a 16 GB node and lots of free memory, so I mostly buffer cache plays a
> 
> I don't think we distinguish between RAM vs disk cache in the squid 
> logs, I'm not even sure it's possible to configure a log that does it 
> either. In fact, I think there was an RFE to add such log data.
> 
> However, you can certainly see how much RAM cache hit ratio vs disk 
> cache hit ratio you get, in the stats. That's not per request though.
> 
> 10MB seems like an *incredibly* small RAM cache. Make it bigger ;).
> 
> >          significant role )
> >      2. Given the nature of the data ( not required to cache for more than 10 min ), any specific suggestions to make ATS more efficient ?
> 
> Well, with such a small cache, 10GB, I'd spend a few hundred $'s and put 
> it on SSD. It'll make it wicked fast. To use the cache efficiently, tune 
> the minimum object size setting (in records.config) to be close to your 
> average / typical size. The default is 8K, which is fairly reasonable, 
> but if your objects are significantly bigger (or smaller) than this, 
> you'll use the cache more efficiently by tuning it.
> 
> >      3.  As far as I can understand from the documentation, it looks like only highly used objects will go to Ram Cache. According to that in our use case only few will
> >           it there. Any tweaks or change in algorithms to move as much as possible to Ram Cache.
> 
> It will only keep the "most used" objects in RAM cache. With such a 
> small RAM cache as yours, that's probably very few objects, and you are 
> more likely to suffer from cache evictions happening much more frequent 
> than you'd want. Again, you ought to have a bigger RAM cache, I mean, a 
> couple of gig RAM today is like 50 bucks.
> 
> If memory is truly a scarce resource, you can try to enable the 
> compression feature on the RAM. It can save some memory on objects that 
> are not already gzip'ed.
> 
> 
> Cheers,
> 
> -- Leif
> 



Re: Suggestions for cachine dynamic content

Posted by Leif Hedstrom <zw...@apache.org>.
On 08/09/2011 12:38 PM, Karri Vrkreddy wrote:
> Hi,
>     We are using ATS as reverse proxy. 
>     In our use case most of the data is dynamic ( responses from the backend hosts ) and need not be cached for more than 5-10 mins.
>
>     We currently configured it to have a disk cache size of 10 GB and we left the proxy.config.cache.ram_cache.size as -1. So that would give us a ram cache size of 10 MB.
>      Here are my questions :
>
>      1. Since the ram cache size is very small, does a TCP_HIT mean a disk access  ? ( this is a 16 GB node and lots of free memory, so I mostly buffer cache plays a

I don't think we distinguish between RAM vs disk cache in the squid 
logs, I'm not even sure it's possible to configure a log that does it 
either. In fact, I think there was an RFE to add such log data.

However, you can certainly see how much RAM cache hit ratio vs disk 
cache hit ratio you get, in the stats. That's not per request though.

10MB seems like an *incredibly* small RAM cache. Make it bigger ;).

>          significant role )
>      2. Given the nature of the data ( not required to cache for more than 10 min ), any specific suggestions to make ATS more efficient ?

Well, with such a small cache, 10GB, I'd spend a few hundred $'s and put 
it on SSD. It'll make it wicked fast. To use the cache efficiently, tune 
the minimum object size setting (in records.config) to be close to your 
average / typical size. The default is 8K, which is fairly reasonable, 
but if your objects are significantly bigger (or smaller) than this, 
you'll use the cache more efficiently by tuning it.

>      3.  As far as I can understand from the documentation, it looks like only highly used objects will go to Ram Cache. According to that in our use case only few will
>           it there. Any tweaks or change in algorithms to move as much as possible to Ram Cache.

It will only keep the "most used" objects in RAM cache. With such a 
small RAM cache as yours, that's probably very few objects, and you are 
more likely to suffer from cache evictions happening much more frequent 
than you'd want. Again, you ought to have a bigger RAM cache, I mean, a 
couple of gig RAM today is like 50 bucks.

If memory is truly a scarce resource, you can try to enable the 
compression feature on the RAM. It can save some memory on objects that 
are not already gzip'ed.


Cheers,

-- Leif