[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Taille processus limitee ?



>>>>> "Nicolas" == Nicolas Kowalski <Nicolas.Kowalski@imag.fr> writes:

    Nicolas> Bonjour.

    Nicolas> Je ne pense pas que ce soit spécifique à la Debian, mais
    Nicolas> bon. Nous avons deux grosses machines sous Debian
    Nicolas> GNU/Linux 2.2r3. L'une fait tourner un Linux 2.2.16 et
    Nicolas> l'autre un 2.2.19 fraîchement compilé.  La première a 2
    Nicolas> Go de RAM, la seconde 1.2 Go.

    Nicolas> Sur les deux, les chercheurs de mon labo ont remarqué que
    Nicolas> généralement les processus n'arrivent pas dépasser ~500M
    Nicolas> en taille. Ils peuvent en lancer plusieurs en parallèle,
    Nicolas> et la somme dépasse alors 500M, mais un seul n'y arrive
    Nicolas> jamais.

    Nicolas> J'ai fait aussi de mon côté un gros test bourrin, bien
    Nicolas> crade :

    Nicolas> main() { while(1) malloc(10); }

    Nicolas> Le process refuse de dépasser cette fameuse limite de
    Nicolas> 500M.


J'ai finalement trouvé une solution à ce problème. Elle concerne la
taille et nombre des blocs alloués. J'ai utilisé le programme
précédent pour faire quelques statitistiques :

- `chunk' est la taille demandée pour chaque malloc
- `total' est le nombre total d'octets alloués
- le dernier nombre indique le nombre de malloc ayant réussi.



failure, chunk = 1024, total=576799744
Number of malloc: 563282

failure, chunk = 2048, total=579043328
Number of malloc: 282737

failure, chunk = 4096, total=580165632
Number of malloc: 141643

failure, chunk = 8192, total=580739072
Number of malloc: 70892

failure, chunk = 16384, total=581009408
Number of malloc: 35463

failure, chunk = 32768, total=581140480
Number of malloc: 17736

failure, chunk = 65536, total=581173248
Number of malloc: 8869

failure, chunk = 131072, total=715390976
Number of malloc: 5459

failure, chunk = 262144, total=849608704
Number of malloc: 3242

failure, chunk = 524288, total=1117782016
Number of malloc: 2133

failure, chunk = 1048576, total=1654652928
Number of malloc: 1579

...
A partir de là les machines s'écroulent, j'ai alors laissé tomber.


Bref, pour ne pas être ennuyés, les développeurs du labo vont devoir
repondre eux-mêmes la gestion de la mémoire :-|.
Je subodore un bug de la glibc...


Merci à tous ceux qui ont essayé de m'aider.

Nicolas.




Reply to: