Como criar um arquivo de troca no Linux

Conteúdo

O interior de um disco rígido mecânico.

Adicione espaço de troca a um computador Linux, ou aumente o espaço de troca que já está presente, sem alterar partições. Mostramos a maneira mais fácil de personalizar seu espaço de troca.

Troca de arquivos x troca de partições

Existem vários cenários em que você pode querer aumentar o espaço de troca existente ou adicionar novo ao seu computador Linux..

  • Talvez o seu espaço de swap esteja rodando muitas vezes no máximo ou próximo ao máximo.
  • É fácil clicar na opção errada durante o procedimento de instalação e se recusar a adicionar swap ao seu sistema inadvertidamente.
  • Talvez você tenha decidido anteriormente que tinha tanto memória de acesso aleatório (RAM) você não precisou de nenhuma mudança e mudou de ideia.
  • Às vezes você herda a administração de um sistema que não tem swap, por razões que você nunca pode descobrir.

A resposta simples para tudo isso é adicionar um troque o arquivo para o seu computador. Este é um arquivo especial, pré-alocado e reservado para uso como espaço de troca. Um arquivo de swap irá funcionar em conjunto com qualquer swap existente que você possa ter, um arquivo de troca ou uma partição de troca.

Num momento, houve um impacto no desempenho ao usar um arquivo de troca em comparação com uma partição de troca. Esse não é mais o caso com aprimoramentos de desempenho para discos rígidos mecânicos. (rotativo) e maior eficiência nas funções de troca dentro do sistema operacional Linux. Na realidade, algumas distribuições do Linux agora criam arquivos de troca em vez de partições de troca.

A troca não é usada apenas como um meio de liberar RAM quando você está ficando sem memória. É uma parte importante de um sistema que funciona bem. Sem qualquer troca, gerenciamento de memória saudável torna-se muito difícil para o kernel alcançar. Vamos ver a maneira fácil de adicionar algum espaço de troca.

Antes de mergulharmos em: Btrfs e SSD

Existem dois pontos que gostaríamos de discutir rapidamente.

a Sistema de arquivos Btrfs tem certos avisos sobre arquivos de troca. Num momento, houve um conflito entre o Cópia por escrito natureza btrfs, Eu queria operar de uma forma e trocar arquivos que precisassem operar de outra. Alguns recursos dos quais os arquivos de troca dependem não foram implementados, e algumas suposições feitas sobre a numeração de blocos nos arquivos de troca não foram atendidas pelo Btrfs. Por isso, arquivos de troca não eram suportados.

Do kernel 5.0, pode ter arquivos de troca em sistemas de arquivos Btrfs se eles estiverem configurados com os seguintes requisitos:

  • Sem arquivos copy-on-write (NOCOW).
  • Eles não são comprimidos.
  • Eles não ficam entre diferentes discos rígidos.

A maioria dos leitores usará o sistema de arquivos ext4 padrão, então isso não vai te preocupar.

RELACIONADO: Qual sistema de arquivos Linux devo usar?

Quando unidades de estado sólido (SSD) estavam disponíveis pela primeira vez, havia a preocupação de usá-los em situações que tinham gravações frequentes no sistema de arquivos. As pessoas foram avisadas para não colocar espaço de troca em SSDs e até mesmo evitar o registro do sistema em SSDs.

Isso é muito menos preocupante hoje, e muitos SSDs disponíveis comercialmente têm uma expectativa de vida que vai durar mais do que a maioria dos PCs. Um arquivo de troca em um SSD terá um desempenho muito melhor do que uma partição de troca em um disco rígido mecânico.

RELACIONADO: Quanto tempo as unidades de estado sólido realmente duram?

Verificando o espaço de troca existente

Olhe antes de pular. Vamos ver qual espaço de troca está habilitado em seu computador. Você pode fazer isso de duas maneiras, e vamos usar ambos. a free O comando irá mostrar a memória usada e livre. a -h (legível por humanos) vai causar free use unidades sensíveis ao exibir valores da memória.

livre -h

A saída de free mostra que não há espaço de troca configurado nesta máquina.

A troca nunca é discutida sem RAM e sem o surgimento de RAM livre. Por isso, É importante notar que a RAM livre é 237 MB. Não confunda isso com o total de RAM disponível para uso. Esse valor é fornecido pela figura “acessível”, o que é 881 MB.

Linux usa RAM livre para seus próprios fins, como cache de arquivo e buffers de kernel. A quantidade de RAM dedicada a isso é a figura de “buffer / cache”, o que é 871 MB. Mas essa memória ainda é considerada e contada como “acessível”. O conteúdo da RAM "buf / cache ”pode ser descartado imediatamente e usado por qualquer aplicativo que precise de alguma memória.

Outra maneira de verificar se há espaço de troca disponível é usar o swapon comando. a --show a opção não faz nada troque alterações no seu computador. Ele apenas fornece estatísticas.

