Swap

esta página oferece uma introdução para trocar de espaço e de chamada de pessoas no GNU/Linux. Cobre a criação e ativação de partições de swap e arquivos de swap.

de todo o espaço de troca Linux:

O Linux divide a sua RAM física (memória de acesso aleatório) em pedaços de memória chamados páginas. Trocar é o processo pelo qual uma página de memória é copiada para o espaço pré-configurado no disco rígido, chamado espaço de troca, para liberar essa página de memória. Os tamanhos combinados da memória física e do espaço de troca são a quantidade de memória virtual disponível.

Suporte para swap é fornecido pelo kernel Linux e utilitários de espaço de usuário do pacote util-linux.

espaço de Swap

espaço de Swap pode assumir a forma de uma partição de disco ou um ficheiro. Os usuários podem criar um espaço de troca durante a instalação ou em qualquer momento posterior, conforme desejado. Espaço de Swap pode ser usado para dois propósitos, para estender a memória virtual além da memória física instalada (RAM), e também para o Suporte de suspensão-para-disco.

Se é benéfico estender a memória virtual com swap depende da quantidade de memória física instalada. Se a quantidade de memória física é menor do que a quantidade de memória necessária para executar todos os programas desejados, então pode ser benéfico para permitir a troca. Isto evita as condições de memória, onde o mecanismo Oom killer do kernel Linux irá automaticamente tentar libertar a memória matando processos. Para aumentar a quantidade de memória virtual para a quantidade necessária, adicione a diferença necessária (ou mais) como espaço de swap.

A maior desvantagem de activar o swap é o seu menor desempenho, ver secção # desempenho. Assim, permitir a troca é uma questão de preferência pessoal: alguns preferem que os programas sejam mortos ao permitir o swap e outros preferem activar o swap e o sistema mais lento quando a memória física está esgotada.

Nota: não existe diferença de desempenho entre a utilização de uma partição swap e um ficheiro de swap contíguo.

Para verificar trocar de status, use:

$ swapon --show

Ou para mostrar a memória física, bem como a utilização de swap:

$ free -h

partição Swap

Tango imprecisas.png a exactidão factual deste artigo ou secção é contestada.Tango-impreciso.png

