como e por que monitorar o uso da CPU do servidor

quando estou usando qualquer aplicativo, quero que seja rápido. Aplicações rápidas me fazem feliz. E tenho a certeza que é o mesmo com toda a gente. Se você possui algum aplicativo que funcione com a internet, é essencial se concentrar no desempenho do servidor. Há muitas coisas para cuidar para ter um servidor com bom desempenho. Mas para melhorar algo, você precisa saber onde ele está em primeiro lugar. Portanto, monitorar seu servidor é o primeiro passo para aumentar o desempenho do seu servidor.

ao falar sobre o que monitorar para entender o desempenho de um servidor, existem muitas métricas que podem surgir. Vamos nos concentrar em apenas um Neste post: uso da CPU do servidor. Começaremos explicando o que é o uso da CPU do servidor e, em seguida, discutiremos por que e como monitorá-lo.

CPU em cores Scalyr significando monitor de uso da cpu do servidor

o que significa o uso da CPU do servidor?

tudo o que acontece no servidor é uma tarefa para o sistema. Essa tarefa é dividida em processos executados pelo servidor. Os processos podem ser de diferentes complexidades e diferem na rapidez com que podem ser concluídos. E com base nisso, a CPU leva algum tempo para executar o processo. Em outras palavras, a CPU está sendo usada para executar o processo. O uso da CPU é a porcentagem de tempo que a CPU está sendo usada para concluir suas tarefas.

monitor de uso da cpu do servidor

quando seu sistema está funcionando, uma CPU pode estar em três estados: ocioso, ocupado ou aguardando E/S.

ocioso

quando a CPU está no estado ocioso, a CPU não está fazendo nada. Está apenas esperando que uma tarefa seja atribuída a ela. É altamente improvável que você veja uma CPU em estado ocioso se você tiver um único sistema de processador. Mesmo que você não esteja executando nenhum aplicativo ou fazendo nada, a CPU seria usada para executar tarefas do sistema operacional. Mas se o seu sistema tiver vários processadores, você poderá ver um ou alguns deles ociosos. Isso pode ser porque apenas um ou poucos processadores estão sendo usados e os outros não têm nada a ver.

ocupado

o oposto do estado ocioso é o estado ocupado, que é quando a CPU está sendo usada para executar um processo. Uma CPU é responsável por diferentes tipos de Tarefas. Durante o processo de execução de Tarefas, uma CPU faz quatro coisas:

  1. buscar: as instruções para concluir a tarefa são armazenadas na memória. A CPU precisa obter essas instruções da memória para entender o que fazer.Decodificar: as instruções para a CPU podem estar em diferentes formatos, como um programa. Por exemplo, digamos que você escreveu um programa em C, Java ou Python. As CPUs não conseguem entender diretamente essas linguagens de codificação. Tem que decodificá-lo em uma forma que possa entender.
  2. executar: É quando a CPU está realmente fazendo a tarefa.
  3. Armazenamento: assim que a CPU concluir a tarefa, ela deverá fornecer feedback sobre a tarefa. Os resultados após a execução da tarefa são armazenados na memória.

operações de E/S

este é o estado em que a CPU não está completamente ociosa, mas também não está ocupada. Durante a execução de um processo, uma CPU pode ter que produzir alguns dados para outro componente ou processo. Ou a CPU pode ter que esperar para obter dados de outro processo ou componente. Nesse caso, está aguardando a conclusão da operação de E/S para que ela possa retomar a execução de sua tarefa.

o uso da CPU é a medida da CPU quando está em um estado não ocioso. Embora o uso da CPU seja medido em porcentagem, você pode ver os valores de uso da CPU sendo maiores que 100%. Isso não significa que a CPU esteja sobrecarregada. Por exemplo, você veria o uso da CPU maior que 100% em sistemas multiprocessadores. O valor do uso da CPU para um sistema é a soma da porcentagem de uso da CPU de CPUs individuais. Portanto, se você tiver dois processadores e um deles tiver um uso de CPU de 60% e o outro tiver um uso de CPU de 50%, o valor total de uso da CPU será de 110%.

o que causa alto uso da CPU?

encontrar o núcleo do problema ajuda a implementar melhores soluções para alto uso da CPU. Pode haver várias razões para o uso da CPU com base em casos de uso. Estou listando as causas mais comuns.

processos com alta exigência de CPU

Alguns programas exigem recursos elevados de CPU. Se você tem um sistema de baixa especificação e está tentando executar um videogame high-end, obviamente o uso da CPU passará pelo telhado. Da mesma forma, pode haver diferentes processos que exigem altos recursos da CPU para funcionar. Tais processos ou vários processos que, como subtotal, utilizam CPU alta podem ser uma das causas. Em servidores, executando vários serviços para manter o servidor em execução, simulações, etc., pode causar alto uso da CPU.

