Le mercredi 5 septembre, Nicolas Tripon a écrit :
> Pour remplir le swap, essaie ceci :
>
> $ a=12345678
> $ a=$a$a$a$a
> $ a=$a$a$a$a
> $ a=$a$a$a$a
> $ ...
Voici un remplisseur de mémoire plus rapide et quantitatif :
------------------------------------------------------------------------
#include <stdlib.h>
#include <unistd.h>
#define LOG_PROCS 4 /* 16 processes */
#define SZ (128<<20) /* 128 MB per process */
int main(void)
{
unsigned int i, *p;
for (i=0; i<LOG_PROCS; i++) fork();
p = malloc(SZ);
for (i=0; i<SZ/sizeof *p; i++) p[i] = i;
pause(); /* wait to be kill()ed */
return 0;
}
------------------------------------------------------------------------
Tu règles les #define pour la taille que tu veux. Ici c'est réglé à
16 × 128 Mo = 2 Go. L'intérêt du fork() est que tu peux remplir plus
de mémoire que l'espace d'adressage d'un processus (limité si tu es
en 32 bits).
Chez moi ça donne :
- RAM : 1 Go, pleine
- swap : 2 Go, dont 1,3 Go remplis
Tu arrêtes avec killall.
Edgar.