razão: 82 é o tipo de partição swap em MBR, não existe auto-selecção de partição swap em MBR. Os comandos / TRIM nas partições swap parecem ser emitidos automaticamente pelo ‘Kernel’, se forem suportados, veja as guias de implementação Fedora. (Discuss in Talk:Swap#Clarify swap discovery)

uma partição swap pode ser criada com a maioria das ferramentas de particionamento GNU/Linux. As partições Swap são tipicamente designadas como tipo 82. Mesmo que seja possível usar qualquer tipo de partição como swap, é recomendado usar o tipo 82 na maioria dos casos, uma vez que o systemd irá automaticamente detectá-lo e montá-lo (veja abaixo).

para configurar uma partição como área de swap Linux, o comando mkswap(8) é usado. Por exemplo:

# mkswap /dev/sdxy
Aviso: todos os dados na partição especificada serão perdidos.

Para activar o dispositivo de paginação:

# swapon /dev/sdxy

Para activar esta partição swap no boot, adicione uma entrada para o /etc/fstab:

UUID=device_UUID none swap defaults 0 0

where thedevice_UUID is the UUID of the swap space.

veja fstab para a sintaxe do arquivo.

Nota:

  • A entrada fstab é opcional se a partição swap estiver localizada num dispositivo usando o GPT. Veja a próxima subsecção.
  • If using an SSD with TRIM support, consider using discard in the swap line in fstab. Se activar manualmente o swap com swapon, usando o parâmetro -d--discard atinge o mesmo. Veja swapon (8) para mais detalhes.Aviso: Se activar a opção descartar nas configurações RAID com o mdadm, fará com que o sistema bloqueie no arranque e durante o período de execução, se usar o swapon.

ativação por systemd

systemd ativa partições de swap com base em dois mecanismos diferentes. Ambos são executáveis em /usr/lib/systemd/system-generators. Os geradores são executados em start-up e criar unidades de systemd nativas para montagens. O primeiro, systemd-fstab-generator, lê o fstab para gerar unidades, incluindo uma unidade para troca. The second, systemd-gpt-auto-generator inspecions the root disk to generate units. Ele opera apenas em discos GPT, e pode identificar partições de swap por seu tipo de GUID, veja systemd#GPT partition automounting para mais informações.

desactivar o swap

para desactivar o espaço de swap específico:

# swapoff /dev/sdxy

alternativamente usar o -a mudar para desactivar todo o espaço de swap.

Uma vez que o swap é gerido pelo systemd, será activado novamente no próximo arranque do sistema. Para desativar a ativação automática do espaço swap detectado permanentemente, execute systemctl --type swap para encontrar o responsável .troca a unidade e esconde-a.

ficheiro Swap

como uma alternativa à criação de uma partição inteira, um ficheiro swap oferece a capacidade de variar o seu tamanho em tempo real, e é mais facilmente removido por completo. Isto pode ser especialmente desejável se o espaço em disco estiver a um prémio (por exemplo, um SSD de tamanho modesto).

aviso: o Btrfs suporta o ficheiro swap com limitações desde o kernel Linux versão 5.0. Veja o ficheiro Btrfs#Swap para mais informações.

manualmente

alternar a criação de ficheiros

Nota: Se usar o Btrfs, primeiro siga o procedimento descrito no Btrfs#Swap ficheiro para inicializar o ficheiro swap.

Use dd para criar um ficheiro de swap do tamanho à sua escolha. Por exemplo, a criação de um ficheiro swap de 512 MiB:

# dd if=/dev/zero of=/swapfile bs=1M count=512 status=progress
Nota: usar o dd para alocar um ficheiro swap é a solução mais portátil, Ver ficheiros swapon(8) § com buracos para mais detalhes.

Definir as permissões corretas (um mundo legível arquivo de permuta é uma enorme vulnerabilidade local):

# chmod 600 /swapfile

Depois de criar o corretamente tamanho de arquivo, formato de comutação:

# mkswap /swapfile

Ative o arquivo de troca:

# swapon /swapfile

Finalmente, editar o fstab configuração para adicionar uma entrada para o ficheiro de comutação:

/etc/fstab
/swapfile nenhum swap defaults 0 0

Para obter informações adicionais, consulte fstab#Uso.

Nota:

  • o ficheiro swap deve ser especificado pela sua localização no sistema de ficheiros, não pelo seu UUID ou etiqueta.
  • Ao usar o Btrfs, não se esqueça de adicionar o sub-volume criado à lista também, e remover o discard,autodefrag e as opções de compressão.

remover ficheiro swap

Para remover um ficheiro swap, deve ser desligado primeiro e depois pode ser removido:

# swapoff /swapfile# rm -f /swapfile

finalmente remover a entrada relevante de .

automated

zram-generator

o objetivo desta ferramenta é a criação de dispositivos zram. Está escrito em ferrugem e reside no GitHub do systemd. Ele pode ser instalado com o pacote zram-generatorAUR.A configuração é simples e explicada no README.

systemd-swap

Nota: O autor agora recomenda o uso do zram-generator em vez disso, devido à baixa frequência de commit e zram cobrindo as necessidades da maioria dos usuários.

systemd-swap é um programa para criar espaço de troca híbrido de zram swaps,arquivos de troca e partições de troca. Não está afiliada ao projeto systemd.

Instale o pacote systemd-swap. Descomment and set swapfc_enabled=1 in the Swap File Chunked section of/etc/systemd/swap.conf. Iniciar/activar o serviço systemd-swap.

visite a página de autores GitHub para obter mais informações e configurar a configuração recomendada.

Nota:

  • Se o jornal continua a mostrar o seguinte aviso systemd-swap: WARN: swapFC: ENOSPC e nenhum arquivo de permuta está sendo criado, você precisa descomentar e set swapfc_force_preallocated=1 no /etc/systemd/swap.conf.
  • o ficheiro swap criado pelo systemd-swap não pode ser facilmente usado para hibernação. Ver systemd-swap issue 85.

Swap cifra

ver cifra dm-crypt / Swap.

desempenho

as operações de Swap são normalmente significativamente mais lentas do que aceder directamente aos dados da RAM. Desativar o swap inteiramente para melhorar o desempenho pode às vezes levar a uma degradação, uma vez que diminui a memória disponível para caches VFS, causando mais freqüente e caro disco I/O.

os valores de Swap podem ser ajustados para ajudar o desempenho:

Swapiness

o parâmetro swapiness sysctl representa a preferência do kernel (ou evitar) do espaço de swap. Swappiness can have a value between 0 and 200 (max 100 if Linux < 5.8), the default value is 60. Um valor baixo faz com que o kernel evite trocas, um valor alto faz com que o kernel tente usar espaço de troca, e um valor de 100 significa que o custo de IO é assumido como igual. O uso de um baixo valor em memória suficiente é conhecido para melhorar a capacidade de resposta em muitos sistemas.

Para verificar a atual swappiness valor:

$ sysctl vm.swappiness

como Alternativa, os arquivos /sys/fs/cgroup/memory/memory.swappiness ou /proc/sys/vm/swappiness pode ser lido, a fim de obter matérias-valor inteiro.Nota: /proc é muito menos organizado e é mantida apenas para fins de compatibilidade, você é encorajado a usar /sys em vez disso.

para definir temporariamente o valor de swapshiness:

# sysctl -w vm.swappiness=10

para definir o valor de swapshiness permanentemente, crie um sysctl.D (5) ficheiro de configuração. Por exemplo:

/etc / sysctl.d / 99-elegância.conf 
vm.swappiness = 10

To test and more on why this may work, take a look at this article.

pressão de cache VFS

outro parâmetro do sysctl que afeta o desempenho de swap évm.vfs_cache_pressure, que controla a tendência do núcleo para recuperar a memória que é usada para cache de caches VFS, versus pagecache e swap. O aumento deste valor aumenta a taxa de recuperação de caches VFS. Para mais informações, consulte a documentação do kernel Linux.

prioridade

Se tiver mais do que um ficheiro de swap ou partição de swap, deverá considerar a atribuição de um valor de prioridade (0 a 32767) para cada área de swap. O sistema utilizará áreas de swap de maior prioridade antes de utilizar áreas de swap de menor prioridade. Por exemplo, se você tiver um disco mais rápido (/dev/sda) e um disco mais lento (/dev/sdb), atribuir alta prioridade à permuta de área localizada no mais rápida do dispositivo. As prioridades podem ser atribuídos no fstab através de pri parâmetro:

/dev/sda1 none swap defaults,pri=100 0 0/dev/sdb2 none swap defaults,pri=10 0 0

Ou pelo --priority parâmetro de swapon:

# swapon --priority 100 /dev/sda1

Se a duas ou mais áreas têm a mesma prioridade, e é a prioridade mais alta disponível, as páginas são alocadas em um rodízio entre eles.

usando zswap ou zram

Zswap é uma funcionalidade de kernel Linux que fornece uma cache de write-back comprimido para páginas trocadas. Isto aumenta o desempenho e diminui as operações IO. ZRAM cria um arquivo Virtual de Swap comprimido na memória como alternativa a um swapfile no disco.

listagem

não há necessidade de usar RAID por razões de desempenho de swap. O kernel em si pode listar a troca em vários dispositivos, se você apenas dar a eles a mesma prioridade no arquivo /etc/fstab. Consulte o Software-RAID HOWTO para mais detalhes.

Related Posts

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *