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.
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
a exactidão factual deste artigo ou secção é contestada.
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
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.
- 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).
manualmente
alternar a criação de ficheiros
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
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.
- 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
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.
- 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 setswapfc_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.