| Red Hat Enterprise Linux 4: Introdução à Administração de Sistemas | ||
|---|---|---|
| Anterior | Capítulo 2. Monitoramento de Recursos | Próxima |
Conforme dito antes, os recursos presentes em todos os sistemas são energia da CPU, largura de banda, memória e armazenamento. À primeira vista, pode parecer que o monitoramento consistiria apenas da avaliação destes quatro fatores distintos.
Infelizmente, não é tão simples. Por exemplo: considere um drive de disco. Quais as coisas que você gostaria de saber sobre seu desempenho?
Quanto há de espaço livre?
Quantas operações I/O por segundo executa em média?
Quanto tempo leva para completar cada operação I/O em média?
Quantas destas operações I/O são acessos (reads)? Quantas são gravações (writes)?
Qual a quantidade média de dados acessados/gravados em cada I/O?
Há outras maneiras de estudar o desempenho do drive de disco; estes pontos apenas abrangem a superfície. O conceito principal é ter em mente que há muitos tipos diferentes de dados para cada recurso.
As seções seguintes exploram os tipos de utilização das informações úteis para cada tipo de recurso principal.
Na sua forma mais simples, monitorar a energia da CPU consiste em determinar se a utilização da CPU atinge, em algum momento, 100%. Se a utilização da CPU traz algo abaixo de 100%, não importa o que o sistema está fazendo, há energia de processamento disponível para mais carga de trabalho.
Entretanto, é raro um sistema que não atinge 100% de utilização da CPU em pelo menos parte do tempo. Neste ponto é importante examinar os dados de utilização mais detalhadamente. Ao fazer isso, é possível começar a determinar onde a maioria da sua energia de processamento está sendo consumida. Aqui estão algumas das estatísticas mais comuns de utilização da CPU:
A porcentagem de tempo gasto com o processamento a nível de usuário versus o processamento a nível do sistema pode indicar se a carga de um sistema deve-se à execução de aplicações ou à sobrecarga do sistema operacional. As altas porcentagens a nível de usuário tendem a ser boas (assumindo que os usuários tenham desempenho satisfatório), enquanto as altas porcentagens a nível de sistema tendem a indicar problemas que requerem uma investigação mais profunda.
Uma mudança de contexto ocorre quando a CPU para de rodar um processo e começa a rodar outro. Como cada mudança de contexto requer que o sistema operacional tome o controle da CPU, mudanças de contexto excessivas e altos níveis de consumo da CPU a nível de sistema tendem a caminhar juntos.
Como o nome implica, as interrupções são situações nas quais o processo desempenhado pela CPU é alterado abruptamente. As interrupções geralmente ocorrem devido a atividade do hardware (como um dispositivo I/O completando uma operação I/O) ou devido a software (como interrupções do software que controla o processamento da aplicação). Como as interrupções devem ser resolvidas a nível do sistema, altas taxas de interrupção levam a um consumo maior da CPU a nível do sistema.
Um processo pode estar em estados diferentes, como:
Aguardando a finalização de uma operação I/O
Aguardando o sub-sistema de administração da memória resolver uma falha de página
Nestes casos, o processo não precisa da CPU.
No entanto, o processo sofre mudanças eventualmente e torna-se executável. Como o nome implica, um processo executável é capaz de executar o trabalho assim que estiver agendado para receber tempo da CPU. Entretanto, se mais de um processo for executável numa determinada hora, todos os processos executáveis menos um[1] devem esperar pela sua vez na CPU. Ao monitorar o número de processos executáveis, é possível determinar o quanto seu sistema depende da CPU.
Outras medidas de desempenho que refletem um impacto na utilização da CPU tendem a incluir serviços diferentes que o sistema operacional oferece aos processos. Podem incluir estatísticas da administração da memória, do processamento I/O e assim por diante. Estas estatísticas também revelam que, quando o desempenho do sistema é monitorado, não há limites entre as estatísiticas diferentes. Em outras palavras: as estatísticas de utilização da CPU podem terminar apontando para um problema no sub-sistema I/O ou as estatísticas de utilização da memória podem revelar uma falha no design da aplicação.
Consequentemente, ao monitorar o desempenho do sistema, não é possível examinar nenhuma estatística isoladamente; só é possível extrair informações significativas ao examinar o quadro geral de quaisquer estatísticas que você coletar.
Monitorar a largura de banda é mais difícil que monitorar outros recursos aqui descritos. A razão disso deve-se ao fato que as estatísticas de desempenho geralmente baseiam-se nos dispositivos, enquanto a maioria dos lugares onde a largura de banda é importante são os canais que conectam dispositivos. Nestes casos, onde mais de um dispositivo compartilha um canal em comum, você deve observar estatísticas razoáveis para cada dispositivo, mas a carga agregada imposta por estes dispositivos no canal seria bem maior.
Um outro desafio ao monitorar a largura de banda: pode haver circunstâncias nas quais as estatísticas dos dispositivos podem não estar disponíveis. Isto é particularmente verdadeiro para canais de expansão do sistema e caminhos de dados[2]. No entanto, mesmo que as estatísticas relacionadas à largura de banda não estejam 100% corretas, frequentemente há informações necessárias para possibilitar algum nível de análise, particularmente ao considerar as estatísticas relacionadas.
Estas são algumas das estatísticas mais comuns relacionadas à largura de banda:
As estatísticas da interface de rede oferecem um indicador da utilização da largura de banda de um dos canais mais visíveis — a rede.
Estas estatísticas relacionadas à rede podem indicar colisões excessivas, transmitir e receber erros, entre outros. Através do uso destas estatísticas (particularmente, se houver estatísticas para mais de um sistema em sua rede), é possível solucionar um mínimo de problemas de rede, mesmo antes de usar as ferramentas de diagnóstico de rede mais comuns.
Normalmente coletada para dispositivos I/O de bloco, como drives de fita de alto desempenho e drives de disco, esta estatística é uma boa maneira de determinar se a largura de banda de um determinado dispositivo atingiu seu limite. Devido sua natureza eletromecânica, os drives de fita e de disco podem executar somente um determinado número de operações I/O a cada segundo; seu desempenho decai rapidamente quando esse limite é atingido.
Se existe alguma área onde podemos encontrar uma riqueza de estatísticas de desempenho, essa área é o monitoramento da utilização da memória. Devido à complexidade inerente dos sistemas operacionais com memória virtual paginada por demanda, as estatísticas de utilização da memória são muitas e variadas. É aqui que reside a maioria do trabalho do administrador de sistemas com a administração dos recursos.
Os dados seguintes representam uma visão geral superficial das estatísticas comumente encontradas sobre a administração da memória:
Estas estatísticas possibilitam medir o fluxo de páginas da memória do sistema para os dispositivos de armazenamento em massa anexos (geralmente drives de disco). Taxas altas de ambas estatísticas podem significar que o sistema tem pouca memória física e está com thrashing, ou seja, gastando mais recursos do sistema para mover páginas para dentro e para fora da memória que para rodar aplicações.
Estes dados mostram como são usadas as páginas altamente residentes na memória. Uma falta de páginas inativas pode indicar a falta de memória física.
Estes dados oferecem detalhes adicionais sobre as estatísticas de páginas inativas/ativas mais simplistas. Ao usar estas estatísticas, é possível determinar a mistura geral da utilização da memória.
Estes dados mostram o comportamento da memória swap do sistema. Altas taxas podem indicar a falta de memória física.
O bom monitoramento da utilização da memória requer um bom entendimento de como funcionam os sistemas operacionais com memória virtual paginada por demanda. Apesar do assunto isoladamente poder ocupar um livro inteiro, seus conceitos básicos estão abordados no Capítulo 4. Este capítulo, juntamente ao tempo gasto com o monitoramento de um sistema real, oferece a base para aprender mais sobre o assunto.
O monitoramento do armazenamento geralmente ocorre em dois níveis diferentes:
Monitoramento de espaço suficiente em disco
Monitoramento de problemas de desempenho relacionados ao armazenamento
A razão disto: é possível ter problemas sérios em uma área e nenhum problema em outra. Por exemplo: é possível fazer com que um drive de disco esgote seu espaço sem causar nenhum tipo de problema relacionado ao desempenho. Da mesma forma, é possível ter um drive de disco com 99% de espaço livre com seus limites de desempemnho sendo forçados.
Entretanto, é mais provável que o sistema mediano experimente vários graus de falta de recursos em ambas áreas. Por causa disso, também é provável que — até certo ponto — os problemas de uma área impactem noutra área. Frequentemente, esse tipo de interação toma a forma de desempenho I/O descendente, conforme o drive de disco se aproxima de 0% de espaço livre; não obstante, nos casos de cargas I/O extremas, pode ser possível diminuir I/O para um nível no qual as aplicações não mais rodam apropriadamente.
Em qualquer caso, as estatísticas a seguir são úteis para monitorar o armazenamento:
Espaço livre é provavelmente o recurso que todos os administradores de sistemas monitoram de perto; seria raro um administrador de sistemas que nunca verifica o espaço livre (ou que não tenha uma maneira automatizada de fazê-lo).
Estas estatísticas (como número de arquivos/diretórios, tamanho médio de arquivo, etc) oferecem detalhes adicionais sobre a simples porcentagem de espaço livre. Como tais, estas estatísticas possibilitam aos administradores configurar o sistema para o melhor desempenho, já que a carga I/O imposta por um sistema de arquivo com muitos arquivos pequenos não é a mesma que àquela imposta por um sistema de arquivo com um único arquivo enorme.
Esta estatística é uma boa maneira de determinar se os limites de largura de banda de um determinado dispositivo foram atingidos.
Uma análise um pouco mais detalhada das transferências por segundo, estas estatísticas permitem ao administrador de sistemas entender melhor a natureza das cargas I/O experimentadas por um dispositivo de armazenamento. Isto pode ser crítico já que algumas tecnologias de armazenamento têm características de desempenho bem diferentes para operações de acesso (read) e para operações de gravação (write).
| [1] | Assumindo um sistema com processador único. |
| [2] | Mais informações sobre canais, caminhos de dados e largura de banda podem ser encontradas no Capítulo 3. |