processos em segundo plano

os processos podem ser divididos principalmente em 2 categorias: processos do sistema e processos de Aplicação. Os processos do sistema são os processos necessários para manter seu sistema em execução. Os processos de aplicativos são os processos que você usaria para uma finalidade específica. Quando esses processos continuam em execução em segundo plano, eles consomem recursos da CPU.

muitos processos de aplicativos continuam em execução em segundo plano, mesmo depois de fechar a janela do aplicativo. É menos provável que isso aconteça em um servidor porque um servidor geralmente é mantido e limpo periodicamente para ter apenas os processos de que precisa, mas ainda é possível.

Malware

Malware (software malicioso) são programas usados por agentes maliciosos para atacar seu sistema ou realizar ações ilegítimas em seu sistema. Inicialmente, o malware não utiliza altos recursos da CPU para ficar oculto, mas quando eles começam a executar ações maliciosas, eles causam alto uso da CPU. Eu testemunhei esse incidente em que o malware foi induzido em um servidor uma semana antes e um dia ele começou a transferir todos os dados confidenciais do servidor para o armazenamento em nuvem. Portanto, esse malware não usava muitos recursos da CPU enquanto estava configurando as coisas e encontrando dados críticos. Mas uma vez que encontrou tudo o que precisava, houve um grande aumento no uso da CPU devido à transferência de dados.

código não otimizado

é comum ter código personalizado em execução em servidores para tarefas específicas. Se esses códigos não forem otimizados, eles podem acabar usando muitos recursos da CPU. Loops não otimizados e recursão são algumas das causas mais comuns para alto uso da CPU devido ao código não otimizado.

correções comuns para alto uso da CPU

com base nas causas comuns abordadas anteriormente, vejamos algumas das correções comuns para alto uso da CPU.

reiniciar

uma reinicialização do sistema é uma solução para a maioria dos problemas do computador. Como isso ajudaria a reduzir o uso da CPU? Uma reinicialização fecharia todos os processos em segundo plano que podem ter começado devido a alguma ação, mas você não precisa mais dela. Ele também encerraria processos zumbis ou outros processos que estão sendo executados indefinidamente devido a mau funcionamento. Portanto, reiniciar o sistema limparia todos (pelo menos a maioria) dos processos desnecessários e reduziria o uso da CPU.

encerrar processos em segundo plano

reiniciar o sistema pode não ser viável, especialmente para servidores. Então, você terá que lidar com processos desnecessários sem reiniciar o sistema. Para fazer isso, você pode listar todos os processos em execução, identificar quais processos são desnecessários e encerrá-los. É assim que seria no Gerenciador de tarefas do windows:

monitor de uso da cpu do servidor

outra correção é lidar com processos de inicialização. Existem alguns processos configurados para iniciar assim que o sistema inicializar. Alguns deles são necessários e outros não. Você pode identificar esses processos e desativá-los no início automático. No windows, você pode encontrá-los em “Startup” no gerenciador de tarefas:

uso da cpu do servidor de monitor

Anti-Malware

Malware é perigoso. Não apenas em termos de uso da CPU, mas em geral também. Alguns malwares causam alto uso da CPU e o uso de anti-malware pode ser sua melhor defesa contra esse malware. O software anti-malware moderno é inteligente e avançado. Eles podem não apenas identificar malware em seu sistema e excluí-los ou colocá-los em quarentena, mas também podem impedir que o malware entre em seu sistema. Portanto, usando Anti-malware, você não apenas corrigirá o alto uso da CPU, mas também evitará o alto uso da CPU devido a malware.

otimização de código

se você identificar que o motivo do alto uso da CPU é devido ao código não otimizado, precisará otimizá-lo. Você terá que analisar o código e descobrir qual parte do código está consumindo recursos da CPU e otimizá-lo.

atualização da CPU

se você corrigiu todos os outros problemas e otimizou tudo e ainda vê alto uso da CPU, isso significa que seu requisito de CPU é alto. Nesses casos, não há outra opção a não ser atualizar os recursos da CPU.

por que você deve monitorar o uso da CPU do servidor?

um servidor pode ter dois tipos de trabalhos para concluir em um nível alto: um trabalho do Usuário e um trabalho dentro do sistema. Um trabalho do Usuário é quando um usuário solicitou um serviço ou dados do servidor. Digamos que você vá ao YouTube e procure algo. O servidor do YouTube Precisa buscar todos os vídeos relevantes para sua pesquisa e enviá-los como resposta à sua solicitação. Esta transação de dados usa o tempo da CPU.