swapon --show

Se não houver saída deste comando, não há troca configurada.

Se esses comandos revelaram que algum espaço de troca já foi configurado, o tamanho do espaço de swap existente deve ser levado em consideração nas decisões associadas ao tamanho do arquivo de swap que você irá criar.

Quanto espaço de swap eu preciso?

A solução tradicional foi “duas vezes mais RAM do que você tem”. Mas isso foi cunhado quando os computadores costumavam ter RAM muito limitada.. À medida que a RAM ficou mais barata e os programas e jogos exigem mais memória, As especificações do PC foram ajustadas de acordo. PCs domésticos com 32 GB de RAM não é incomum hoje em dia. E não vai julgar 64 GB de espaço no disco rígido para trocar de espaço, se você tiver 32 GB de RAM. Isso é simplesmente excessivo.

A quantidade de comércio de que você precisa é um tópico incendiário, comparável a “que é o melhor editor”. Uma das discussões mais sensatas que vimos sobre este tópico está no Perguntas frequentes sobre o intercâmbio do Ubuntu. É uma abordagem curta e de bom senso (ainda quando, como muitas pessoas, eles não entendem como a troca funciona no Linux). Há uma tabela útil que mostra a quantidade recomendada de espaço de troca para a quantidade de RAM que seu sistema possui e se o computador hiberna ou não..

E a boa notícia é que realmente não importa o valor que você escolher. Podemos sempre excluir um arquivo de troca e substituí-lo por um maior ou, para esse assunto, um menor. Ou você pode apenas adicionar outro arquivo de troca.

Selecionar um tamanho de arquivo de troca da tabelae executá-lo por um tempo. Monitore o uso do espaço de troca do seu sistema. Se um ajuste fino for necessário, mudanças são fáceis. Com arquivos de troca, é um trabalho de dois minutos. Compare isso com a sintonia de partição em um computador Linux ao vivo.

RELACIONADO: O que é Swappiness no Linux? (e como mudá-lo)

Criar o arquivo de troca

Você não deve usar o fallocate comando para criar seu arquivo de troca. Isso é da página manual de swapon:

The swap file implementation in the kernel expects to be able to write to
the file directly, sem a assistência do sistema de arquivos. 

This is a problem on files with holes or on copy-on-write files on file 
systems like Btrfs. Comandos como cp(1) ou truculto(1) create files with 
holes. Esses arquivos serão rejeitados por swapon. 

Arquivos pré-alocados criados por fallocate(1) may be interpreted as files 
with holes too depending of the filesystem. Preallocated swap files are 
supported on XFS since Linux 4.18. 

A solução mais portátil para criar um arquivo de swap é usar dd(1) and 
/dev/zero.

Então, ainda quando fallocate é mais rápido, usaremos dd para criar o arquivo de troca. A máquina usada para investigar este post tem dois GB de RAM. Vamos criar um arquivo de troca de um GB.

As alternativas são:

  • e: O arquivo de entrada. Neste exemplo, estamos usando /dev/zero que fornecerá um fluxo de zero bytes.
  • a partir de: O arquivo de saída. Vamos criar um arquivo no diretório raiz, chamado swapfile.
  • bs: O tamanho do bloco em bytes. Isso especifica quantos bytes ler do arquivo de entrada e gravar no arquivo de saída, ao mesmo tempo.
  • contar: Quantos blocos ler e escrever. Multiplique este número pelo bs valor para obter o tamanho do arquivo.
sudo dd if = / dev / zero of = / swapfile bs = 1024 contagem = 1048576

Algumas estatísticas são fornecidas quando o arquivo é criado.

Podemos ver o número de blocos (registros) que foram gravados no arquivo, o tamanho do arquivo, o tempo necessário para criar o arquivo e a taxa efetiva de transferência de dados.

Use o ls comando para ver o arquivo no diretório raiz:

ls /

Preparando o arquivo de troca

Nós precisamos preparar arquivo de troca com ele mkswap comando antes que possa ser usado. Não precisamos fornecer nenhum parâmetro para mkswap diferente do caminho e nome do arquivo:

sudo mkswap / swapfile

O arquivo está pronto para uso como um arquivo de troca. Preste atenção ao aviso sobre permissões de arquivo. Teremos que alterá-los para que o usuário root seja o único que possa ler e escrever no arquivo de troca.

Usando o arquivo de troca

As permissões padrão são muito liberais, devemos restringi-los para que apenas o root possa usar o arquivo de troca. Usar chmod para alterar as permissões do arquivo:

sudo chmod 600 /swapfile

Isso remove todas as permissões de membros do grupo de arquivos e outros, mas permite que o dono do arquivo, raiz, ler e escrever no arquivo.

RELACIONADO: Como usar o comando chmod no Linux

