• Nenhum resultado encontrado

Conceitos Básicos “Se os fatos não se encaixam na teoria,

2.4 Planejamento de Capacidade

O intuito do planejamento de capacidade é garantir que as demandas futuras de carga possam ser atendidas de maneira efetiva considerando-se os acordos de nível de serviço e as restrições tecnológicas e de custo que forem aplicáveis. Enquanto isso, o gerenciamento de capacidade se preocupa em determinar se os níveis de serviço estão atualmente sendo atendidos pela capacidade instalada do sistema. Ou seja, enquanto o planejamento de capacidade tem a atenção voltada para o futuro o gerenciamento se detém no presente.

Na prática, planejamento de capacidade é o processo de prever quando os níveis futuros de carga saturarão o sistema (analisando para isso a evolução da carga devido às aplicações existentes e futuras), ou ainda quando eles comprometerão o nível de serviço prestado, e determinar o modo mais econômico de adiar a saturação ou o comprometimento ao máximo [Menascé e Almeida 2002].

Nessa definição, dois aspectos merecem destaque: previsão e saturação. Não é interessante esperar que a intensidade de carga aumente para depois descobrir o que acontece com o nível de serviço (por exemplo, com o tempo de resposta). A falta de um procedimento de planejamento pró-ativo pode levar a problemas inesperados de indisponibilidade e desempenho causados pela sobrecarga (ou saturação) de alguns recursos do sistema. Um sistema é dito saturado quando um de seus recursos se aproxima de 100% de utilização, tornando-se um gargalo para o seu perfeito funcionamento, levando ao comprometimento do seu desempenho.

O nível de serviço de um sistema possui forte relação com o custo da infra- estrutura necessária para suportá-lo. Essa relação forma a base do planejamento da capacidade.

A qualidade de serviço prestado por um sistema normalmente está associado ao seu desempenho. Se este for ruim pode gerar insatisfação dos usuários do serviço, ocasionando perdas para o negócio. Logo, o planejamento de capacidade está intimamente ligado à avaliação constante do desempenho de um sistema.

Outro motivo para realizar antecipadamente o planejamento de capacidade é que a solução de um problema de desempenho pode não ser simples de ser implantada. Não basta ter recursos financeiros disponíveis para resolvê-lo. Muitas vezes a solução implica em mudanças arquiteturais na infra-estrutura ou até mesmo no sistema, consumindo um tempo bastante considerável para especificação, compra e implementação. Mesmo que essa mudança não seja necessária, a empresa precisa de um tempo considerável para adquirir, instalar e configurar os recursos adicionais suficientes para garantir que o nível de serviço seja restabelecido.

Resumidamente, o planejamento de capacidade é importante para evitar perdas financeiras, motivadas pela queda de desempenho ou até mesmo a indisponibilidade do sistema; para garantir a satisfação do usuário; para preservar a imagem externa da empresa; e porque problemas de capacidade não podem ser resolvidos instantaneamente.

A utilização das técnicas de planejamento de capacidade não deve ser exclusiva de situações onde grandes mudanças sejam demandadas na carga de trabalho.

28 Planejamento de Capacidade

Elas integram também a atividade de gerenciamento da capacidade do sistema, pois ao contrário de situações com grandes mudanças, a carga de trabalho deve ser monitorada constantemente, detectando tendências na sua evolução.

Da mesma forma, o nível de serviço deve ser monitorado para identificar possíveis problemas com a capacidade instalada, fazendo assim os ajustes necessários (tuning) no sistema para garantir a manutenção da qualidade do serviço no nível desejado. Esses ajustes muitas vezes implicam apenas em alterações nas configurações do sistema, ou até mesmo realocação de recursos existentes. No gerenciamento da capacidade, a configuração do ambiente e a carga atual são entradas no processo de tuning.

Entretanto, no planejamento de capacidade primeiramente é realizado uma previsão da carga futura baseada nos dados obtidos a partir de uma monitoração de longa duração do sistema, elaborando-se cenários futuros de carga. Em seguida, se junta a esses cenários as diferentes alternativas de configuração possíveis para melhorar o desempenho do sistema. A partir daí, é realizado um dimensionamento (sizing) da solução necessária para manter os níveis de serviço acordados, evitando a saturação do sistema.

É importante prever com antecedência o impacto das mudanças no desempenho do sistema como um todo. Para isso, a utilização de técnicas de avaliação de desempenho baseadas em modelos (analíticos ou simulação) torna-se um diferencial, pois vários cenários podem ser avaliados para a escolha do mais adequado. Essa estratégia vale tanto para o planejamento quanto para o gerenciamento da capacidade, pois em ambas as situações um modelo de desempenho para o sistema pode ser desenvolvido.

