quer esteja a correr um servidor para uma aplicação ou apenas para a sua máquina local, quer que o seu computador execute o seu melhor. É por isso que você deve se certificar de monitorar o CPU, disco e uso de memória do seu computador. Monitorar coisas como o uso da memória e do disco são realmente muito fáceis. Quanto espaço de disco lhe resta? O teu disco está fragmentado? Tens RAM suficiente para as aplicações que estás a usar? Trocas de memória regularmente?
Essas são perguntas fáceis de responder, e são perguntas que você deve fazer., Mas algumas perguntas são mais complicadas, especialmente quando se trata de métricas de CPU. Claro, existem métricas simples como o uso geral do CPU. Mas se você está usando Linux, você tem métricas mais esotéricas (e às vezes mais úteis), como a carga de CPU. Neste post, vamos falar sobre o que a métrica de carga de CPU realmente significa, e como você pode usá-la para otimizar seus servidores.
a Carga da CPU vs CPU
a primeira coisa A entender é que a carga da CPU não é a mesma coisa como o uso do CPU., Embora possam parecer semelhantes, são bastante diferentes. O uso de CPU é uma medida, em uma porcentagem, de quanto tempo a CPU gasta ativamente computando algo. Por exemplo, se você tivesse um programa que necessitasse de energia de processamento ininterrupto por 54 dos últimos 60 segundos, seu uso de CPU em um núcleo seria de 90%. Em vez disso, se o programa necessitasse apenas de seis segundos de tempo de processamento em um núcleo, o uso seria de 10%.
a maioria das empresas procuram manter o uso de CPU de seus servidores o mais próximo possível de 100%., A maioria dos servidores são vendidos pela energia global de computação, e se o seu servidor está apenas sentado a 30% de uso de CPU, você está pagando por muita energia de processador. Você poderia rebaixar o seu processador para um nível mais baixo, economizar dinheiro, e não ver nenhuma redução na qualidade do desempenho do seu servidor.
carga da CPU
carga da CPU é diferente. Em vez de medir a porcentagem de tempo que a CPU está funcionando, a carga de CPU mede quantos programas estão usando ou esperando por um núcleo de processador ao mesmo tempo. Um processador completamente ocioso teria um valor de carga de 0., No nosso exemplo anterior, teríamos tempos de carga de um minuto .9 e .1, respectivamente. Isso é bastante intuitivo. No entanto, o que não é intuitivo sobre a carga de CPU é que um valor de 1 não é necessariamente uma medição totalmente carregada.
em vez disso, o que constitui carga de CPU “completa” depende de quantos tópicos do sistema operativo o seu CPU possui. A maioria dos CPUs hoje em dia constituem mais do que apenas um núcleo de CPU, executando mais do que apenas um thread de CPU. Se a sua CPU tem quatro núcleos, então uma carga de CPU de 1 não é uma CPU totalmente carregada. Em vez disso, seria apenas um quarto carregado., Em vez disso, a sua carga CPU seria considerada completa para a sua CPU se o seu valor de carga fosse 4, não 1.
decifrar cargas de CPU Linux
executar um programa que exibe totais de carga de CPU Linux pode ser um pouco confuso no início. Se você executar um comando como uptime ou top, você pode ver um valor de carga de CPU que parece 1.68 0.55 5.91. Se não sabes o que procuras, isto parece barulho. Felizmente, isto é muito fácil de decifrar. Há três valores aqui, e vamos olhar para eles em sequência.
o primeiro valor é 1, 68. Este é o valor da carga de CPU durante o último minuto., Como mencionamos anteriormente, esta é uma medida de quantos programas estavam usando o tempo da CPU durante o último minuto. Assim, durante o último minuto nesta máquina, havia uma média de 1,68 programas usando o tempo de processamento da CPU ou esperando o tempo de processamento da CPU. Se isto é uma CPU de simples thread, isso significa que o computador está sobrecarregado. Os usuários estão esperando por seus programas para executar na CPU, e experimentando desempenho degradado. Se, em vez disso, este é um computador dual-core ou um quad-core, os usuários são capazes de obter tempo de CPU tão rapidamente quanto eles precisavam, durante o último minuto.,
O segundo valor é 0, 55. Esta é a medição nos últimos 5 minutos. Como já discutimos, uma medição abaixo de 1 significa que a CPU passou algum tempo naquela janela completamente inativa. Neste caso, a CPU esteve inactiva quase metade do tempo. Se estamos a otimizar a nossa CPU para estar constantemente a fazer alguma coisa, isso não é um bom sinal.o número final, 5.91, é uma medição dos últimos 15 minutos. Se você está usando uma CPU de oito núcleos, então este número não é particularmente chocante. Se você está usando uma CPU Dual-core, então um número como 5,91 significa que sua CPU está muito sobrecarregada., Os usuários estão regularmente à espera do tempo de CPU, e provavelmente estão experimentando desempenho significativamente degradado.
Unix vs. Linux cargas de CPU
Se estiver habituado a usar a medição de carga de CPU no Unix, alguns destes números podem parecer-lhe elevados. Isso é porque o Unix e o Linux medem a carga de CPU de forma diferente. O Unix mede a carga de CPU expressamente como uma medida de programas que estão ativamente usando ou esperando o processamento de CPU. Linux mede as coisas de forma um pouco diferente, e entender como é a chave para uma boa administração do sistema.,
Linux medidas de carga da CPU pelo olhando para programas que estão atualmente em uso ou em espera para o tempo de CPU, além de programas que estão em espera estados. Por exemplo, um programa que está esperando por uma solicitação de rede, ou para carregar algo de um disco, não contaria para a carga de CPU no Unix. No Linux, sim. Se esta é uma abordagem melhor ou pior depende do seu caso de uso. Se você está procurando medir apenas o uso geral da CPU, o Unix fornece uma interface melhor., Mas se você tem um programa que está bloqueado por 30 segundos à espera de um pedido de rede, o Linux lhe dirá isso. O Unix nunca iria descobrir esses dados.
optimizar as cargas de CPU
não há nenhuma bala de prata para optimizar as cargas de CPU. É um processo que você precisa se aproximar holisticamente. Muito parecido com o uso de CPU, quando você está em um servidor você quer estar perto de 100%, mas não mais. Às vezes, o processo de otimização de suas cargas de CPU é muito fácil. Talvez o seu servidor só utilize dois fios ao mesmo tempo., Nesse caso, otimizar cargas de servidor não é mais complicado do que ter um processador dual-core. Você pode precisar de um processador mais rápido para garantir que esses programas terminam a tempo, mas você nunca vai precisar de mais de dois núcleos.
a maioria dos sistemas realmente não se limitam a exatamente dois threads ativos, no entanto. A maioria dos servidores são muito mais complicados. E um dos desafios reais é manter o número de núcleos o mais baixo possível, porque isso economiza dinheiro, sem ir muito baixo e degradante experiências do Usuário. Pode ser que você precise otimizar o código que seu servidor executa., Às vezes, você precisa determinar quanto tempo de programa é consumido esperando em coisas como consultas de banco de dados. Pode ser que precises mesmo de aumentar a contagem do núcleo no teu processador. Os servidores Bottlenecked podem ter uma série de causas, e podem ser corrigidos em uma série de maneiras.como está a carga da CPU?
monitorar e otimizar sua carga de CPU é uma parte importante para obter o máximo para a memória do servidor. Infelizmente, também é um processo manual e demorado. Como observado, a maioria dos comandos Linux só fornecem carga de CPU para janelas de 15 minutos., Isso é uma coisa boa, você não iria querer janelas muito maiores do que isso. Você teria dificuldade em obter qualquer informação útil deles. No entanto, manter um olho na carga de CPU durante períodos de 15 minutos é uma espécie de dor de cabeça.
Felizmente, existem boas ferramentas para monitorar esses tipos de coisas para você. Por exemplo, Scalyr pode monitorar a carga de CPU apenas ingerindo alguns registros. Você não vai apenas obter uma simples impressão numérica., Em vez disso, você terá uma boa visão que mostra sua carga geral de CPU ao longo do tempo. Isso pode ser especialmente útil, uma vez que ajuda você a identificar janelas específicas que são as mais exigentes em seu CPU. Otimizar o desempenho do seu servidor significa compreendê-lo em detalhes, e não apenas em um alto nível.parte de ser um bom administrador de sistemas significa entender seu servidor de todas as direções. Saber como interpretar a carga de CPU e como otimizá-la é uma parte fundamental para maximizar o investimento de servidor de sua empresa., Antes que você possa fazer isso, você precisa entender qual é a carga de CPU do seu servidor na verdade. Não há melhor dia do que hoje para começar a monitorar a carga de CPU do servidor. Você pode começar a formular um plano para otimização hoje.este post foi escrito por Eric Boersma. Eric é um desenvolvedor de software e gerente de desenvolvimento que fez tudo, desde a segurança de TI em produtos farmacêuticos até a escrita de software de inteligência para o governo dos EUA para a construção de equipes de desenvolvimento internacional para fins não lucrativos., Ele adora falar sobre as coisas que aprendeu ao longo do caminho, e ele gosta de ouvir e aprender com os outros também.