O uso do arquivo de troca aumenta a E / S do disco e a carga da CPU?

4

Alguém chamou minha atenção que, se um aplicativo estiver usando um arquivo de troca (quando a RAM do sistema estiver muito baixa), ele aumentará a E / S do disco e, como resultado,% de uso da CPU e carga da CPU aumentarão.

Isso é verdade ou esse cara estava completamente fora do caminho?

    
por Ubuntuser 29.10.2013 / 14:54

4 respostas

6

Trocar é a memória de paginação para o disco. Se você tem algo que está desviando as coisas para a troca da RAM, você verá:

  • Uso da CPU para determinar o que pode entrar em swap
  • Disco IO e CPU ao mover de físico para trocar
  • Uso da CPU para mapear o espaço de endereço dos aplicativos em execução para o local de troca
  • Disco IO do aplicativo acessando o espaço de memória trocado.

Quão quantificáveis são estas ou quanto de efeito elas têm é completamente discutível, mas seguem a regra de ouro de Barney: Mais RAM é sempre melhor.

    
por Oli 29.10.2013 / 15:24
2

O espaço de troca é a área no HDD ou SSD que faz parte da memória virtual do seu PC. A memória virtual é simplesmente uma combinação de sua memória física que é chamada de RAM e o espaço de troca que é chamado de SWAP. O espaço de troca mantém, temporariamente, a memória inativa. Isso ocorre porque o seu sistema decide que precisa de memória física para processos ativos e possui memória física insuficiente não utilizada disponível. Se o sistema precisar de mais memória ou espaço, as páginas de memória inativa na memória física serão movidas para o espaço de troca, liberando a memória física para outros usos.

Como a memória física ou RAM é muito mais rápida do que o SWAP, que é encontrado em um HDD ou SDD, normalmente como uma partição, o tempo de acesso é mais lento. No entanto, você pode obter uma velocidade mais rápida se usar um SSD (Solid State Drive) em vez de um HDD (unidade de disco rígido, mecânica).

Com isso em mente, a resposta para sua pergunta é, em ambos os casos, sim. Sim, o uso do SWAP aumentará o uso da CPU e a E / S do disco. Claro que o uso da CPU será mínimo, mas o uso do disco não será. A razão é que a CPU é usada apenas para ver onde e o que pode ser armazenado / recuperado da troca (que é um procedimento muito rápido).

Para o disco I / O é diferente. Como o Swap está no HDD ou no SSD, ele também usa o Disk I / O enquanto você usa outros programas, e provavelmente terá maior prioridade do que outros programas do usuário.

Portanto, para sua pergunta, você não precisa se preocupar muito com o uso da CPU do que com o uso do Disco.

Para melhorar o desempenho e diminuir o uso do disco, você pode fazer algumas coisas:

  • Mude de um HDD (normalmente de 5400 RPM para 7200 RPM) para um SSD. A diferença é de 2x a 10x mais rápida Desempenho do disco. Isso mudará drasticamente o desempenho geral do seu sistema.

  • Adicione mais RAM. Se você tiver mais RAM de memória, a chance de o sistema precisar trocar memória será menor, aumentando o desempenho geral enquanto ainda estiver usando toda a RAM disponível.

  • Use uma área de trabalho que use menos memória RAM. Isso também se expande para outros aplicativos. Não é o mesmo usar o KDE ou o Gnome do que usar o LXDE ou o XFCE. Também não é o mesmo usar o abiword ou mesmo o nano o vim do que usar o LibreOffice.

Agora, para o último ponto. O que você ouviu sobre o aumento da E / S de disco aumentando a carga da CPU. Isso é verdade, simplesmente porque:

Quanto menos RAM você tiver, mais o espaço de SWAP será necessário para seus aplicativos. Quanto mais espaço de SWAP for usado, mais tempo de CPU será necessário para armazenar / recuperar informações de troca.

Um depende do outro. Portanto, aumentar a quantidade de RAM beneficiará você diretamente na redução do uso do SWAP e na redução do uso da CPU.

Aqui está uma imagem para ilustrar o efeito:

Toda vez que a carga da CPU saltou, foi porque o Swap foi lido / gravado.

    
por Luis Alvarado 29.10.2013 / 17:58
0

Haverá ALGUM ALGUM aumento (já que o kernel tem que rastrear a localização da memória paginada entre RAM e armazenamento secundário), mas duvido que seja o kernel acessando o disco diretamente, ignorando o cache e o sistema de arquivos quando paginação de entrada / saída do arquivo de swap / partição. O IO executado é assíncrono, portanto, a CPU não está esperando (fazendo com que outros processos diminuam a velocidade desnecessariamente).

Para obter uma descrição completa do gerenciamento de troca, leia o link . não é um processo intensivo da CPU, a maior parte do trabalho gira em torno do gerenciamento de mapeamentos de páginas, não da transferência de dados.

    
por NGRhodes 29.10.2013 / 15:26
0

Na verdade, é o inverso: quando os programas têm que parar e esperar pelo disco IO, o uso da CPU cai (já que eles não estão usando enquanto espera). Obviamente, muitos dados sendo trocados para o disco são disco IO.

    
por psusi 29.10.2013 / 15:38