Testando meu sistema, eu preciso de um script que use tanto ram e swap quanto possível

4

Estou testando meu sistema com o zram, preciso de um script que use o máximo de RAM possível. Este script deve preencher meu ram com coisas aleatórias, não apenas zeros.

    
por Raansu 28.05.2013 / 13:41

5 respostas

4

memtester é um programa de espaço do usuário projetado para alocar memória (qualquer quantidade que você especificar) e testá-lo com padrões aleatórios. Isso evitará o uso de swap. Mas se você tirar toda a memória com memtester primeiro (verifique com free -m ) e depois começar qualquer outra coisa que use muita memória (gimp, firefox, ...), isso deve fazer com que a troca continue.

Outra alternativa seria algo como openssl rand -base64 $((1024*1024*1024)) | less e, em menos uso > , ir para a última linha; isso fará com que 1GB de dados aleatórios codificados em base64 sejam carregados na memória (mas é lento).

Se você procura algo mais eficiente, um pequeno script em qualquer linguagem de script (por exemplo, Python) pode ser útil.

#!/usr/bin/python2
import numpy
result = [numpy.random.bytes(1024*1024) for x in xrange(1024)]
print len(result)

Isso alocaria 1G de memória com dados aleatórios e imprimiria o número de MB alocado antes de terminar. Se você quiser mais de 1024M, adapte o valor xrange de acordo.

    
por frostschutz 28.05.2013 / 14:08
4

Eu sugeriria usar o programa stress , instalável a partir dos repositórios com sudo apt-get install stress .

Para testar sua RAM, use stress -m x , em que x é o número de trabalhadores que preencherão o RAM. Escolha mais trabalhadores para usar mais RAM.

    
por prophecy201 28.05.2013 / 14:09
2

Como a profecia201 sugeriu , stress é uma ótima ferramenta para usar a memória do seu sistema. Adicionando mais trabalhadores irá usar mais RAM, mas também vai usar mais CPU, o que é bastante ineficaz se tudo que você quer é testar a memória RAM. Sem mencionar que a CPU será necessária pelo zram para compressão.

Em vez disso, você deve aumentar a quantidade de RAM usada com o sinalizador --vm-bytes . Por exemplo, para usar até 4 GB de RAM com um trabalhador:

stress -m 1 --vm-bytes 4G

Você também pode encontrar o sinal --vm-keep útil, pois ele manterá a alocação de memória em vez de realocar continuamente, portanto, o uso da memória será constante em vez de flutuar:

stress -m 1 --vm-bytes 4G --vm-keep

Por último, dê uma olhada aqui para ter certeza de que o zram é o que você realmente quer; como você tem swap, o zswap pode ser uma solução melhor: zram vs zswap Guia definitivo do zcache: quando usar qual

    
por bmaupin 29.03.2016 / 17:48
2

Basta executar:

echo {1..1000000000}

Explicação:

O Shell, Antes de dar o comando ao kernel, Expande todas as expressões regulares e mãos curtas. O comando expandido é armazenado temporariamente na RAM. O comando acima se expande para um comando muito grande e, portanto, preencherá completamente a RAM (testada em 8 GB).

AVISO: Esta não é uma maneira controlada de preencher a RAM. Você pode ficar preso depois de executar este comando. Eu aconselho você a manter seu system monitor aberto (para ver o uso da RAM) e tentar com números menores.

    
por Severus Tux 12.09.2016 / 02:18
1

Espere que o zswap funcione muito mal - torne o desempenho muito pior --- se você preencher a memória com bytes aleatórios, especialmente se você tocar aleatoriamente muita memória com pressa.

O zram compacta o conteúdo das páginas de memória, e a compactação só funciona se os dados não forem aleatórios. Dados reais (especialmente dados na memória) geralmente são razoavelmente compactáveis.

O

zram também só ajuda se você tiver "localidade de referência", como a maioria dos programas tem --- eles tendem a tocar as mesmas páginas repetidamente antes de tocar em algum outro subconjunto de páginas. (É por isso que a memória virtual normal funciona também. O armazenamento em cache compactado está apenas adicionando um novo nível de memória entre páginas não compactadas normais e armazenamento em disco.)

Se você souber disso e estiver tentando intencionalmente testar o zswap em condições de pior caso, talvez encontre bugs, vá em frente.

Mas, se não, você provavelmente deveria ler o artigo de Paul R. Wilson et al "O caso do cache comprimido em sistemas de memória virtual", que explica quando a compactação de RAM ajuda, quando dói e como um algoritmo adaptativo pode ser usado quando ajuda e não quando isso não acontece. (O artigo está on-line em html em algum site da USENIX, e em formato pdf em outro lugar. Google.)

Infelizmente, até onde eu sei, o zram não faz o tipo de adaptação automática geral que eles descrevem, então você tem que configurar o tamanho do cache comprimido em algum valor usual razoável para sua carga de trabalho.

Um caso em que isso funcionará bem é se você tiver mais RAM do que qualquer um dos seus programas usa, mas tende a ter aplicativos ociosos usando memória também e alternar entre aplicativos. As páginas de aplicativos inativos tendem a ficar compactadas e, quando você volta para elas, elas precisam ser descompactadas em vez de carregadas do disco.

    
por memwiz 02.05.2016 / 01:44