# [Portage] Système lent durant emerge

## BaNaNe

Bonjour à tous!

Je me suis rendu compte de ce problème en essayant de faire fonctionner l'accélération 3D sur mon portable : tout mon système devient extrêment lent durant les emerge. Par exemple, passer d'un onglet à l'autre dans firefox peut prendre plusieurs secondes, le texte que je tappe pour le moment apparait en retard dans la zone d'édition, les vidéos que le lis avec xine sont saccadées ou ralenties,...

J'ai fais quelques recherches, modifié des options du noyau (timer à 1000Hz, low latency desktop,...) mais le problème persiste.

Comme il s'agit d'un portable (12" donc, tout petit), ca chauffe pas mal (j'arrive à 81°C   :Twisted Evil:  ) et donc, le processeur réduit sa fréquence (il s'agit d'un Centrino 2Ghz et il descend parfois à 800Mhz, 1200Mhz,...). Ca c'est très bien, mon processeur ne prend pas feu. Mais j'aimerais quand même que mon ordi reste réactif, même si cela doit ralentire la compilation!

C'est bizare, il ne me semblait pas avoir ce problème avant... mais qu'ai-je changé depuis, je n'en sais rien :s

Quelques info : 

 * kernel 2.6.23-r9

 * Centrino 2Ghz

 * 1Go de ram

 * DMA activé sur le disque dur

 * distcc sur deux autres hosts

Voilà, je ne sais pas trop ce que je pourrais dire de plus...

Si vous avez des suggestions...

Merci!

----------

## UB|K

t'as défini la variable PORTAGE_NICENESS dans ton make.conf?

----------

## BaNaNe

mhm... non, je devrais?

C'est vrai que d'après le man, ça pourrait arranger les choses! Quelle valeur tu me conseilles? Si j'ai bien compris, 15 est la priorité minimale.

----------

## kwenspc

Une chose auquel tu oublis de penser: l'occupation du disque dur pendant les emerges, il est très sollicité! Et c'est bien souvent ça encore plus que le reste qui fait que tout rame dans la semoule.

----------

## BaNaNe

Alors, au niveau de l'espace disque, pas de problème. J'ai une seule partition de 55Go et il reste 17Go de libre.

Par contre, je me suis rendu compte que j'avais... 0mo de swap   :Shocked: 

J'ai pourtant bien une partition de type swap : 

```
Périphérique Amorce    Début         Fin      Blocs    Id  Système

/dev/hda1   *           1       10199    81923436    7  HPFS/NTFS

/dev/hda2           10200       17373    57625155   83  Linux

/dev/hda3           17374       19457    16739730    5  Extended

/dev/hda5           17374       17496      987966   82  Linux swap / Solaris

/dev/hda6           17497       19457    15751701   83  Linux

```

Et la ligne qui va avec dans le fstab : 

```
/dev/hda5               none            swap            sw              0 0
```

Je ne sais pas d'où vient ce problème ni si c'est cela qui ralenti mes emerge (vu que j'ai encore plein de RAM dispo).

```
total       used       free     shared    buffers     cached

Mem:          1000        971         28          0         40        566

-/+ buffers/cache:        365        635

Swap:            0          0          0

```

Je vais déjà essayer de comprendre pourquoi ma swap va plus...

----------

## kwenspc

Elle n'a peut être pas été initialisé avec swapon si?

----------

## geekounet

Ou simplement pas formaté avec un mkswap ?

----------

## Desintegr

Vérifie aussi si Control Group support et Group CPU scheduler sont bien désactivés dans la configuration du noyau.

----------

## kopp

 *Desintegr wrote:*   

> Vérifie aussi si Control Group support et Group CPU scheduler sont bien désactivés dans la configuration du noyau.

 

ça vient pas avec le noyau 2.6.24 ça ?

----------

## Desintegr

 *kopp wrote:*   

>  *Desintegr wrote:*   Vérifie aussi si Control Group support et Group CPU scheduler sont bien désactivés dans la configuration du noyau. 
> 
> ça vient pas avec le noyau 2.6.24 ça ?

 

Oui, tu as raison, j'aurai du cherché avant  :Smile: .

----------

## kopp

 *Desintegr wrote:*   

>  *kopp wrote:*    *Desintegr wrote:*   Vérifie aussi si Control Group support et Group CPU scheduler sont bien désactivés dans la configuration du noyau. 
> 
> ça vient pas avec le noyau 2.6.24 ça ? 
> 
> Oui, tu as raison, j'aurai du cherché avant .

 

En voyant le titre, j'ai tout de suite pensé à ça, alors j'ai direct regardé la version du noyau (sans pour autant vérifier la date d'arrivée de ce scheduler... juste un sentiment que c'était pas si vieux que ça)

----------

## BaNaNe

Voici des nouvelles  :Wink: 

J'ai bien le noyau 2.6.23. J'avais vu un poste à ce sujet dans le forum mais je ne suis pas (encore) concerné  :Wink: 

Pour la swap, je viens de faire un mkswap et swapon. J'avais peut-être oublié de le faire à l'installation mais alors, ça fait plusieurs mois que je tourne sans swap...

J'ai aussi mis le PORTAGE_NICENESS à 15. Effectivement, ça ne ralenti plus le système mais j'ai l'impression que le processeur n'est pas utilisé de manière optimale. Je m'explique : j'utilise l'applet de gnome pour voir la fréquence de mon processeur. Je suppose que lors d'une compilation, celui-ci devrait être la plupart du temps à 2Ghz (fréquence max). Cependant, il reste bien plus souvent à 600Mhz, depuis que j'ai changé le niceness. Est-ce normal ou la priorité de portage est tellement faible qu'elle n'est plus suffisante pour augmenter la fréquence du CPU?

Merci pour votre aide!

----------

## kwenspc

 *BaNaNe wrote:*   

> ou la priorité de portage est tellement faible qu'elle n'est plus suffisante pour augmenter la fréquence du CPU?
> 
> 

 

C'est très probablement ça oui.

----------

## BaNaNe

Et il n'y aurait pas moyen de faire en sorte qu'il utilise toute la puissance du CPU sans ralentire mes applications?

----------

## kwenspc

bah essais d'augmenter pas à pas le niceness afin de trouver le meilleur truc. Sinon tu as moyen de forcer à ce que le cpu soit au max de ses capacités il me semble non? (me souviens qu'avec cpufreqd on pouvait, mais c'était y a longtemps)

----------

## kopp

L'applet gnome le permet normalement. Je m'en sers des fois.

----------

## BaNaNe

Je sens qu'on va dire que je fait mon difficile... Oui, l'applet Gnome permet de fixer la fréquence du CPU mais alors... je perds justement la gestion automatique et ca va chauffer encore plus :s

----------

## Desintegr

Bah tu peux le mettre sur ondemand ou conversative dans l'applet GNOME si tu veux le changement automatique.

----------

## BaNaNe

 *Desintegr wrote:*   

> Bah tu peux le mettre sur ondemand ou conversative dans l'applet GNOME si tu veux le changement automatique.

 

Pour le moment, il est en [b]ondemand[b] mais le problème est que en mettant la priorité de portage trop bas, la fréquence du cpu semble rester la plupart du temps au minimum au lieu d'augmenter avec la charge...

----------

## Desintegr

Même si tu exécutes Portage avec une priorité faible, il devrait quand même utiliser les performances maximales.

Si tu lances nice -n 19 python -c "while True: True", est-ce que la fréquence du CPU change ? (simple programme Python qui lance une boucle infinie avec une priorité très faible).

----------

## BaNaNe

 *Desintegr wrote:*   

> Même si tu exécutes Portage avec une priorité faible, il devrait quand même utiliser les performances maximales.
> 
> Si tu lances nice -n 19 python -c "while True: True", est-ce que la fréquence du CPU change ? (simple programme Python qui lance une boucle infinie avec une priorité très faible).

 

C'est ce que je pensais mais ton test indique exactement l'inverse... avec un nice > 0, le CPU reste à 600Mhz (malgrés que son utilisation passe à 100%). Par contre, un nice de 0 le fait bien monter à 2Ghz!

Ca m'embête ca... il n'y a pas moyen de trouver un compromis entre performances de l'emerge et réactivité du système? Ce n'est pas là l'idée que je me faisais du multi-tache :s

----------

## Desintegr

C'est quand même étrange, que disent :

cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor et cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors ?

Peut-être que le pilote Intel ne fonctionne pas comme celui d'AMD.

Utilises-tu powernowd ?

----------

## BaNaNe

Si tu fais le même test chez toi, la fréquence augmente bien?

```
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

ondemand

cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors

conservative ondemand powersave userspace performance

```

Si je ne me trompe pas, powernow, c'est une technologie de AMD... Chez intel, ca ne serait pas un truc du genre speedstep?

----------

## Desintegr

Tu es bien en ondemand donc ça devrait bien fonctionner  :Smile: .

Sinon chez moi (driver powernow-k8), dès que je lance mon petit test, le CPU change de fréquence au bout d'environ 2 secondes. (1GHz -> 1.8 GHz).

----------

## El_Goretto

Wata bekoku!

Bon, ya pas une histoire du genre "considérer le temps CPU nice dans le CPUfreq scaling"? Ou alors je confuse uniquement avec une option de Gkrellm? (fatigué ce soir, hein, pas taper).

----------

## geekounet

Heu, je me rappelle qu'avec les anciens kernels (je ne sais plus jusqu'auquel), il fallait set un truc dans /sys pour qu'il ignore le nice et qu'il puisse monter en fréquence avec du coup... Mais ça a disparu par la suite, je ne l'ai plus. Mais je me demande si ça ne serai pas resté avec le vieux driver cpufreq pour centrino, des fois que...

Donc la question que je te poses : t'utilises quel driver ? Le vieux speedstep-centrino (déprécié, il va quitter le kernel sous peu, et n'est pas très top) ? ou acpi-cpufreq ?

----------

## kopp

Je confirme le résultat pour tout nice strictement positif : la fréquence ne change pas sur mon C2D non plus, avec le pilote ACPI

----------

## BaNaNe

 *kopp wrote:*   

> Je confirme le résultat pour tout nice strictement positif : la fréquence ne change pas sur mon C2D non plus, avec le pilote ACPI

 

Ce comportement serait donc spécifique aux processeurs Intel?

Je viens de faire d'autres tests. Avec le régulateur Conservative, la fréquence monte bien avec le petit programme Python, même en nice 19. Je vais voir ce que ça donne pendant un emerge.

Sinon, moi, je n'ai même pas lancé le service cpufreqd. Je suppose que dans ce cas, le noyau gère tout tout seul... Je n'ai pas besoin des options que permet cpufreq (fréquence différente sur batterie,...). Je devrais le lancer quand même?

----------