2.4.1 Dificuldades no Planejamento de Capacidade

A tarefa de planejar a capacidade de sistemas enfrenta uma série de dificuldades e problemas que foram resumidos e apresentados por [Jain 1991]. Inicialmente, uma das dificuldades é o fato de não existir uma nomenclatura padrão para a área. Alguns fabricantes vendem produtos que julgam serem para planejamento de capacidade, quando na verdade auxiliam apenas o tuning de sistemas. Enquanto que outros vendem produtos de sizing para serem utilizados no planejamento, porém não permitem a caracterização da carga de trabalho.

Um problema de difícil resolução nessa área é prever o comportamento do sistema quando da inserção de novas tecnologias. Como não se tem parâmetros para determinar o comportamento futuro dos elementos novos, tende-se a defini-lo em função das tecnologias atuais, o que normalmente distorce os resultados da previsão.

Os modelos gerados para representar o sistema, assim como os modelos de carga, precisam de parâmetros de entrada que nem sempre podem se obtidos via medição. Isso acontece, por exemplo, quando o sistema é fechado, fazendo com que não se consiga instrumentá-lo para obtenção de resultados internos. Outro problema é a inviabilidade de se obter certas medidas relativas ao comportamento do usuário do sistema, como, por exemplo, o think time.

Para que se possam utilizar os modelos na representação do sistema real são fundamentais suas validações para garantir que os resultados obtidos pelos modelos possam substituir com relativa precisão o ambiente real. O problema é

que a validação nem sempre é fácil de ser realizada. O procedimento ideal de validação é comparar os resultados obtidos pelo modelo com resultados medidos no sistema real para vários cenários de carga diferentes, fazendo com que o modelo possa ser testado em circunstâncias diversas. Sem uma validação desse tipo é suspeito o planejamento de capacidade utilizando esses modelos. Outro aspecto importante é que a avaliação de desempenho do sistema é apenas uma parte do planejamento de capacidade. Precisa-se ainda acoplar a esses resultados informações sobre os custos das soluções com o intuito de realizar uma análise de capacidade versus custo, fazendo essa atividade ainda mais complexa.

Como não existe nenhuma definição aceita como padrão para capacidade de um sistema, alguns a definem como a vazão máxima (throughput máximo) obtida pelo sistema. Entretanto, outros definem capacidade como a quantidade máxima de usuários que o sistema pode suportar enquanto mantém seus objetivos de desempenho. Nesse caso, o número de usuários é apenas um exemplo de uma unidade de carga.

Outra dificuldade importante ressaltada por [Jain 1991] é que existe um número de diferentes capacidades para o mesmo sistema. Normalmente um sistema possui uma capacidade nominal (teórica), uma capacidade útil (prática) e ainda uma capacidade no joelho (ponto de inflexão). Mais detalhes podem ser encontrados no Apêndice A, na Seção A.3.

2.4.2 Definindo a Capacidade Adequada de um Sistema

A definição da capacidade adequada para um sistema depende de três elementos principais: acordos de nível de serviço (SLA, Service Level Agreement); tecnologias e padrões especificados; e restrições de custo.

A capacidade para ser considerada adequada precisa garantir que os níveis de serviço prestados pelo sistema estejam alinhados com os níveis estabelecidos pelo SLA. A oferta da capacidade adequada para atender ao SLA é realizada utilizando um conjunto de tecnologias e padrões especificados (ex. servidores, sistemas operacionais, MOM, banco de dados, rede, etc.) que podem ser configurados e combinados das mais diversas formas. A decisão de quais recursos utilizar, e como combiná-los, normalmente, seguem aspectos de desempenho, apesar de que em algumas organizações essa decisão é baseada na facilidade de administração, na familiaridade com o ambiente, no custo, na quantidade e qualidade dos fornecedores.

O problema de oferecer a capacidade adequada para atender ao SLA seria bem mais fácil de resolver se houvesse recursos financeiros ilimitados. As restrições de custo são estabelecidas pela gerência e limitam o espaço das possíveis soluções. Os custos envolvidos em uma solução compreendem o custo de aquisição, desenvolvimento, instalação, treinamento, operação, suporte, manutenção. A somatória desses custos compõe o custo total de propriedade (TCO, Total Cost of Ownership).

Resumidamente, um sistema possui a capacidade adequada se o SLA é continuamente atendido para tecnologia e padrões especificados, e se os serviços são fornecidos dentro das restrições de custo definidas [Menascé e Almeida 2002].

30 Metodologia para Planejamento de Capacidade