Re: Swap bizarre

Top Page

Reply to this message
Author: Edgar Bonet
Date:  
To: guilde
Subject: Re: Swap bizarre
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.