Seu computador Linux ou macOS está usando memória virtual. Descubra como isso está afetando o uso da memória física pelo seu sistema, Recursos de CPU e disco rígido.
O que é memória virtual?
Seu computador está equipado com uma quantidade finita de memória física chamada memória de acesso aleatório (RAM). Esta RAM deve ser gerenciada pelo kernel e compartilhada entre o sistema operacional e qualquer aplicativo em execução.. Se essas demandas combinadas exigirem mais memória do que a fisicamente instalada em seu computador, O que o kernel pode fazer?
Linux e sistemas operacionais semelhantes ao Unix, como macOS, pode usar espaço em seu disco rígido para ajudar a gerenciar as demandas de memória. Uma área reservada de espaço no disco rígido chamada “trocar espaço” pode ser usado como uma extensão de RAM. Esta é a memória virtual.
O kernel do Linux pode gravar o conteúdo de um bloco de memória para trocar espaço e liberar essa região de RAM para uso por outro procedimento.. A memória trocada, também ligar “data da página”, pode ser recuperado do espaço de troca e restaurado para a RAM quando necessário.
Desde já, a velocidade de acesso à memória paginada é mais lenta do que a memória armazenada na RAM. E essa não é a única compensação. Embora a memória virtual forneça uma maneira para o Linux gerenciar suas demandas de memória, o uso de memória virtual aumenta as cargas em outras partes do computador.
Seu disco rígido deve fazer mais leituras e gravações. El kernel, e por isso, a CPU, deve fazer mais trabalho, uma vez que troca memória, troca a memória e mantém todas as placas girando para atender às necessidades de memória de diferentes processos.
O Linux fornece uma maneira de monitorar toda essa atividade na forma de vmstat
comando, que relata sobre estatísticas de memória virtual.
O comando vmstat
Se você escrever vmstat
como um comando sem parâmetros, irá mostrar-lhe um conjunto de valores. Esses valores são médias para cada uma das estatísticas desde a última vez que você reiniciou seu computador. Esses números não são um instantâneo dos valores “neste momento”.
vmstat
Uma pequena tabela de valores é exibida.
Existem colunas intituladas Procs, Memória, Troca, eu, Sistema y CPU. A última coluna (a coluna mais à direita) contém os dados relacionados à CPU.
A seguir, uma lista dos itens de dados em cada coluna é exibida.
Proc
- r: O número de processos executáveis. Esses são processos que foram iniciados e estão em execução ou estão aguardando sua próxima explosão de ciclos de CPU divididos no tempo.
- B: O número de processos em suspensão ininterrupta. O procedimento não está ocioso, você está fazendo uma chamada para o sistema de bloqueio e não pode ser interrompido até que tenha concluído sua ação atual. Em geral, o procedimento é um driver de dispositivo esperando algum recurso ser liberado. Quaisquer interrupções na fila para esse procedimento são tratadas quando o procedimento retoma sua atividade normal.
Memória
- swpd: a quantidade de memória virtual usada. Em outras palavras, quanta memória foi trocada.
- de graça: a quantidade de memória ociosa (hoje não utilizado).
- Forte: a quantidade de memória usada como buffer.
- esconderijo: a quantidade de memória usada como cache.
Intercâmbio
- e: Quantidade de memória virtual trocada sobre do espaço de troca.
- assim que: Quantidade de memória virtual trocada fora de trocar espaço.
eu
- com um: Blocos recebidos de um dispositivo de bloco. O número de blocos de dados usados para trocar a memória virtual de volta para a RAM.
- bo: Blocos enviados para um dispositivo de bloco. O número de blocos de dados usados para trocar a memória virtual da RAM para trocar o espaço.
Sistema
- sobre: O número de interrupções por segundo, incluindo o relógio.
- cs: O número de mudanças de contexto por segundo. Uma mudança de contexto é quando o kernel muda do processamento do modo de sistema para o processamento do modo de usuário.
UPC
Esses valores são todos porcentagens do tempo total de CPU.
- nós: Tempo gasto na execução de código não essencial. Em outras palavras, quanto tempo é gasto processando o tempo do usuário e processando o tempo agradável.
- seu: Tempo gasto na execução do código do kernel.
- EU IRIA: Tempo de inatividade.
- Washington: Tempo gasto esperando para entrar ou sair.
- S t: Tempo roubado de uma máquina virtual. Este é o tempo que uma máquina virtual tem que esperar até que o hipervisor termine de atender outras máquinas virtuais antes de voltar e servir esta máquina virtual.
Usando um intervalo de tempo
Podemos ter vmstat
fornecer atualizações regulares desses números por meio de um delay
valor. a delay
O valor é fornecido em segundos. Para ter as estatísticas atualizadas a cada cinco segundos, nós usaríamos o seguinte comando:
vmstat 5
A cada cinco segundos vmstat
irá adicionar outra linha de dados à tabela. Você precisará pressionar Ctrl + C para parar isso.
Usando um valor de contagem
Usando um valor muito baixo delay
A coragem colocará pressão adicional em seu sistema. Se você precisa de atualizações rápidas para tentar diagnosticar um obstáculo, É recomendável que você use um count
valor, bem como um delay
valor.
a count
valor diz vmstat
quantas atualizações fazer antes de sair e retorná-lo ao prompt de comando. Se você não fornecer um count
valor, vmstat
será executado até ser interrompido por meio de Ctrl + C.
Ter vmstat
fornecer uma atualização a cada cinco segundos, mas apenas para quatro atualizações, use o seguinte comando:
vmstat 5 4
Depois de quatro atualizações vmstat
pára por conta própria.
Mudança de unidades
Você pode selecionar memória e estatísticas de troca a serem exibidas em kilobytes ou megabytes usando o -S
opção (caráter de unidade). Isso deve ser seguido por um de k
, K
, m
, o M
. Estes representam:
- k: 1000 bytes
- K: 1024 bytes
- metro: 1000000 bytes
- METRO: 1048576 bytes
Para que as estatísticas sejam atualizadas a cada 10 segundos com memória e estatísticas de troca exibidas em megabytes, use o seguinte comando:
vmstat 10 -S M
As estatísticas de memória e troca agora são exibidas em megabytes. Observe que o -S
A opção não afeta as estatísticas do bloco E / S. Eles são sempre exibidos em blocos.
Memória ativa e inativa
Se você usar o -a
(ativo) o cache e as colunas do cache são substituídos pelas colunas “inativo” e “ativo”. Como você sugere, estes mostram a quantidade de memória inativa e ativa.
Para ver essas duas colunas em vez das colunas de aprimoramento e cache, inclua o -a
opção, como se mostra:
vmstat 5 -a -S M
As colunas inativas e ativas estão afetado pela opção -S (caráter de unidade).
Forks
a -f
A opção exibe o número de ramificações que ocorreram desde que o computador foi iniciado.
Em outras palavras, isso mostra o número de tarefas que foram iniciadas (e, para a maioria deles, eles fecharam de novo) desde que o sistema começou. Cada procedimento iniciado na linha de comando aumentaria este número. Cada vez que uma tarefa ou procedimento gera ou clona uma nova tarefa, este número vai aumentar.
vmstat -f
A exibição do garfo não está atualizando.
Slabinfo display
O kernel tem seu próprio gerenciamento de memória para se preocupar, bem como gerenciamento de memória para o sistema operacional e todos os aplicativos.
Como você pode imaginar, o kernel aloca e desaloca memória repetidamente para os diferentes tipos de objetos de dados que ele tem que lidar. Para que seja o mais eficiente possível, usa um sistema chamado lajes. Esta é uma forma de cache.
Memória alocada, usado e não mais necessário para um tipo específico de objeto de dados do kernel pode ser reutilizado para outro objeto de dados do mesmo tipo sem a memória ser desalocada e realocada. Pense nas placas como segmentos de RAM pré-alocados, feito sob medida, para as próprias necessidades do kernel.
Para ver as estatísticas de lajes, use o -m
(azulejos) opção. Você precisará usar sudo
, e será solicitada sua senha. Como a saída pode ser bem longa, nós estamos canalizando isso less
.
sudo vmstat -m | menos
A saída tem cinco colunas. Estes são:
- Cache: Nome do cache.
- num: O número de objetos atualmente ativos neste cache.
- total: O número total de objetos disponíveis neste cache.
- Tamanho: O tamanho de cada objeto no cache.
- Páginas: O número total de páginas de memória disponíveis (ao menos) um objeto atualmente associado a este cache.
pressione q
deixar less
.
Visualizando contadores de eventos e estatísticas de memória
Para exibir uma página de contadores de eventos e estatísticas de memória, Use o -s
(Estatisticas) opção. Observe que é um “s” minúsculas.
vmstat -s
Mesmo que as estatísticas relatadas sejam basicamente as mesmas que as informações que constituem o vmstat
Saída, alguns deles são divididos em mais detalhes.
Como um exemplo, A saída padrão combina o tempo de CPU do usuário bom e ruim na coluna “nós”. A tela -s (Estatisticas) liste essas estatísticas separadamente.
Visualizando estatísticas de disco
Você pode obter uma lista equivalente de estatísticas de disco usando o -d
(discoteca) opção.
vmstat -d | menos
Para cada disco, três colunas são exibidas, estas são leituras, Escrituras e I..
IO é a coluna certa. Observe que a coluna de segundos em IO é medida em segundos, mas as estatísticas sustentadas ao longo do tempo nas colunas de leitura e gravação são medidas em milissegundos.
Isso é o que as colunas significam:
Lee
- total: A contagem total de leituras de disco.
- fundido: A contagem total de leituras agrupadas.
- setores: A contagem total de setores que foram lidos.
- Em: Quantidade total de tempo em milissegundos que foi usada para ler dados do disco.
escreve
- total: A contagem total de gravações do disco.
- fundido: A contagem total de gravações agrupadas.
- setores: A contagem total de setores gravados em.
- Em = Contagem total de tempo em milissegundos que foi usado para gravar dados no disco.
eu
- canalha: Número de leituras ou gravações de disco atuais.
- segundo: Tempo gasto em segundos para qualquer leitura ou escrita em andamento.
Visualizando Estatísticas Resumidas de Disco
Para ver uma visão rápida das estatísticas resumidas da atividade do seu disco, Use o -D
(soma do disco) opção. Por favor, observe o “D” letra maiúscula
vmstat -D
O número de discos pode parecer anormalmente alto. O computador usado para pesquisar esta postagem está executando o Ubuntu. Com Ubuntu, toda vez que você instala um aplicativo de um Snap, uma squashfs
Um pseudo-sistema de arquivos é criado e anexado a um dispositivo / dev / ciclo.
É irritante que muitos dos comandos e utilitários do Linux considerem essas entradas de dispositivo como dispositivos de disco rígido.
Ver estatísticas de partição
Para ver as estatísticas associadas a uma partição específica, usar el -p
(partição) e fornecer identificador de partição como parâmetro de linha de comando.
Aqui, vamos dar uma olhada na partição. sda1
. O dígito um indica que esta é a primeira partição no dispositivo sda
, qual é o disco rígido principal deste computador.
vmstat -p sda1
As informações retornadas mostram a contagem total de leituras e gravações de disco para e a partir dessa partição, e o número de setores incluídos nas ações de leitura e gravação do disco.
Uma olhada sob o capô
É sempre bom saber como levantar o capô e ver o que acontece por baixo. As vezes, tentará consertar um obstáculo, às vezes você não vai se interessar porque quer saber como seu computador funciona.
vmstat
pode fornecer uma grande quantidade de informações úteis. Agora você sabe como entrar nisso e o que significa. E esteja avisado está avisado: quando você precisa arregaçar as mangas e fazer alguns diagnósticos, você saberá o que você tem vmstat
do seu lado.