um servidor tem outras tarefas além de apenas responder aos usuários. Escusado será dizer que sua CPU está sendo usada para executar o sistema operacional e os serviços da web. Mas, além disso, os servidores podem ser usados para executar alguns scripts para processar dados. Um exemplo comum é a execução de playbooks Ansible. Esses playbooks podem executar tarefas mesmo sem que o usuário precise intervir.

Gerenciando recursos e tarefas

se o uso da CPU for baixo, você estará desperdiçando seus recursos. E se o uso da CPU for muito alto, o sistema fica lento e pode começar a ficar lento. Você não quer que isso aconteça, e é por isso que é importante monitorar o uso da CPU do servidor. Monitorar o uso da CPU do servidor ajuda você a entender o quanto sua CPU está sendo usada. Isso o ajudará a decidir se você pode fazer sua CPU fazer mais trabalhos ou aumentar seus recursos para atender à necessidade.

otimizar programas

monitorar o uso da CPU do servidor tem sido muito vantajoso para gerenciar recursos e otimizar tarefas. Houve casos em que os programas levam mais tempo do que idealmente deveriam tomar. Quando você vê que o uso da CPU é maior, mesmo durante a execução de um programa curto e simples, você sabe que há algo errado com o seu programa. Muitas vezes, os programas não são eficientes devido à má prática de programação. Monitorar o uso da CPU pode ajudá-lo a encontrar essas instâncias e otimizar o código. Portanto, monitorar o uso da CPU é como bater em dois pássaros com uma única pedra.

agora que terminamos com o “quê” e “por que” do uso da CPU e aprendemos como o monitoramento benéfico do uso da CPU do servidor pode ser, vamos chegar à parte “como”.

como monitorar o uso da CPU do servidor

o uso da CPU não é algo como dinheiro que você pode economizar durante um período de tempo e usá-lo quando quiser. CPU não utilizada é um recurso desperdiçado. É por isso que todo mundo quer que o uso da CPU do servidor esteja próximo de 100%. E para mantê-lo no seu melhor, você pode ter que fazer alguns ajustes e continuar atualizando o sistema. Para saber o que fazer, você precisa saber o status atual do uso da CPU do servidor.

você pode verificar o uso da CPU do servidor com um único comando. Se você tiver um sistema operativo Windows, abra o seu prompt de comando e execute este comando:

wmic cpu get loadpercentage

Você deve ver a porcentagem de uso da CPU, conforme mostrado na imagem abaixo:

com Base em sua necessidade, você pode consultar para Utilização da CPU periodicamente e armazenar os dados em algum lugar e, em seguida, olhar para ele mais tarde. Ou você pode transmitir o uso da CPU em um painel para monitorar a qualquer momento.

a maioria dos sistemas operacionais vem com ferramentas e utilitários embutidos para monitoramento do uso da CPU. Mas essas ferramentas têm limitações e geralmente são muito básicas. Na era atual, precisamos de recursos avançados para lidar e trabalhar no monitoramento de dados e isso chama a necessidade de ferramentas avançadas de monitoramento. Quase todos os serviços estão online agora. E os servidores desempenham um papel importante na disponibilização desses serviços. Você não pode se dar ao luxo de esperar por um par de horas para saber o seu servidor está fora do ar devido ao alto uso da CPU. Você precisa monitorar continuamente o uso da CPU e outras métricas do servidor.

monitorar continuamente

verificar o uso da CPU do servidor em um ponto no tempo não é muito útil. Você precisa de uma solução para monitorar o uso da CPU do servidor continuamente. Quase todos os sistemas operacionais de servidor vêm com um monitor de desempenho onde você pode ver o uso da CPU a qualquer momento. Ao monitorar o uso da CPU do servidor, você deve procurar picos, pois mudanças repentinas no uso da CPU indicaram que algo fora do comum aconteceu.

além de monitorar o uso da CPU em tempo real, você deseja armazenar esses dados para que possa visualizá-los e analisá-los em intervalos diferentes. Para tirar o máximo proveito das estatísticas de uso da CPU, você deve coletar dados de uso da CPU em intervalos regulares (de preferência em tempo real) gerando logs e visualizá-los na forma de gráficos. Acabamos de falar sobre uma métrica, mas não se esqueça que o uso da CPU do servidor não é a única coisa a monitorar. Para obter tudo o que você precisa em um só lugar, use Scalyr.

Leave a Reply

O seu endereço de email não será publicado.