Blog Agility

RAM cache – Entendendo a lista de objetos

RAM cache – Entendendo a lista de objetos

Entenda mais sobre a lista de objetos do RAM Cache, um recurso do Big-IP LTM que faz offload de requisições de objetos estáticos dos servidores Web.

RAM cache é um recurso disponível no modulo LTM do BIG-IP e é utilizado em Virtual Servers de camada 7 de conteúdo HTTP/HTTPS. Este recurso auxilia no processo de offload (redução de carga) nos servidores que disponibilizam o conteúdo.

A abertura de uma página web consiste em vários GETS, solicitações aos servidores de objetos que compõem a página web. Imagine que para abrir o site são necessários 180 objetos e existem 10.000 usuários acessando no mesmo instante. Fazendo uma conta rápida, temos 180 x 10.000=1,8 milhões de objetos sendo requisitados ao servidor simultaneamente, consumindo processamento, memória e tabela de conexões.

Veja este exemplo em que os usuários estão requisitando o objeto da página:

201301_Allan_Silva_RAMCache_-_Entendendo_a_lista_de_objetos_v2_1
Imagem 1: Sem RAM cache habilitado.

 

Neste caso, foram necessárias duas requisições e entrega destes objetos dos servidores para os browsers dos usuários. Se pensarmos em larga escala seriam milhares de conexões e entrega do mesmo conteúdo, aumentando consideravelmente o uso dos servidores.

Com RAM cache, o BIG-IP solicita o objeto apenas uma vez em um determinado período e, a partir daí, disponibiliza o conteúdo a partir da sua memória RAM, não sendo necessário requisitar aos servidores o tempo todo, como pode ser visto abaixo:

201301_Allan_Silva_RAMCache_-_Entendendo_a_lista_de_objetos_v2_2
Imagem2: Com RAM cache habilitado

 

Desta forma, os servidores não sofrerão sobrecarga de solicitações e não precisarão entregar o volume total solicitado, aumentando a disponibilidade e capacidade de entrega dos servidores.

O RAM cache pode ser usado para entregar os seguintes tipos de respostas: 200, 203, 206, 300, 301 e 410 e por padrão o método HTTP GET.

Para habilitar esses profiles no Virtual Server vá em:

Profile -> Services -> Web Acceleration

201301_Allan_Silva_RAMCache_-_Entendendo_a_lista_de_objetos_v2_3
Imagem 3: Como criar um profile de RAM cache, versão 11.3.

 

Dentre as opções à serem configuradas temos:

Parâmetro Descrição
Maximum Cache Size Especifica o máximo de memoria RAM em megabytes. Quando atinge o limite o BIG-IP remove o conteúdo de cache mais antigo.
Maximum Entries Especifica o numero máximo de entradas que poderão ser alocadas no RAM cache.
Maximum Age Especifica quanto tempo em segundos, o conteúdo em cache será válido.
Minimum Object Size Especifica o menor objeto em bytes que será considerado válido para cache.
Maximum Object Size Especifica o maior objeto em bytes que será considerado válido para cache.
URI Caching Aqui se define a lista de objetos que serão cacheados no BIG-IP.

Pin List: Lista de URIs que deseja incluir no RAM cache

Include List: Lista de URIs que normalmente são inelegíveis, mas que se deseja armazenar em cache. Pode incluir métodos GET e outro, incluindo não HTTP.

Exclude List:Lista de URIs que não se deseja armazenar em RAM cache.

Include Override List:Configura uma lista de URIs que devem ser armazenados em cache, mesmo que devido a restrições definidas como tamanho do objetos e outras , não seriam armazenados.

Ignore Headers Especifica como o BIG-IP processará o lado cliente:

All: Desconsidera todo controle de cache do cabeçalho.

Cache-Control:max-age: Ignora apenas o cabeçalho cache-control:max-age.

None: Aceita todos os controles de cabeçalho

Insert Age Header Insere os parâmetros Date e Age configurados no BIG-IP no cabeçalho.
Aging Rate Determina quão rápido o sistema libera o cache de entrada. Vai de 0 (mais lento a 10(mais rápido)
WA Applications Quando o BIG-IP tiver o modulo de Web Accelerator licenciado, é possível incluir controles do mesmo.

Um conteúdo estático normalmente muito utilizado para fazer offload são as imagens JPEG. Abaixo, um exemplo de como permitir cache de conteúdo JPEG e exclusão de objetos javascript:

201301_Allan_Silva_RAMCache_-_Entendendo_a_lista_de_objetos_v2_4
Imagem 4: Configurando lista de objetos no RAM cache.

 

Basicamente, você precisa especificar o content type do objeto para identificar o que dever ser incluído ou excluído do RAM cache. Para descobrir, basta apertar a F12 em seu navegador e capturar o que está sendo baixado e observar o campo “tipo”.

201301_Allan_Silva_RAMCache_-_Entendendo_a_lista_de_objetos_v2_5
Imagem 5: Capturando informações da página com navegador.

Com RAM cache é possível fazer offload dos servidores e ter um ganho de performance considerável em aplicações web, além de reduzir o número de servidores na infraestrutura. Existem casos em que, após ativar este recurso, o número de servidores necessários para atender um serviço cai em mais de 50%.