Sabayon Linux, 14.10. Computador [i]Athlon, X2, Duplo Núcleo, 64 Bits[/i], com sistema
Sysvinit clássico.
Método no Boot Direto, Página 2, Ítem D.
Observe o Carregamento da ZSWAP:
# dmesg | grep zswap
[ 0.000000] Command line: root=/dev/sdb5 real_root=/dev/sdb5 ro ramdisk=8192 real_init=/sbin/init.d/sysvinit/final/init splash=silent,theme:sabayon vga=791 console=tty1 quiet zswap.enabled=1 dokeymap keymap=br-a
[ 0.000000] Kernel command line: root=/dev/sdb5 real_root=/dev/sdb5 ro ramdisk=8192 real_init=/sbin/init.d/sysvinit/final/init splash=silent,theme:sabayon vga=791 console=tty1 quiet zswap.enabled=1 dokeymap keymap=br-a
[ 0.990332] zswap: loading zswap
[ 0.990340] zswap: using lzo compressor
Sabayon Linux, 14.10. Computador Phenom, 8x, FX-8120, 8 Núcleos, 64 Bits, com sistema Systemd, inicialmente
Experimental e atualmente
Padrão.
Método nos Serviços de Boot, Ítem E.
Observe uma SWAP em RAM alocada para cada núcleo, mais a Partição SWAP física, a
sda7.
No monitor Gkrellm do meu KDE, a SWAP subiu de 2 M (tamanho da minha partição SWAP) para 5,156 M
sudo swapon -s
Senha:
Nome do arquivo Tipo Tamanho Usado Prioridade
/dev/zram0 partition 403948 0 100
/dev/zram1 partition 403948 0 100
/dev/zram2 partition 403948 0 100
/dev/zram3 partition 403948 0 100
/dev/zram4 partition 403948 0 100
/dev/zram5 partition 403948 0 100
/dev/zram6 partition 403948 0 100
/dev/zram7 partition 403948 0 100
/dev/sda7 partition 2047996 0 -1
I. Testes de Estresse
Para consumir processamento e RAM, estressar o micro, usei o pacote
Cpuburn, instalado em Sabayon:
# equo i -av cpuburn
# burnK6 #Comando para Athlon e Phenom. Para Intel, use "burnP6".
Monitorando com Htop, um aperfeiçoamento do comando
top:
# equo i -av htop
htop
Detalhes:
Observe que, com os 8 núcleos e ZSWAP, o micro "dá folga" mais do que o suficiente, mesmo estressado com Cpuburn:
O uso de CPU foi a 100%, rapidamente. Mas o executável
burnK6, específicamente, consumiu apenas de 7%, ao máximo de 52% em meia hora. E a temperatura da CPU, atingiu um máximo de 64 graus centígrados.
A RAM máxima consumida foi de cerca de 3,6 M, de um total dos 16 M existentes no Micro. Não chegou nem perto de usar a SWAP.
J. Testes de RAM
Depois, rodei o Algoritmo
memtest.c, do engenheiro de sistemas Steven D:
Para usar especificamente a memória, usei esse programa-fonte, com código em
C.
Coloque estas linhas em um arquivo e salve. Eu dei o nome de
memorex.c:
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
int main(int argc, char** argv) {
int max = -1;
int mb = 0;
char* buffer;
if(argc > 1)
max = atoi(argv[1]);
while((buffer=malloc(1024*1024)) != NULL && mb != max) {
memset(buffer, 0, 1024*1024);
mb++;
printf("Allocated %d MB\n", mb);
sleep(1);
}
return 0;
}
Compilei com o comando abaixo:
gcc memorex.c -o memorex
E executei:
./memorex
Fui deixando funcionar, com muita coisa aberta e rodando, cópias de arquivos, navegador, etc.
Fui deixando o programa (
Memorex) alocar memória e o micro continuou funcionando com folga. Deixei até a SWAP começar a ser usada.
Observe na Figura:
Veja:
- No terminal, acima, à esquerda, o comando free (1);
- Acima à direita, monitorando com Htop (2);
- No terminal de baixo, à esquerda, o programa Memorex, alocando a memória (3);
- À direita, embaixo, comando: swapon -s (4).
Note que, no comando
free (1) e no
swapon -s (4), a SWAP em RAM, já está sendo alocada (16 Mega, em 4 dos 8 núcleos, 4 Mega cada núcleo), enquanto no comando
htop (2), vê-se que nada da SWAP física (da partição) ainda foi usada. Está zerada, intocada.
O micro? O micro funcionando bem, rodando tudo, sem travar e com boa performance, uso da RAM nem se nota, a não ser nos comandos (Figura), em que pese eu já ter muita RAM, 16 Giga.
O uso de SWAP na RAM, parece funcionar bem.
Enquanto faço as medidas vista na figura e aloco memória, também estou navegando, escrevendo isto e copiando arquivos, e o micro rodando, redondo...
Outro Programa que pode ser usado para testar é o Código
C abaixo.
É um
Fork Bomb do programador Sebastian, Áustria, publicado no site Stackoverflow:
#include <stdlib.h>
int main() {
int *p;
while(1) {
int inc=1024*1024*sizeof(char);
p=(int*) calloc(1,inc);
if(!p) break;
}
}
Também testei com ele, mas muito rapidamente, em cerca de 30 segundos, o micro consome toda a memória e ameaça travar.
Para evitar isso, mantive outro terminal aberto, e rapidamente "matei" o processo com comando
killall.
Mas, foi o suficiente para dar tempo de observar o consumo da memória alocada para SWAP na RAM, no monitor do Gkrellm.
Estes testes demonstram que os métodos de usar RAM do micro como SWAP, são efetivos e eficientes.