Eu tenho tentado entender a diferença nos casos de uso para Zswap, Zram e Zcache. Pedimos desculpas antecipadamente pela pergunta longa / ligeiramente desleixada. Eu pesquisei bastante no Google e entendo que o zram é basicamente um dispositivo de bloco para troca compactada, enquanto o zswap é compactado no kernel usando a API frontswap. Parece que uma vantagem do zswap é que ele pode mover algumas páginas para uma troca de suporte quando está sob pressão de uma maneira LRU, enquanto o zram não pode fazer isso (por favor, confirme, não tenho certeza se isso é verdade).
Então, eis a minha pergunta: 1.) Como usuário de desktop, qual é a diferença de desempenho entre zcache / zswap / zram, especialmente zswap e zram? Por exemplo, é muito melhor / pior a fragmentação da memória (o tipo que leva ao uso e desperdício excessivos de memória)?
Pergunta adicional: 2.) Existe uma combinação ideal provável acima (digamos, zram + zswap ou zram + zcache) para desempenho do desktop (incluindo capacidade de resposta do desktop, além de comportamento de troca minimamente perturbador e gerenciamento de memória sã)?
* A citação de fontes é muito apreciada.
Devo acrescentar que sou um usuário Linux decentemente experiente (5 anos) e tentei realmente entender como meu sistema, incluindo o kernel, funciona. No entanto, não sou programador e só tenho conhecimentos de programação muito básicos (curso superior de 3 créditos). Mas seja técnico, se necessário; Analisarei seu significado no meu próprio tempo.
Especificações do sistema:
Linux Mint 15
Processor:Core 2 Quad 6600 (2.4ghz)
Ram: 8G
linux kernel: liquorix 3.11 series
Storage: 128 GB SSD, 1TB HDD 5400rpm
Nenhum comentário "compre mais memória ram", por favor! Maximizei a memória RAM nesta placa-mãe e tenho um orçamento de atualização de US $ 0 no futuro próximo. No entanto, gosto de manter programas intensivos em memória aberta (vários navegadores são os principais consumidores da minha memória ram), por isso não me importo de trocar dentro de limites razoáveis de degradação de desempenho.
Respostas:
A melhor maneira de tentar responder a essas perguntas é dizer o que esses três realmente são.
zRAM
O zRAM nada mais é do que um dispositivo de troca em essência. O gerenciamento de memória enviará as páginas para o dispositivo de troca e o zRAM compactará esses dados, alocando memória conforme necessário.
Zswap
O Zswap é um espaço de troca compactado que é alocado internamente pelo kernel e não aparece como um dispositivo de troca. É usado pelo frontswap da mesma maneira que um dispositivo de troca pode ser usado, mas de uma maneira mais eficiente.
Zcache
O Zcache é o frontend do frontswap e cleancache.
O Zcache substitui o zRAM, então você realmente não quer que os dois briguem por recursos, embora haja alguma conversa sobre como os dois podem trabalhar bem juntos, nas circunstâncias certas. Por enquanto, eu não me incomodaria em tentar deixar isso para os especialistas descobrirem isso.
Alguma leitura:
Cleancache vs zram?
https://lwn.net/Articles/454795/
https://www.kernel.org/doc/Documentation/vm/zswap.txt
http://www.zeropoint.com/Support/ZCache/ZCachePro/ZCacheAdvantages.html
Pessoalmente, acabei de desabilitar o zRAM e habilitar o Zcache em todos os meus sistemas com um kernel novo o suficiente (o zRAM ainda está habilitado nos dispositivos Android).
Quanto ao desempenho: é algo que você precisa investigar. Todo mundo é diferente. Em teoria, porém, o Zcache deve ser muito mais eficiente em termos de memória que o zRAM e funciona em dois níveis (frontswap e cleancache), e pode ser direcionado para um dispositivo de troca conforme necessário (no disco rígido, por exemplo). Você também pode escolher qual algoritmo de compactação usar, caso esteja usando muita CPU (o que não posso imaginar).
Atualização : O Zcache foi removido do kernel 3.11 (por enquanto), então o zRAM tornou-se novamente a única opção nos kernels mais recentes. https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1256503/comments/3 http://git.kernel.org/cgit/linux/kernel/git/stable/linux-stable.git / commit /? id = 96256460487387d28b8398033928e06eb9e428f7
fonte
zswap.enabled=1
à linha de comando do Linux.