Precisamos usar o swapon comando para informar ao Linux que há um novo arquivo de troca disponível para uso. Precisamos apenas fornecer o caminho e o nome do arquivo:

sudo swapon / swapfile

O arquivo de troca agora está ativo.

Adicionar arquivo de troca ao fstab

Para certificar-se de que seu arquivo de troca está disponível após uma reinicialização, adicione a /etc/fstab procedimentos. Você pode usar qualquer editor de texto de sua preferência, mas vamos mostrar o procedimento usando o editor de texto gráfico Gedit.

sudo gedit / etc / fstab

A linha que devemos adicionar ao final do arquivo é:

/swapfile nenhuma troca sw    0    0

/ etc / fstab com a entrada do arquivo de troca destacada

Os campos são:

  • Sistema de arquivo: O caminho e o nome do arquivo de troca.
  • ponto de montagem: O arquivo não está montado como um sistema de arquivos, de modo que a entrada é “Nenhum”.
  • Escreve: Isso é “intercâmbio”.
  • Escolhas: Na hora do boot swapon -a (inicializar todos os dispositivos marcados como swap) será chamado a partir de um dos scripts de inicialização. Esta opção diz ao Linux para tratar esta entrada como um recurso de troca que deve estar sob o controle daquele swapon -a comando. É comum ver “valores predeterminados” usado aqui porque há uma crença equivocada entre alguns usuários de Linux de que este campo é ignorado. Como veremos, Esse não é o caso. Por tanto, faz sentido usar a opção correta.
  • Jogar fora: Isso pode ser definido como zero. É irrelevante para este caso.
  • Passar: Isso pode ser definido como zero. É irrelevante para este caso.

Salve as alterações e feche o editor.

RELACIONADO: Como escrever um arquivo fstab no Linux

Verificação de uso da troca

Para ver se o seu espaço de swap está sendo usado, usar el swapon comando com o --show opção:

swapon --show

As colunas são:

  • Nome: O nome da partição swap ou arquivo swap.
  • Escreve: O tipo de dispositivo de troca.
  • Tamanho: O tamanho do recurso de troca.
  • Usar: A quantidade de espaço de troca usado.
  • Prio: A prioridade deste espaço de troca.

A prioridade do espaço de troca

Cada espaço de troca recebe uma prioridade. Se você não fornecer um, um é atribuído automaticamente. As prioridades atribuídas automaticamente são sempre negativas. A gama de prioridades que podem ser atribuídas manualmente é 0 uma 32767. Os recursos do Exchange com prioridades mais altas são usados ​​primeiro.

Se mais de um espaço de swap tiver a mesma prioridade, usado alternadamente até que ambos estejam cheios, então o sistema procura o espaço de troca com a próxima prioridade mais baixa. Se você só tem um espaço de troca, a prioridade é irrelevante, desde já. Mas vamos mudar a prioridade do arquivo de troca que criamos para demonstrar como fazê-lo.

Para determinar uma prioridade, Adicione o pri= opção (prioridade) a /etc/fstab entrada. Edite a linha que você adicionou /etc/fstab parecer assim:

/swapfile nenhuma troca sw,pri=10    0    0

Em outras palavras, adicionar pri=10 para o campo de alternativas, separado de “SW” com uma círgula. Não deixe espaços entre “SW”, a círgula e “pri = 10”. Reinicie o seu computador e use o swapon --show comando:

swapon -- exposição

A prioridade deste espaço de troca foi elevada para 10. O que é uma prova positiva de que o campo de alternativas no /etc/fstab entrada não é ignorada.

Troque o espaço da maneira mais fácil

Passando pela exposição e explicação, podemos criar um novo arquivo de troca tão fácil e rapidamente quanto este:

sudo dd if = / dev / zero / of = / swapfile2 bs = 1024 contagem = 104857
sudo mkswap / swapfile2
sudo chmod 600 /swapfile2
sudo swapon / swapfile2

E vamos verificar se funcionou:

swapon --show

Se você quiser tornar essa queda permanente, em você /etc/fstab procedimentos.

olho. Trabalho feito.

setTimeout(função(){
!função(f,b,e,v,n,t,s)
{E se(f.fbq)Retorna;n = f.fbq = função(){n.callMethod?
n.callMethod.apply(n,argumentos):n.queue.push(argumentos)};
E se(!f._fbq)f._fbq = n;n.push = n;n.loaded =!0;n.version = ’2.0′;
n.queue =[];t = b.createElement(e);t.async =!0;
t.src = v;s = b.getElementsByTagName(e)[0];
s.parentNode.insertBefore(t,s) } (window, documento,'roteiro',
‘Https://connect.facebook.net/en_US/fbevents.js ’);
fbq('iniciar', ‘335401813750447’);
fbq('acompanhar', ‘PageView’);
},3000);

Assine a nossa newsletter

Nós não enviaremos SPAM para você. Nós odiamos isso tanto quanto você.