A resposta curta é: não é uma cópia; é apenas "diferente".
A resposta longa é que, na verdade, o SwapCache é páginas extraídas de swap (usando o termo "swap" genericamente, independentemente da loja de backup, onde zram e HDD swap são dois exemplos de lojas de backup) e são descomprimidas temporariamente enquanto precisam para ser acessado ativamente. Lembre-se: as páginas na RAM compactada não podem ser acessadas diretamente , porque os dados são compactados e, portanto, ilegíveis (bem, ilegíveis se você quiser ler os dados originais). Então tem que ser armazenado em algum lugarquando o sistema diz "OK, agora preciso de uma página do cache compactado!". Se você descompactá-lo "on the fly" toda vez que precisar de algo do zram, isso exigiria muito uso de CPU e provavelmente resultaria em uma desaceleração geral do sistema que seria pior do que a leitura de swap no disco rígido. Portanto, o sistema mantém um cache de algumas de suas páginas trocadas na memória, onde "algumas de" são definidas pelas páginas que foram necessárias mais recentemente.
Além disso, caso você indique de forma inteligente que as páginas trocadas para o disco rígido não são compactadas: swapcache ainda é usado lá, porque em vez de uma alta sobrecarga da CPU ao acessar essas páginas, você obtém uma alta latência enquanto aguarda o HDD procurar e busque os setores e retorne-os à memória, onde eles podem ser adicionados ao swapcache.
Essa estratégia de gerenciamento permite otimizar para um caso de uso em que você inicia muitos programas; coloque alguns conjuntos de trabalho dos programas em troca compactada à medida que a pressão da memória aumenta (zram); descompacte o conjunto de trabalho de programas individuais (um programa por vez) em swapcache descompactado, quando / se você acessar esse programa em primeiro plano ou se executar alguma atividade em segundo plano.
Isso não é muito diferente de como o swap funciona em geral, independentemente do armazenamento de backup (cache compactado na RAM ou no swap). Se você tivesse um disco rígido muito lento, com muitos programas abertos e muito espaço de troca usado, você perceberia os seguintes sintomas:
Geralmente, bom desempenho no programa "primeiro plano" (a janela com a qual você está interagindo agora )
Um longo atraso e muita moagem de disco audível ao carregar qualquer programa que esteja em segundo plano por um longo tempo
Portanto, o que você está obtendo com a RAM compactada em vez da troca de HDD é que o "longo atraso e muita moagem de disco audível" é evitado quando você coloca esse programa em segundo plano em primeiro plano. Em vez disso, a CPU fica louca com a descompactação em execução nas páginas compactadas e as armazena temporariamente no cache de troca enquanto você acessa o programa, de modo que o acesso à mesma página compactada várias vezes não leva à descompactação intensiva da CPU. Tempo. Mas, pessoalmente, eu prefiro ter uma atividade de CPU mais alta em relação à E / S de disco alta e à latência que o acompanha.