You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 19 Next »

While the default configuration values for ATS will get you up and running,
at the moment they're designed for regression testing and not real-world applications.

This page documents what I've discovered myself through a fair amount of experimentation
and real-world experience.

The following lists the steps involved in taking a generic configuration,
and modifying it for my own needs. Yours may vary, however, and I'll do my best
to indicate which settings should be sized based on your install.

All three Wiki pages use configuration examples from my running home Traffic Server setup.

Current Home Machine

  • Make/Model: Apple iMac Mid 2011
  • CPU: 3.4 Ghz Intel Core i7 (quad-core w/Hyperthreading)
  • Memory: 8GB
  • Disk: 1TB
  • OS: Mac OS X v10.8.5
  • Cache Size: 2GB

Current Testing Regimen

The following settings have been tested against the following:

  • IPv4 websites
  • IPv6 websites
  • Explicitly difficult web pages (i.e. Bing Image Search)
  • Explicitly SSL web sites (i.e. Facebook)

The following settings are all located in /usr/local/etc/trafficserver/records.config.
When adding lines, simply organize them in alphabetic sequence.

CPU Cores (also multiple CPUs)

The default config for ATS supports up to 2 CPU cores. I have 4 and decided to update the config to reflect that.
One could actually increase this setting higher, but I'm not a huge fan of Hyperthreading so I didn't bother.

CONFIG proxy.config.exec_thread.limit INT 4

HTTP Chunking

The default config for ATS specifies that the proxy itself use data "chunks" of 4KB each. Being that I'm on a
high-speed Internet link at home, I decided to increase this. I found settings above 128KB actually slowed
things down so I believe this to be optimal.

CONFIG proxy.config.http.chunking.size INT 131072

Inbound And Outbound HTTP Connections

The default config for ATS sets these artificially low. I found that remote webservers themselves actually
slow down if more than 16 simultaneous connections are attempted. Also, most popular browsers support
up to 256 simultaneous connections from browser to proxy server so our ATS config should reflect that.

CONFIG proxy.config.http.origin_server_pipeline INT 16
CONFIG proxy.config.http.user_agent_pipeline INT 256

Background Fill Competion

There's an algorithm here that I don't fully understand, but this setting should guarantee that objects
loaded in the background are cached regardless of their size.

CONFIG proxy.config.http.background_fill_completed_threshold FLOAT 1.000000

HTTP VARY Header Support

While I found some information while researching this that indicated the Internet isn't quite ready for this
setting, I haven't experienced any real problems as a result of enabling this. This setting allows for advanced
negotiation regarding cached Internet objects.

CONFIG proxy.config.http.cache.enable_default_vary_headers INT 1

Cache Object Lifespan

The default config for ATS specifies that after 1 day(86,400 seconds), any object without a specific expiration
should be flushed from the cache. I'd prefer that it stick around for about 3 months. This setting is contentious
in that what it should be is debatable.

CONFIG proxy.config.http.cache.heuristic_max_lifetime INT 7776000

HTTP "Last Modified" Support

There's an algorithm here that I don't fully understand, but this setting should guarantee that the relevant
information regarding an object's "last modified" date is fully support by the cache.

CONFIG proxy.config.http.cache.heuristic_lm_factor FLOAT 1.000000
  • No labels