Cache Proxy Setting Up

Cache Proxy Setting Up

Before, it used to use an internal cache mechanism for downloaded images and hwpacks to avoid downloading repeatly, which could save time and bandwidth.

lava-dispatcher switches to use cache proxy for managing cache files automatically. The recommended proxy is Squid.

Install Squid

Squid is easy to install via apt-get:

sudo apt-get install squid

Or if you want a configurable squid, refer to the following link to compile and install manually: http://wiki.squid-cache.org/SquidFaq/CompilingSquid

Configure Squid

You will need to customize accroding to your server, like disk layout, space.

Need to analyse and tune by collecting information when squid running with real cases, like cache policy, file system.

Mandatory configuration options

Based on original /etc/squid/squid.conf, see below tuning.

  • cache_dir ufs /var/spool/squid 30720 16 256

    Mandatory option, please modify 30720(MB) to an available size.

    There can be several cache directories on different disk, but it’s better not use RAID on the cache directories, it’s recommended by Squid: The Definitive Guide that it will always degrades fs performance for squid. 30720 is the cache amount 30GB. 16 and 256 is Level 1 and 2 sub-directories, which is default.

  • maximum_object_size 1024000 KB

    Mandatory option.

    Setting the value as 1024000KB makes the squid cache large files less than 1GB, for our images are usually a large one but less than 1G.

Optional configuration options

Some others than mandatory options.

  • acl over_conn_limit maxconn 10 # make max connection limit 10

  • http_access allow localnet

    Enable localnet, also, we need to define more localnet in server environment to make sure all boards IP and other permitted clients are included.

    acl localnet src 10.122.0.0/16

  • http_access deny over_conn_limit

    Make max connection of one client less than 10, it should be enough for a board, it can be increased.

  • cache_mem 128 MB

    It can be increased if server MEM is enough, it’s for squid mem amount for objects.

  • cache_swap_low 90

    cache_swap_high 95

    Cache size will maintain between 90% to 95%.

  • client_lifetime 12 hours

    Make a client continuous accessing time 12hrs, default is 1 days, it can be increased.

  • high_response_time_warning 2000

    2s in 1mins no response will log in cache.log.

  • There is some email configurations to be set, like ‘cache_mgr’, it will send mail if cache proxy dies.

The configuration is only workable, there can be more improvement ways, some still need to tune on server.

Other tuning

Open files number can be increased for squid will need more than 1024 limitations sometimes:

# ulimit -n
    1024