On Nov 8, 2013, at 2:07 AM, Igor Galić <i.ga...@brainsware.org> wrote:
> > >> holds the similar type of feature which will gel well with RAID 10 level. >> If not we will go ahead with RAID 0 to save more disk space for larger >> cache. Currently we have 300GB cache on each ATS nodes. > > Given that Yahoo has switched from using YTS to using ATS, it's > probably safe to say that they consider the performance to be, > at least, sufficient. The cache does not change between YTS and ATS in this regard. Use JBOD unless you have specific needs for e.g. RAID10; One such use case I can think of is when you have very, very large files, then JBOD is undesirable. > > https://trafficserver.readthedocs.org/en/latest/admin/configuring-cache.en.html > >> 2) How does ATS scales with respect to CPU , Memory, Disk? We have our > > CPU: when compiling with --enable-hwloc (highly recommended) much, > much better. Yes, our defaults are better than they used to be. You are still strongly encouraged to tune your settings according to your hardware and application. > > Memory: We've recently increased the RAM cache backing by an order > of magnitude. IIRC, that means that for your 300 G disk(s) ATS will > now use 3G RAM. Note that this is just a default. You can (and almost always should) tune this as per your HW and app specs. > > Disk: we spawn one thread for each disk spindle (all the more reason > to not use RAID and directly expose disks to ATS). Correction: 8 I/O threads / disk *by default*. If you use RAID, you should tune this accordingly as well. The optimal setting here also depends on the actual disk, so tune it. > >> current production running with YTS and 16GB ram. Will ATS scale its >> performance If I am getting 24GB ram ? How ATS will scale with respect to >> hardware. Can you please give some insight about it. > > > Generally we try to auto-scale with the underlying hardware. But > you can always make adjustments to fit your load and working set. +1. As for RAM, it’s used in three primary ways: 1) In-memory indices for the disk storage. The bigger the disk, the more memory. Look at proxy.config.cache.min_average_object_size. The math is (ballpark) 10 * (disk size / proxy.config.cache.min_average_object_size) This is allocated up front, and also gets synced to disk periodically; during sync time, more memory can be used for “snapshots”. 2) RAM cache as autoscaled or explicitly configured with proxy.config.cache.ram_cache.size. This is allocated as necessary (so you will see memory growth until it hit this cap). 3) Connections. SSL connections consumes more than regular ones. I haven’t kept up with exactly we are with this, it used to be 32KB / 64KB minimum for an inactive connection, and potentially much more for an active one (buffers). > >> 3) What is the QPS of current ATS? Depends on your application; i.e. impossible to tell, benchmark ATS vs Varnish vs Squid for your app. — leif