Estou configurando e compilando o novo kernel 3.0. Um dos brindes que planejei usar por algum tempo (por meio de patches) que foram mesclados no 3.0 é o zram.
É possível definir a troca do disco rígido e a troca do zram para que o zram seja usado primeiro e apenas as páginas derramadas sejam colocadas na troca real?
linux
swap
zram
virtual-memory
Maciej Piechotka
fonte
fonte
max_comp_streams
parece estar de1
acordo com a documentação . Não verifiquei se esse parâmetro existia em 2011, mas parece ser uma opção melhor do que vários arquivos de troca.zram-config
no Ubuntu (e provavelmente debian) Observei que os padrões de configuração para um núcleo ou por rosca (2 sobre um velho E2140 núcleo duplo e 4 sobre uma i3-3220)swapon
tem um-p
interruptor que define a prioridade. Eu posso configurar:Ou em / etc / fstab:
EDIT: Apenas para uma solução completa - essa linha pode ser útil como regra do udev:
fonte
Selecione quantos dispositivos zram você deseja passando
aos parâmetros do kernel ou diretamente ao módulo (sem zram.). O valor padrão é 1. O zram poderá utilizar tantos cpus quanto o número de dispositivos que você criar.
Prepare o dispositivo zram0, defina o tamanho para 1 GB.
Como alternativa, você pode fazer isso pela regra do udev. Criar swap no zram0
e habilitá-lo com maior prioridade do que outros dispositivos de troca
fonte
zram0
ezram1
para o valor de 10 em uma caixa 2 núcleos Intel T9300, ele me joga com:swapon: /dev/zram0 or 1: swapon failed: Device or resource busy
.Por alguma razão, parece haver muita interpretação errônea de https://www.kernel.org/doc/Documentation/blockdev/zram.txt
Afirma claramente:
Mas existe um mito urbano comum e persistente de que o máximo de fluxos é 1.
Claramente não é verdade.
Os dois sistemas operacionais em que o zram provou que o Chrome OS e o Android são eficazes em um único dispositivo. Eles também ajustam
page-cluster
:- da documentação do kernel para
/proc/sys/vm/*
Portanto, use
echo "0" > /proc/sys/vm/page-cluster
para forçar uma única página.Muito parece ter se originado no zram_config do pacote debian / ubuntu que, por algum motivo, parece ter muito pouca correlação com os documentos do kernel do zram e criou uma série de sussurros chineses que, em essência, podem estar completamente errados.
Com a troca de arquivos, você cria uma unidade de troca para cada núcleo? Talvez isso possa responder às suas perguntas. Também para fazer backup disso, no Google Chrome OS e no Android, que empregam com êxito o cluster de páginas acima, pois não corresponde a um disco, para que a latência possa ser aprimorada, em dispositivos únicos.
Também para um administrador de sistemas, o que é importante no uso real de mem ou no uso de vm mem? A maioria dos exemplos mostra a criação via disk_size e ignora totalmente o mem_limit. disk_size = tamanho da vm descompactado. mem_limit = limite real de pegada de mem.
Ele meio que torna a escolha do tamanho do disco confusa, pois é um tamanho máximo virtual dependente da proporção comp_alg e da sobrecarga de 0,1% do tamanho do disco quando não está em uso, e é realmente uma estimativa do valor mem_limit * (aprox. 2 - 4) de frugal vs otimismo.
O zram_config nem verifica o uso do serviço anterior e sobrescreve, enquanto uma simples verificação da classe zram sys, como a abaixo, fará.
fonte
Quando você ativar o zram, ele terá prioridade automaticamente.
Para o ubuntu 16.04:
/usr/bin/init-zram-swapping
Você pode editar esse arquivo (faça um backup primeiro), para diminuir a RAM real usada, alterei a linha de mem para:
fonte