J'ex=E9cute une application, un binaire appell=E9 ici mysoft, de 160Mo.
Cette application va lire un fichier de 2Go (en local sur cette
machine), et cr=E9er un m=E9moire une structure de donn=E9es de 1,7Go.
C'est la seule application active sur cette machine.
Je m'attend =E0 ce que ce programme s'ex=E9cute sans swapper
significativement, puisqu'il y a pr=E8s de 300Mo de marge.
Au d=E9but, tout se passe bien, la taille du programme augmente,
l'application utilise 100% du processeur :
CPU states: cpu user nice system irq softirq iowait
idle
total 99.0% 0.0% 0.7% 0.1% 0.0% 0.0%
0=2E0%
Mem: 2061648k av, 1191704k used, 869944k free, 0k shrd,
2940k buff
713816k actv, 6480k in_d, 52k in_c
Swap: 4192924k av, 93336k used, 4099588k free
321596k cached
PID USER PRI NI SIZE RSS SHARE STAT %CPU %MEM TIME CPU
COMMAND
5923 gregoire 25 0 381M 381M 2024 R 99.0 18.9 1:04 0
mysoft
16324 gregoire 15 0 33376 8012 2720 S 0.3 0.3 21:47 0
anothersoft
5924 gregoire 15 0 1276 1276 896 R 0.3 0.0 0:00 0 top
1 root 15 0 264 228 208 S 0.0 0.0 0:33 0 init
Apr=E8s 5 minutes, le programme atteind 1.3Go, et sa taille en m=E9moire
se bloque autours de 1.2Go. La machine commence =E0 swapper, et mon
application utilise de moins en moins de CPU.
PID USER PRI NI SIZE RSS SHARE STAT %CPU %MEM TIME CPU
COMMAND
5923 gregoire 15 0 1673M 1.4G 400 R 2.5 69.1 5:36 0
mysoft
16324 gregoire 15 0 33356 7508 2688 S 1.9 0.3 21:51 0
anothersoft
1284 gdm 15 0 13368 2568 1664 S 1.3 0.1 39:37 0
gdmgreeter
6 root 15 0 0 0 0 SW 1.1 0.0 4:49 0
kswapd
Et mon application qui doit passer en 6 minutes CPU passe en plus de 30
minutes... C'est frustrant ! Avec une machine sous Solaris avec 10Go de
ram (l'application est 32bits), elle passe en 10 minutes =E0 100% de CPU
(cette machine est un peu plus lente en CPU brut).
Est-ce que quelqu'un pourrait me mettre sur un piste ?