Escolar Documentos
Profissional Documentos
Cultura Documentos
Mrcio Anthony Gonalves Cesrio Wagner Meira Jnior Laboratrio de Configurao e Testes - RNP
ndice:
Parte A:Introduo Hierarquia Nacional da RNP Parte B:Instalao e Configurao do Squid Parte C:Instalao e Configurao do Network Dispatcher/ISS e integrao com o Squid Parte D:Estatsticas e Tuning dos Servidores Parte E:Ferramentas de Monitorao Parte F: A Hierarquia Nacional da RNP
Cache W W W: Introduo e Motivao Evoluo e Tecnologias utilizadas Proxies Estratgias de cooperao Hierarquia da RNP Equipamentos de Hardware (Squid Server)
Tendncia: Novas tecnologias para clientes (e.g., modem a cabo) apenas agravam a situao. Demanda cada vez maior por uma soluo escalvel, uma vez que a populao cresce mais rpido que a banda passante disponvel pelo baixo custo de acesso e comodidade.
Caractersticas do Trfego WWW: alta variabilidade nos tamanhos dos objetos e no tempo para acess-los alta dinamicidade dos padres de acesso (temporal e fsica) comportamento migratrio interesse momentneo documento transferido mais de uma vez (13% - 1992) Caches replicam dados acessados freqentemente, explorando a localidade temporal dos documentos. No um conceito novo na Internet (e.g., DNS).
Hierarquia Nacional de Proxies
PAL0100 1998 RNP
Cache: Caractersticas desejveis Transparncia Escalabilidade Facilidade de instalao Tolerncia falhas Cooperao com servidores de contedo Cache: Problemas Balanceamento de carga Coerncia entre servidores e caches Computao e comunicao adicional Replicao de objetos
Hierarquia Nacional de Proxies
PAL0100 1998 RNP
Proxies
Proxies como Cache Servers
Caractersticas: Necessidade de configurao dos clientes Utilizao de hardware comum Escalabilidade demanda cooperao
Proxies
Web Proxy Cache Server
Funcionamento: Proxy recebe requisies HTTP de clientes Proxy repassa requisies aos servidores, de acordo com os protocolos suportados Servidor responde ao proxy Proxy responde ao cliente e, opcionalmente, armazena localmente uma cpia do documento (cache)
Hierarquia Nacional de Proxies
PAL0100 1998 RNP
Estratgias de cooperao
Como compartilhar informaes entre caches
Questes: Quanto custa cooperar? Qual a reduo de latncia? Qual a taxa de acerto? Cache sob demanda: Cooperao informativa Cooperao hierrquica Cooperao por diretrio Cooperao por resumos
Hierarquia Nacional de Proxies
PAL0100 1998 RNP
Cooperao Informativa
Cooperao Hierrquica
Cooperao Hierrquica
Outras estratgias de cooperao Prefetching Replicao voluntria Server push Client pull Geographical push caching
Hierarquia da RNP
O que hierarquia ?
Servidores proxy cache se comunicam atravs de um protocolo de aplicao para que um deles possa buscar objetos armazenados em outro Relaes Hierrquicas: Sibling (irmandade): servidor proxy busca objeto de outro servidor somente se este possuir o objeto cacheado localmente Parent (paternidade): servidor filho busca objeto do servidor pai mesmo no caso deste no possuir o objeto (neste caso, ele dever conseguir o objeto de alguma forma e repassar ao filho)
Hierarquia Nacional de Proxies
PAL0100 1998 RNP
Hierarquia da RNP
Formao da Hierarquia
Diviso em trs nveis Nvel 1: responsvel apenas por responder requisies de outros servidores proxy. formado pelas mquinas mais robustas, e estar localizado em dois pontos: RJ e DF. Nvel 2: responsvel por atender requisies de usurios finais e de proxies nvel 3. Localizado nos PoPs: DF, RJ, MG, SP, RS, PE, CE, PR, SC, BA e PB Nvel 3: formado por mquinas de menor porte, responsvel, nos outros PoPs (AL, RN, AM, PA, SE, MA, PI, ES, MT, MS, GO, TO, RO, RR, AP e AC), por atender apenas a requisies de usurios finais.
Hierarquia Nacional de Proxies
PAL0100 1998 RNP
Relao de paternidade (parent): Requisies no resolvidas num nvel so encaminhadas ao nvel superior Relao de irmandade (sibling): Servidores proxy de mesmo nvel se comunicam para trocar informaes (objetos) entre si.
Hierarquia Nacional de Proxies
PAL0100 1998 RNP
Cliente
Network Dispatcher
Organizao lgica dos servidores Nos PoPs onde existirem mais de um servidor (nveis 1 e 2), haver uma outra mquina (dispatcher) que se encarregar de distribuir as requisies entre esses servidores, levando-se em considerao a disponibilidade e carga de cada um.
Hierarquia Nacional de Proxies
PAL0100 1998 RNP
Ethernet
Roteador
Servidor Squid
Clientes
Clientes
Servidor Squid
Atuais verses
Verses do Squid em distribuio atualmente
Squid 1.1.x Utilizada h quase dois anos, a segunda gerao do software (a primeira a 1.0.x). Prov alguns recursos avanados de configurao de hierarquias, mas sua tendncia ser inteiramente substituda pela verso 2.x devido aos grandes avanos em reas como gerenciamento de memria, comunicao entre servidores, entre outros. Squid 2.x Primeiro release lanado em outubro/1998, apresenta avanos como: suporte a HTTP 1.1 (persistent connections), I/O de disco assncrono (usando pthreads), melhor utilizao de memria, uso de cache digest para comunicao entre servidores, gerenciamento via snmp, mensagens de erro customizveis, entre outros.
Hierarquia Nacional de Proxies
PAL0100 1998 RNP
Instalao do Squid
Preparao do Sistema Operacional
Criao de usurio O squid deve ser executado por um usurio comum (ex: user: nobody, group: nogroup). O mais recomendado a criao de um usurio especfico para essa finalidade (ex: user: squid, group: squid) Configurao do Sistema Operacional Deve-se ficar atento para qualquer limitao do sistema operacional que possa impedir o usurio squid de realizar suas tarefas. Entre as limitaes mais comumente encontradas esto: nmero mximo de conexes simultneas, nmero de processos simultneos, quantidade de memria alocada por processo, etc.
Hierarquia Nacional de Proxies
PAL0100 1998 RNP
Instalao do Squid
Compilao
Gerao dos Makefiles Parmetros passados ao configure (programa que gera os Makefiles) --enable-async-io --enable-cache-digests --enable-icmp --enable-snmp --enable-err-language=Portuguese --prefix=/squid_path
Hierarquia Nacional de Proxies
PAL0100 1998 RNP
Resultado da instalao
$home/etc/errors : diretrio com os arquivos (html) de mensagens de erros $home/etc/icons : cones usados pelo squid para listagens de diretrios $home/etc/mib.txt : MIB (snmp) usada para monitorar o squid $home/etc/mime.conf : associa extenses de arquivos a tipos mime $home/etc/squid.conf : arquivo de configurao do squid (controle de acesso, hierarquia, etc) $home/logs/ : diretrio onde sero armazenados os logs de acesso, erro, etc.
Configurao do Squid
squid.conf
Configurao do servidor realizada atravs do squid.conf Quantidade de memria destinada ao armazenamento de objetos Tamanho do disco usado para cache Timeout de conexes Opes de segurana como: permisses de acesso, logs e ident Personalizao das mensagens de erro Configurao do agente snmp (comunidade, permisses etc) Configurao de hierarquia (quem so os pais e irmos)
squid.conf
Configurao de objetos que so sempre buscados diretamente da fonte hierarchy_stoplist URL_substring (...) URL_substring: substring que, quando encontrada nula URL, faz com ela seja buscada diretamente da origem, sem passar pelos vizinhos da hierarquia. Exemplo: para evitar de requisitar para os vizinhos algumas pginas geradas dinamicamente, use: hierarchy_stoplist cgi-bin ?
squid.conf
Configurao da quantidade de memria (RAM) usada para objetos cache_mem bytes bytes: quantidade de memria reservada para armazenar objetos em trnsito, hot-cache e negative cache Memria para hot-cache = quanto mais melhor. Na prtica, entretanto, deve-se respeitar os limites do sistema, evitando assim o uso de swap. Geralmente calcula-se: cache_mem = Total_RAM - (squid_meta_data + outros_processos)
squid.conf
Tamanho mximo dos objetos gravados em disco maximum_object_size bytes
bytes: tamanho mximo do objeto que ser armazenado no cache maximum_object_size grande = maior byte Hit Ratio maximum_object_size pequeno = menor ganho em largura de banda, mas possvel melhora na velocidade (tempo de resposta)
Na prtica, recomenda-se valores de entre 4 e 16 Mb, dependendo do papel do proxy na hierarquia e da disponibilidade de disco.
squid.conf
Arquivos de log: cache_access_log file Registra todas as requisies recebidas (hora, tamanho, tempo, hit/miss etc) cache_log file Informaes sobre o estado do servidor, mensagens de erro, etc. cache_store_log file Registra a entrada e sada de objetos no cache cache_swap_log file Usado pelo squid para gravar os meta-dados dos objetos gravados no disco. Esses dados so usados sempre que o squid iniciado.
Hierarquia Nacional de Proxies
PAL0100 1998 RNP
squid.conf
Diretrio usado para armazenar os objetos do cache: cache_dir cache_dir (...) directory Mbytes level1 directory Mbytes level1 level2 level2
directory: diretrio do disco onde ficaro os objetos do cache. Mbytes: espao mximo que pode ser ocupado por esse arquivos level1: nmero de sub-diretrios que sero criados dentro de directory level2: nmero de sub-diretrios dentro do level1. no level2 que os objetos so efetivamente gravados. Se for especificada mais de uma clusula cache_dir, o squid faz a distribuio do cache entre as vrias parties.
Hierarquia Nacional de Proxies
PAL0100 1998 RNP
squid.conf: segurana
Definindo uma lista de acesso: acl aclname acltype value aclname: nome qualquer para identificar a lista de acesso. Esse nome ser usado quando se for referencia a lista. acltype value: tipo da lista (cada tipo requer um valor num formato especfico): src client_ip_addr/netmask ... dst server_ip_addr/netmask ... srcdomain client_ip_name ... dstdomain urlserver_name ... srcdom_regex client_name ... dstdom_regex urlserver_name ... time [{S|M|T|W|H|F|A}] [hh:mm-hh:mm]
Hierarquia Nacional de Proxies
PAL0100 1998 RNP
Parte B: Instalao e Configurao do Squid acltype value: url_regex urlregex ... urlpath_regex pathregex ... port portrange ... proto protocol ... method methodname ... browser regexp ... user username ... src_as number ... dst_as number ... proxy_auth [refresh] Exemplos: acl localhost src 127.0.0.1/255.255.255.255 acl all src 0.0.0.0/0.0.0.0 acl ok_ports port 80-85 443 563
Hierarquia Nacional de Proxies
PAL0100 1998 RNP
squid.conf: segurana
Permitindo e negando acessos: http_access {allow|deny} aclname icp_access {allow|deny} aclname miss_access {allow|deny} aclname
Configurao de Hierarquias
Comunicao entre servidores
Como realizada: 1. Gerao do Cache Digest Cada servidor gera, de tempo em tempo, seu cache digest. O cache digest nada mais que um vetor de bits gerado (por funes hash) a partir das URLs cacheadas servidor. Atravs dele possvel saber com certa preciso se, dada uma URL, ela ser ou no encontrada no servidor que gerou o digest.
2. Transmisso do digest Cada servidor squid requisita a todos os seus vizinhos (pais ou irmos) uma cpia do digest de cada um. Como o digest no esttico, ele requisitado periodicamente. 3. Busca de objetos Quando uma requisio chega a um proxy server e ela no pode ser resolvida localmente, o proxy verifica o digest de todos os seus vizinhos para saber se o objeto ser encontrado em algum deles. Assim, o objeto ser buscado do vizinho mais prximo (pai ou irmo, indistintamente) dentre aqueles que tm esse objeto. Caso todos os digests causem um miss, a requisio ser direcionada ao pai mais prximo (se existir) ou ao servidor de origem.
Hierarquia Nacional de Proxies
PAL0100 1998 RNP
Eficincia do Cache Digest Problemas: False Miss: uma consulta ao digest informa, erroneamente, que o vizinho NO POSSUI determinado objeto. False Hit: uma consulta ao digest informa, erroneamente, que o vizinho POSSUI determinado objeto O problemas mais grave so os False Misses, que faz com que o squid a busque os objetos da origem quando na verdade poderia busc-lo de um dos vizinhos. Medies realizadas na hierarquia do NLANR mostraram que, na prtica, o nmero de False Misses muito pequeno (na faixa de 0,3%).
Hierarquia Nacional de Proxies
PAL0100 1998 RNP
squid.conf: hierarquia
Definio de servidores vizinhos cache_peer name type tcp_port icp_port options
name: Nome (ou endereo IP) do vizinho type: parent ou sibling tcp_port: porta usada pelo vizinho para atender requisies HTTP icp_port: porta usada pelo vizinho em sesses icp options: proxy-only, weight=n, ttl=n, no-query, default, round-robin, multicastresponder, closest-only, no-digest, no-netdb-exchange, no-delay
squid.conf: hierarquia
Configurao de vizinhos apenas para determinados domnios cache_peer_domain name [!] domain (...)
name: Nome (ou endereo IP) do vizinho domain: domnios para os quais esse vizinho responde, separados por espao. Um ponto de exclamao usado como negao Exemplo: para mandar para o vizinho de ip 10.0.0.1 requisies de todos os subdomnios de .br exceto .rnp.br, use: cache_peer_domain 10.0.0.1 !.rnp.br .br
Referncias
Squid Cache Object - NLANR http://squid.nlanr.net/ Configuring Hierarchical Squid Caches - Duane Wessels, Aug 1997 http://squid.nlanr.net/Squid/Hierarchy-Tutorial/ Cache Digests - Alex Rousskov and Duane Wessels, Jun 1998 http://wwwcache.ja.net/events/workshop/31/rousskov@nlanr_net.ps
O que o Network Dispatcher Mdulos do Dispatcher Instalao e Configurao Interactive Session Suport (ISS) Integrao do Dispatcher com Squid Referncias
Cliente
Network Dispatcher
Mdulos do Dispatcher
O Network Dispatcher dividido em trs tarefas: Executor o responsvel por enderear cada nova conexo a um dos servidores. O executor mantm uma tabela com pesos para cada um dos servidores, usando-a para determinar a quantidade de conexes que ser enviada para eles (o nmero de conexes que vai para cada servidor proporcional ao seu peso). Manager Coleta informaes do executor, dos advisors e de outros programas de monitorao (ex: ISS) e as usa para calcular o peso que cada servidor do cluster passar a ter.
Hierarquia Nacional de Proxies
PAL0100 1998 RNP
Parte C: Instalao e Configurao do Network Dispatcher/ISS... Advisor Os advisors so especficos para cada protocolo de aplicao (no caso do proxy, usaremos o advisor http). Ele monitora uma determinada porta de cada servidor e coleta informaes como tempo de resposta e disponibilidade, repassando essas informaes para o manager.
Instalao e Configurao
O funcionamento do Network Dispatcher
O dispatcher , na verdade, uma mquina que tem dois nmeros ips associados sua interface de rede:
IP do dispatcher (NFA): o nmero IP primrio da interface de rede. Os pacotes endereados a esse IP tem como destino final o prprio dispatcher. IP do cluster: um nmero IP virtual associado interface de rede. Os pacotes recebidos pelo dispatcher que so endereados a esse IP so repassados para os servidores do cluster.
Os servidores que fazem parte do cluster tambm utilizam dois nmeros IP:
IP do servidor: o nmero IP da interface de rede. Cada servidor tem um nmero IP nico que o identifica (endereamento padro de uma sub-rede). IP do cluster: esse IP (o mesmo que fora associado interface de rede virtual do dispatcher) tambm deve existir no servidor, para garantir a consistncia da comunicao IP. Esse nmero, entretanto, no pode ser associado interface de rede de cada servidor, pois isso ocasionaria um conflito na rede (j que ele j est sendo usado no dispatcher). criada ento um interface virtual no loopback dos servidores e associada a ela o IP do cluster.
A comunicao passa pelo dispatcher apenas no sentido cliente -> servidor, e no no sentido servidor -> cliente:
Quando um cliente tenta se conectar no nmero IP do cluster, o pacote IP roteado at chegar interface (virtual) do dispatcher. O dispatcher, por sua vez, sabe quais so os endereos dos servidores, roteando o pacote para um deles (o servidor aceita esse pacote, pois o endereo final igual ao endereo (virtual) de sua interface de loopback). Como o servidor desconhece a presena do dispatcher, a resposta enviada para o endereo que consta no campo src_addr do pacote IP, ou seja, a resposta vai diretamente para o cliente, sem passar de novo pelo dispatcher. Novos pacotes enviados pelo cliente pertencentes mesma sesso/conexo so roteados pelo dispatcher para o mesmo servidor.
Ethernet
Clientes
Clientes
Rotina de Configurao
O nmero ip fixo para gerncia (NFA) do dispatcher o nmero ip primrio da interface de rede. Escolha um nmero ip para o servio a ser fornecido pelo dispatcher (um para cada cluster) e configure-o como ip alias do adaptador de rede: ifconfig adapter alias cluster_ip netmask netmask
Configure a interface de loopback de todos os servidores com o mesmo nmero ip (alias): ifconfig lo0 alias cluster_ip netmask netmask
Parte C: Instalao e Configurao do Network Dispatcher/ISS... Execute o ndserver: ndserver start Execute o executor: ndcontrol executor start Configure o endereo ip NFA do dispatcher: ndcontrol executor set nfa ip_address Configure o endereo ip cluster do dispatcher: ndcontrol cluster add cluster
Defina as portas que sero respondidas pelo cluster: ndcontrol port add cluster:port
Defina quais servidores faro parte desse cluster nas portas especificadas: ndcontrol server add cluster:port:server1 ndcontrol server add cluster:port:server2 ndcontrol server add cluster:port:server3 (...)
Configure a periodicidade (segundos) da interrupo do executor pelo manager: ndcontrol manager interval segundos Configure periodicidade (em nmero de intervalos) em que o manager pedir informaes ao executor: ndcontrol manager refresh intervalos Configure a periodicidade do advisor para pedir aos servidores o status das portas monitoradas e reportar os dados ao manager: ndcontrol advisor internal protocolo porta segundos Recomendao da IBM: no mudar o default.
Configure o threshold do manager, ou seja, qual a mudana mnima necessria em relao ao estado atual do servidor para que ele interrompa o executor e altere os pesos: (a sensitividade dada em porcentagem do estado atual) ndcontrol manager sensitivity sensitividade Configure o smoothing index, ou seja, a constante que regula a alterao mxima que pode ser feitas nos pesos. Um ndice X pode ser pensado como sendo alterao mxima de weight/X, ou seja, quanto maior o X mais suaves so as alteraes. ndcontrol manager smoothing ndice
High Availability
Com o High Availability, dispatcher backup assume as funes do dispatcher primrio em caso de falhas.
Hierarquia Nacional de Proxies
PAL0100 1998 RNP
High Availability
Para o uso de high availability, necessrio o uso do manager e dos advisors. Adicione a informao de heartbeat nos dois dispatchers: ndcontrol highavailability heartbeat add ip_nfa_local ip_nfa_remoto Adicione os hosts que o dispatcher deve alcanar para garantir seu funcionamento: ndcontrol highavailability reach add ip
Configure, no dispatcher primrio, a porta que dever ser utilizada na comunicao com o servidor backup: ndcontrol highavailability backup add primary [auto|manual] numporta Configure, no dispatcher backup, a mesma porta: ndcontrol highavailability backup add backup [auto|manual] numporta Confira o status da configurao nas duas mquinas: ndcontrol highavailability status Copie os scripts goActive e goStandby do diretrio samples para o diretrio bin, e edite-os para que eles reconfigurem o cluster corretamente em casos de queda e volta do dispatcher primrio
Parte C: Instalao e Configurao do Network Dispatcher/ISS... ISS executado em uma mquina (por exemplo, o dispatcher) e, periodicamente, chama cada um dos agentes. Os valores obtidos como resposta so utilizados para se saber o quanto um servidor est melhor que outro. O resultado dessa anlise passado para o mdulo manager do dispatcher que, por sua vez, ir us-lo quando for atribuir pesos para os servidores. Exemplo de configurao do ISS: METRIC CUSTOM netstat -tn | wc -l POLICY MIN indica que, quando menos (MIN) conexes TCP o servidor tiver, maior ser o peso atribudo a ele pelo dispatcher. Podem ser criados scripts que capturem o tempo de CPU, uso de disco, rede, etc.
Parte C: Instalao e Configurao do Network Dispatcher/ISS... Instalao do iss-agent Via SMIT, instale o iss-agent em cada servidor Altere o /etc/services, acrescentando o servio issagent porta/tcp. A porta geralmente utilizada a 10001 Altere o /etc/inetd.conf para permitir que o issagent seja disparado pelo dispatcher. Ser acrescentada a seguinte linha ao arquivo: issagent stream tcp nowait root /usr/lpp/issaix/iss/issagent issagent Reinicie o inetd dos servidores
Parte C: Instalao e Configurao do Network Dispatcher/ISS... Instalao do ISS Exemplo de arquivo de configurao (para integrao com o dispatcher)
ISS_MODE IGNORE_NAMED ISS_PORT 10001 NAME cachernp.anades.dcc.ufmg.br DISPATCHER_PORT 10004 METRIC CUSTOM netstat -tn | wc -l POLICY MIN SERVERS rnp0 rnp1 DISPATCHERS dispatcher HEARTBEAT_INTERVAL 10 HEARTBEATS_PER_UPDATE 2 POOL_ALARM echo "cachernp ran out of servers at `date`" >> /tmp/issalarm.log
Squid server
Squid server
Squid server
Sibling Relationship
Sibling No caso de dois PoPs serem irmos (relao para PoPs no mesmo nvel da hierarquia), o relacionamento configurado fazendo-se todos os nodos do cluster de um PoP como sibling de todos os nodos do cluster do outro PoP. Essa configurao tambm no depende da existncia do dispatcher. A disponibilidade garantida pelo prprio squid, que s requisies para vizinhos que estejam operantes.
Squid (PAI)
Squid (PAI)
Squid (PAI)
Sibling Relationship
Dispatcher
Squid (filho)
Squid (filho)
Parte C: Instalao e Configurao do Network Dispatcher/ISS... Relacionamento entre PoPs Parent No caso do cluster de um PoP ser filho do cluster de um outro PoP (relao entre PoPs de diferentes nveis da hierarquia), o relacionamento configurado da seguinte forma: Todos os nodos do cluster do PoP do nvel inferior so configurados como sibling de todos os nodos do cluster do PoP de nvel superior Todos os nodos do cluster do PoP do nvel inferior so configurados como filhos do Network Dispatcher (endereo do cluster) Essa configurao garante a melhor taxa de acerto. O balanceamento de carga continua sendo preservado pelo dispatcher, que rotear as requisies resultantes de miss (e as feitas de outros clientes) para os servidores menos carregados.
Hierarquia Nacional de Proxies
PAL0100 1998 RNP
Squid (PAI)
Squid (PAI)
Squid (PAI)
Sibling Relationship
Parent Relationship
Dispatcher
Squid (filho)
Squid (filho)
Referncias
Using and Administering Interactive Session Support for AIX IBM eNetwork Dispatcher http://www.software.ibm.com/enetwork/dispatcher/ Network Dispatcher 2.0 Users Guide http://www.software.ibm.com/enetwork/dispatcher/library/publications/ug_nls.html
Squid: estatsticas (cache manager, snmp) Squid: tuning Dispatcher: estatsticas Dispatcher: tuning
Parte D: Estatsticas e Tuning dos Servidores Instalao e uso do cache manager O cachemgr.cgi gerado na compilao do squid, sendo gravado no diretrio bin/ Copie-o para um servidor web (com permisso de execuo) e use-o a partir da. O servidor squid deve ser configurado, atravs das listas de acesso, para permitir que o servidor Web busque informaes via cache manager. O cache manager era a principal ferramenta para monitorao do servidor. Apesar de ser bastante til em determinadas ocasies, a tendncia que ele perca espao, uma vez que a grande maioria das informaes por ele providas j podem ser obtidas via snmp.
Squid: tuning
Dentre os aspectos de configurao que costumam ser fontes de problema, esto: Tempo de vida do objeto (LRU expiration time) muito baixo: implica que a atual capacidade do disco est pequena para as necessidades. Solues so o aumento do disco ou a diminuio do tamanho mximo do objeto que pode ser armazenado. Todos os Squid DNS Servers (resolvedores de nomes do squid) em utilizao: um dos potenciais gargalos do squid, pois resoluo de nomes uma das nicas chamadas blocantes que o squid realiza. Uso constante de swap: configurao muito alta do cache_mem (pool de memria reservado para hot_cache e objetos em trnsito) - ou, obviamente, existncia de pouca memria no sistema. entre outros.
Hierarquia Nacional de Proxies
PAL0100 1998 RNP
Squid: tuning
Criao de uma linha de base (baseline)
Estatsticas de todo o sistema (squid e sistema operacional), bem como os detalhes da configurao, devem ser coletados para a criao de uma baseline quando o servidor estiver apresentado uma boa performance. Esses valores devem ser coletados e armazenados, pois tero grande uso na deteco de problemas futuros. Atravs de dados a respeito do funcionamento perfeito do servidor possvel saber a fonte de problemas caso eles venham a acontecer, possibilitando uma recuperao do sistema de maneira bem mais simplificada.
Dispatcher: estatsticas
Monitorao Uma grande deficincia da primeira verso do dispatcher no disponibilidade de um agente snmp (deficincia j contornada na verso 2). Assim, a principal forma de monitorao remota atravs do uso da MIB do AIX. Estatsticas Estatsticas de utilizao e informaes sobre o estado atual do dispatcher podem ser obtidas atravs da adio da clusula status ou report em vrios dos comandos do ndcontrol. Exemplo: ndcontrol manager status ndcontrol advisor report cluster:port
Hierarquia Nacional de Proxies
PAL0100 1998 RNP
Dispatcher: tuning
A otimizao do dispatcher diz respeito forma de melhorar a distribuio de carga. Isso pode ser feito de duas maneiras: Corrigindo os pesos atribudos a cada mdulo do dispatcher Reformulando as mtricas usadas pelo ISS: idealmente, para se encontrar o servidor menos carregado usando-se o ISS deve-se levar em considerao aspectos como: Tempo de CPU Utilizao de disco Utilizao de rede Utilizao de memria Esses parmetros so especficos para as necessidade do servidor. No caso do squid, ainda faltam estudos para definir o real peso de cada um.
Hierarquia Nacional de Proxies
PAL0100 1998 RNP
MIB do AIX
Informaes do sistema: verso SO, nome, uptime, etc. Interfaces: caractersticas (MTU, velocidade), endereos fsicos, informaes de trfego (nmero de IP: configuraes (ip forwarding, TTL), tabela de rotas, estatsticas (nmero de pacotes enviados, recebidos OK, descartados, etc) TCP: nmero de conexes (mximo e atual), estado de cada conexo, estatsticas (nmero de segmentos enviados, recebidos OK, descartados, etc) UDP: nmero de endpoints (sockets) abertos, estatsticas (nmero de datagramas enviados, recebidos OK, descartados, etc)
MIB do Squid
cacheSystem: uptime, vmsize, capacidade do disco cacheConfig: nome/verso do software, email do admistrador cacheStorageConfig: configurao de memria e disco usadas pelo squid cachePerf: nmero de falhas de pgina, tempo de CPU consumido, nmero de objetos armazenados, total de requests, hits, errors, tempos de resposta (dns, http, icp), etc... cacheNetwork: estatsticas do ip, dns e fqdn Cache (requests, hits, negative hits, miss) cacheMesh: configurao de hierarquia (estado operacional dos siblings e parents, tempos de resposta desses vizinhos, etc), estatsticas de requisies recebidas (listas dos clientes, nmero de requests por cliente, nmero de hits, etc).
Hierarquia Nacional de Proxies
PAL0100 1998 RNP
pnm
Monitorao de variveis SNMP
O pnm formado por um conjunto de mdulos que trabalham de maneira integrada no gerenciamento de monitorao. Sua arquitetura foi concebida e maneira a aliar flexibilidade facilidade de uso, tornando-se uma ferramenta poderosa em redes de qualquer porte. Log das variveis coletadas (histrico) Atravs do armazenamento em disco dos valores coletados, possvel ao administrador configurar a gerao de eventos baseado nos estados passados de todas as variveis coletadas.
Tomadas de deciso baseadas em expresses regulares Todas as tomadas de deciso so baseadas na avaliao de expresses regulares (sintaxe=perl), que podem envolver uma ou mais das variveis coletadas (no seu estado atual ou em qualquer estado passado). Aes Personalizadas Os alarmes gerados pelo pnm nada mais so que scripts externos. Isso permite gerarmos qualquer tipo de alarme, como envio de email, pager, etc. Correlao de Eventos Alm dos estados das variveis SNMP, as expresses regulares do pnm podem ter como entrada qualquer fonte externa, permitindo uma grande flexibilidade.
Hierarquia Nacional de Proxies
PAL0100 1998 RNP
Gerenciamento pr-ativo Atravs do uso dos estados passados das variveis, possvel implementar o gerenciamento pr-ativo facilmente. Podemos, por exemplo, gerar eventos sempre que algum estado permanecer inalterado por determinado tempo, prevenindo assim um potencial hazard. Gerao de estatsticas Os arquivos gerados pela coleta das variveis representam um histrico dos estados, podendo ser usados posteriormente como entradas para scripts de gerao de estatsticas.
pnm
Configurao
Definio de alias para a hierarquia SNMP Para facilitar a leitura do pnm.conf, podem ser definidos aliases para partes da MIB do elemento que estar sendo monitorado.
// Defines aliases for SNMP variables // Syntax: // #define alias variable // Aliases can be later used as prefixes or suffixes, // for example: alias.1.3 3.alias 1.2.alias.4 #define oper interfaces.ifTable.ifEntry.ifOperStatus #define admin interfaces.ifTable.ifEntry.ifAdminStatus
Parte E: Ferramentas de Monitorao Definio das aes que sero tomadas de acordo com os valores das variveis
// Calls the module that pages network administrators reporting that the // link is down if the interface is administratively up, if it was // operationally up (two pollings before), if it became operationally // down on the last polling and if it remained that way. // Syntax: // a:regex:action a:(("$routerAdminS0"=~/up/)&&("$routerOperS0"!~/up/)&&("$routerOperS0[1 ]!~/up/)&&("$routerOperS0[2]"=~/up/)):/opt/pnm/bin/beep router S0 routerOperS0 // If the interface was operationally down and came back up, report the // network administrator a:(("$routerAdminS0"=~/up/)&&("$routerOperS0"=~/up/)&&("$routerOperS0[1 ]"!~/up/)):/opt/pnm/bin/beep router S0 $routerOperS0
Referncias
Squid SNMP http://squid.nlanr.net/Squid/FAQ/FAQ-18.html
Topologia Inicial
O Papel do PoPs na hierarquia
Inicialmente, os SP2 (que seriam nvel 1) estaro inativos. PoPs do Pentgono: Nvel 1 Todos estaro no nvel 1 da Hierarquia e sero irmos entre si Atuaro comos pais dos PoPs com cache nvel 2, que so aqueles diretamente conectados com os PoPs do Pentgono PoPs diretamente conectados ao Pentgono: Nvel 2 Sero filhos dos servidores dos PoPs nos quais esto conectados Atuaro comos pais dos PoPs com cache nvel 3 (PoPs que no se incluem nas duas situaes citadas)
Hierarquia Nacional de Proxies
PAL0100 1998 RNP
AP
TO
PE
PA
MT
AC
GO
MS
AM
RO
DF
MA SC MG RS ES
Sibling Relantionship
SP
RJ
Parent Relantionship
PR CE BA
Tuning da Hierarquia
Ainda cedo para sabermos quo boa a hierarquia inicial proposta. Durante o seu funcionamento, algumas mtricas sero analisadas para sabermos onde e o que ajustar. Essas mtricas representam a qualidade do servio, sendo elas: Tempo de servio (Service Time) Taxa de acerto (Hit Ratio) Estado (trfego) das linhas do backbone Questes: Quais so os resultados aceitveis? Como descobrir a causa de resultados abaixo dos aceitveis? Como corrigir o problema?
Hierarquia Nacional de Proxies
PAL0100 1998 RNP
Tuning da Hierarquia
Service Time
A alterao no tempo de servio pode ser ocasionada por: Miss Ratio Variedade dos objetos Thrashing Overload de servidores Outstanding Connections Overload de CPU Overload de memria (page faults) Overload de disco Trfego nas linhas (upstream / downstream) Problema conjunto: ajuste de hierarquia e de roteamento
Hierarquia Nacional de Proxies
PAL0100 1998 RNP
Tuning da Hierarquia
Hit Ratio
Muitas das vezes, apesar de o tempo de resposta estar dentro do esperado, uma baixa taxa de hit pode estar impedindo a melhoria desse tempo. O Hit Ratio influenciado por: Variedade dos objetos: um caso possvel que requisies destinadas a um servidor que esteja apresentando Hit local baixo poderiam ser resolvidas por um outro servidor. Ex: ES poderia ter um cliente governamental (que acessa apenas dados em Braslia) e redicionar suas requisies diretamente pra l, uma vez que o Hit em MG est um baixo. Thrashing
Ocasionado por limitao de disco (o que no um problema nesse caso, dada a configurao dos servidores da RNP)
Hierarquia Nacional de Proxies
PAL0100 1998 RNP
Tuning da Hierarquia
Estado das linhas do backbone
Outra mtrica a ser observada o estado dos links. Apesar de ser extremamente improvvel, algum PoP (dentro do pentgono) pode se tornar um atrator de requisies. Isso certamente causar um desbalanceamento nas linhas. Esse problema dever ser resolvido levando-se em considerao: Alteraes na poltica de roteamento Alteraes na topologia lgica da hierarquia