# [disque dur] Il gratte comme un fou

## masterinferno

Bonsoir tout le monde.

Je voulais vous faire part d'un problème relativement bizarre que j'ai lorsque j'emerge des programmes (ça arrive de temps en temps, mais ça le fait je crois avec les gros programmes)

En fait, au bout d'un certain temps de compilation, le disque dur commence à chercher... à gratter sévèrement, pour finalement faire ramer l'ordi à mort puis bloquage total (toujours en grattant)

J'ai un Athlon XP 2400+ avec 256Mo de Ram PC3200, et je tourne sous Fluxbox.

Voici mon /etc/make.conf si ça peut aider:

```
CFLAGS="-O2 -march=athlon-xp -pipe -fomit-frame-pointer"

CHOST="i686-pc-linux-gnu"

CXXFLAGS="${CFLAGS}"

MAKEOPTS="-j2"

USE="aac vidix bzip2 unicode xine dvdr mmx sse 3dnow alsa nvidia win32codecs real mozilla gtk gtk2 opengl truetype nls cdr svg jpeg png -oss -samba -tcpd -kde -bonobo -arts -doc -gtkhtml -gpm -berkdb -gnutls -ipv6 -java -apm -mad -fortran -tiff -gdbm -mikmod -cups -foomaticdb -xine -gnome -oss -crypt -esd -gstreamer -sdl -qt"

AUTOCLEAN="yes"

ACCEPT_KEYWORDS="~x86"

PORTDIR_OVERLAY="/usr/local/portage"
```

Je précise que j'ai une swap de 128Mo (mais franchement je suis sûr que ça suffit car Gkrellm m'indique constamment qu'elle n'est qu'à moitié pleine même pendant la compilation)

ça se produit même quand j'ai 2 petits progs ouverts (gkrellm et xmms)

J'avais essayé de compiler dans une console (ctrl+alt+F2) mais pareil..

Ce problème n'arrive que rarement, mais quand il arrive c'est toujours au mauvais moment  :Sad: 

Savez-vous d'où cela peut venir ?

Merci encore  :Smile: 

----------

## fpolux

Salut, 

J'ai déja eu ce probleme (mon Athlon XP 2200+ avec 512Mo de Ram PC3200 s'ait transformé en celeron 33 MHz ...) plusieurs fois (j'ai a peu près le meme make.conf) pendant un emerge, et les rares fois ou j'ai réussi à atteindre un terminal avant le blocage total, j'ai résolu le probleme en tuant folding_at_home. Je pensait etre seul au monde à avoir ce genre de probleme ! Ca fait longtemps que ca ne m'est pas arrivé, mais promis, la prochaine fois, j'épluche les logs !

----------

## profy

t'as essayé de virer -pipe ?

----------

## masterinferno

-pipe non j'ai jamais essayé de le virer...

En fait, j'avais déjà mis pleins d'options dans le CFLAGS, mais j'ai réduit et mis les options les plus sûres...

Je ne sais pas, mais je pense que c'est à cause du ACCEPT_KEYWORDS="~x86"... du fait que tout le système tourne comme ça (emerge -uD --newuse world)

 :Rolling Eyes:   C'est bizarre... mais comme dit, c'est seulement quand je lance des grosses compilations.. (récemment wine)

edit: non je n'ai pas folding@home, ni seti@home...

----------

## Poischack

slocate ?

----------

## loopx

 *masterinferno wrote:*   

> 
> 
> Je ne sais pas, mais je pense que c'est à cause du ACCEPT_KEYWORDS="~x86"... du fait que tout le système tourne comme ça (emerge -uD --newuse world)
> 
> 

 

Ce ne serais pas très mauvais de faire ca par hasard ? Je croyais que le x86 s'utilisait vraiment dans les cas ou il n'y a pas encore de version stable pour... pour... (c'est ici que je ne comprend plus  :Rolling Eyes:  ) ...

----------

## Poischack

loopx> personelement je suis en ~x86 parceque j'aime avoir les dernieres versions de mes programmes

----------

## masterinferno

Oui, tout le système tourne en unstable mais, ça gêne pas du tout...au contraire, il est encore plus stable que d'habitude... mis à part ce problème..

Euh, Poischack, non je t'assure je n'ai pas installé ce Seti (slocate sert à rien dans ce cas...)  :Confused: 

----------

## Apsforps

 *masterinferno wrote:*   

> Euh, Poischack, non je t'assure je n'ai pas installé ce Seti (slocate sert à rien dans ce cas...) 

 

Slocate n'a rien à voir avec seti... c'est juste un truc qui indexe tes fichiers dans une base de données et qui actualise de temps en temps cette base, généralement en faisant beaucoup de bruit sur le disque dur...

----------

## anigel

Je ne peux pas t'assurer qu'il s'agisse de ça, mais je mise 1 sou dessus quand même : augmente ta swap, et re-tente. M'est d'avis que ça va régler ton problème.

Si tu ne veux pas repartitionner ton disque dur pour ça :

```
dd if=/dev/zero of=/swap bs=512 count=1048576

mkswap /swap

swapon /swap
```

(remplaces /swap par le fichier de ton choix, sur une partition qui ait au moins 512M de libre).

Puis ré-emerge ce qui posait problème, et tiens-nous au courant,

Amicalement,

----------

## masterinferno

Ok ok... ça confirme ce que je pensais...la swap est trop petite...  :Sad: 

Mais c'est bizarre, elle n'était jamais pleine quand je lançais un emerge... :Rolling Eyes: 

Par contre, j'ai pas de partition de libre, ni de place de libre... donc à ma prochaine installation de Gentoo, je réduirais ma / pour avoir plus de place pour la swap...

256 suffisent ou il faut 512 ?

je vous tiendrai au courant  :Wink: 

----------

## kwenspc

oui et vérifis bien aussi dans tes règles cron qu'il ne lance pas slocate tout les jours (/etc/cron.daily/ )

perce quand il se lance chez moi il bouffe aussi pas mal de ressources (sans bloquer ma machine toutefois)

----------

## blaznyoght

256 en swap ou en Ram ?

à mon humble avis 256Mo de Ram ça commence à être juste de nos jours et vu le faible prix de la RAM (faut en profiter), Le confort ajouté par l'investissement minime dans 256Mo supplémentaire pourrait être intéressant.

En ce qui concerne la swap, faut savoir que lorsque Linux ne trouve plus de mémoire disponible il tue comme un bourrin les processus utilisant trop de mémoire (je pense que les compiles avec -pipe et xorg par exemple font partis des processus qui auraient de grandes chances d'être ciblés.)

Pour définir la taille de la swap j'ai vu différente règle, genre 125% de la RAM ou 200%. A mon avis le bon choix se situe dans cette fourchette en tenant compte de ce que je disais précédemment sur le noyau qui se prend pour un serial-killer. donc pour 256Mo de Ram le grand minimum si tu utilises des applis gourmantes en RAM (kde et consort) serait de 512Mo.

Mes 0,02

<HS> AAAAAAAAAAHHHHHHHHHH un kwenspc !!! </HS>

----------

## masterinferno

kwenspc: non je n'ai pas de démon cron (j'en ai pas l'utilité...)

blaznyoght: en fait, au départ j'en avais 512...mais la barette a grillé (complètement morte, le bios me détectait plus que 128, et au reboot hop écran noir..-> barette poubelle)

J'en ai donc racheté une neuve.. et je me suis dit, pour changer de la 512 PC2700, je vais me tenter de la 3200, mais j'ai pris que de la 256Mo...et franchement ça tourne quasiment aussi bien...

Et de toute façon, je n'upgraderai plus cet ordi (projet d'achat d'un portable à long terme)

Bon allez, va pour 512 de Swap...  :Wink: 

Je tourne que sous Fluxbox sans application en QT, mais 512 me semble une bonne marge  :Smile: 

Merci à vous  :Very Happy: 

----------

## Hammerhead2048

 *blaznyoght wrote:*   

> 
> 
> Pour définir la taille de la swap j'ai vu différente règle, genre 125% de la RAM ou 200%. A mon avis le bon choix se situe dans cette fourchette en tenant compte de ce que je disais précédemment :lol:sur le noyau qui se prend pour un serial-killer. donc pour 256Mo de Ram le grand minimum si tu utilises des applis gourmantes en RAM (kde et consort) serait de 512Mo.
> 
> 

 

C'est peut être vrai quand on a 256 ou 512 de ram, mais quand on tourne avec 1,5 Go, on est obligé de suivre cette règle ou pas ? Parce que franchement, j'ai une partoche swap de 512 Mo, et j'ai jamais vu Gentoo y accéder.

----------

## kopp

Nan cette règle est valable pour de petite quantité de mémoire

Pour toi c'est pas la peine!

une petite swap comme tu as c'est suffisant, juste "au cas ou"... et encore ça m'étonnerait

perso j'ai que 512 de ram, et c'est déjà extemement rare que ça accede à la swap, alors je pense pas que tu risque grand chose

sauf si tu fais des trucs necessitants bcp de mémoire en meme temps...

----------

## masterinferno

C'est pour ça... au début, j'avais 512Mo de RAM et autant de swap... jamais, mais alors jamais utilisée...

Alors, je l'avais réduite à 128Mo..

Dès que je suis passé à 256Mo de ram, ben la swap est restée...   :Neutral: 

----------

## blaznyoght

bah de toute façon l'intérêt d'une telle règle à l'origine c'était juste donner un indicateur pour les gens achetant une machine "standard".

A mon avis de nos jours une machine neuve avec 256Mo de RAM est en dessous de la moyenne et une machine avec 1,5Go au dessus. D'où l'intérêt de comprendre le fonctionnement de Linux quand il arrive à court de mémoire. Avec 1,5Go de Ram selon ce que tu fais tourner y a sûrement des gens qui ne mettraient même pas de swap. Mais si c'est un gros serveur qui fait tourner moults services ça devient indispensable. De même qu'avec 256Mo tu peux te passer de swap si tu n'as pas de xorg et très peu de services lancés. Le tout c'est d'adapter la règle à sa propre utilisation en essayant d'éviter que Linux ne devienne un serial-killer  :Wink: 

----------

## Enlight

Mouais alors juste pour démentir quelques truc j suis aller faire un tour en ssh sur le pc de ma soeur :

 *Quote:*   

> EVA_02 ~ # free -m
> 
>              total       used       free     shared    buffers     cached
> 
> Mem:           248        245          3          0         19         93
> ...

 

full ~x86, KDE 3.4, 3 tonnes d'applis ouvertes comme à son habitude gaim, une dizaines d'instances de konqueror, 3 ou 4 kmplayers, amarok et oppen-office.

----------

## blaznyoght

Bon excuses moi Enlight, mauvais exemple pour kde qui ne prend pas autant de mémoire que ça  :Embarassed: 

Mais ça n'enlève rien au fait que le dimensionnement de la swap doit se faire en fonction du PC et de son utilisation.

----------

## fpolux

Perso, pour une utilisation normale (developpement, web, bureau et multmedia ...), j'ai jamais vu plus de 180 Mo pris en RAM (kde compris !) alors, j'ai 512Mo de RAM, et adieu la swap, ca sert a rien !

PS : c'est sur que si vous faites des gros trucs de fou avec blender ou autre, vous aurez peut etre besoin de plus.

----------

## masterinferno

Mais les gros trucs de fou, ça peut aussi de la compilation non ?

----------

## Ey

 *masterinferno wrote:*   

> Mais les gros trucs de fou, ça peut aussi de la compilation non ?

 

Euh ... Tu comptes faire quoi ? mettre toutes les sources de QT dans un seul fichier et rajouter KDE et ensuite balancer ça dans ton compilateur ? Non plus sérieusement la compilation c'est pas aussi gourmand que ça en mémoire.

----------

## fpolux

Non, la compil, ca prend pas beaucoup de RAM, ca prend beaucoup de proc. Tu as besoin de RAM quand tu manipule des grosses données (je fesait allusion a blender, que je n'utilise pas, car ca m'est déjà arrivé d'avoir un logiciel de CAO méca qui prenne plus de 400 Mo en RAM, sur un assemblage compliqué  :Smile:  )

A mon avis, ne cherche pas du coté de la swap pour ton pb de disque... j'imagine plutot un pb avec une appli lancée en démon (donc généralement plus prioritaire que ton bureau), de la meme facon que 'ai pu etre embetté qqfois avec folding@home

----------

## nonas

Je dois avoir un système ultragourmand  :Laughing:   ou un noyau ultrapourri, ce qui ne m'étonnerai pas :d

```
top - 15:24:18 up 11 days, 15:07,  3 users,  load average: 2.12, 2.10, 2.16

Tasks:  96 total,   3 running,  93 sleeping,   0 stopped,   0 zombie

Cpu(s):  0.8% us,  0.0% sy, 98.3% ni,  0.8% id,  0.0% wa,  0.0% hi,  0.0% si

Mem:    903852k total,   839492k used,    64360k free,    95364k buffers

Swap:  1004052k total,   309892k used,   694160k free,   275360k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND

20725 foldinga  39  19 70728  10m  424 R 98.6  1.2   1253:03 FahCore_65.exe

22368 foldinga  39  19 16260 7996  660 R 98.6  0.9 556:24.93 FahCore_78.exe

 8205 root      15   0  276m 217m 5640 S  0.7 24.7 193:57.95 X

```

Gnome, FF, aMule, xchat, gaim et c'est à peu près tout. Étrange...

----------

## expl0rer

 *Quote:*   

> Je dois avoir un système ultragourmand  ou un noyau ultrapourri, ce qui ne m'étonnerai pas :d
> 
> Code:
> 
> top - 15:24:18 up 11 days, 15:07,  3 users,  load average: 2.12, 2.10, 2.16
> ...

 

T'as un peu oublié Folding@Home que tu as du installer et qui permet a des chercheurs d'utiliser les ressources de ta machine ainsi que celle de plein d'autre gars comme toi afin de simuler un super calculateur à moindre coup et faire tout un tas de calculs tres complexes et tres lourds .... :

FahCore_78.exe

FahCore_65.exe

En tout cas j'ai beaucoup moins de ram que toi (384 sur mon portable) et X ne me prend que 13% (vive fvwm)

----------

## nonas

Je ne les ai pas oubliés mais je n'ai pas le souvenir qu'ils étaient si gourmands sous windows.

Enfin c'était juste pour montrer qu'avec 1Go de RAM, le système peut quand même être amené à utiliser la swap (ce qui ne me dérange pas du tout)  :Smile: 

Je pense aussi que ce genre de paramètres dépend de l'uptime de la machine, le kernel ayant pour habitude de "ne pas vider la ram au cas où"  :Question: 

Pour le X je le trouve assez gourmand aussi, et je pense rebasculer sur FVWM prochainement (faut juste que je me motive pour pondre un fichier de config plaisant). Parce que bon Gnome et tout le tintouin... (troll spotted)

----------

## fpolux

mais, vous devriez pas regarder l'utilisation de votre mémoire avec top, utilisez la commande free.

vous allez voir la différence (y a truc qui s'appelle le cache, allez voir sur gentoo wiki, pourquoi n'y a t'il jamais de mémoire libre)

TOP :

```

top - 13:37:34 up  5:19,  2 users,  load average: 1.30, 1.19, 1.09

Tasks: 101 total,   2 running,  99 sleeping,   0 stopped,   0 zombie

Cpu(s):  3.3% us,  2.3% sy, 94.0% ni,  0.0% id,  0.0% wa,  0.3% hi,  0.0% si

Mem:    514972k total,   490464k used,    24508k free,    37264k buffers

Swap:        0k total,        0k used,        0k free,   274888k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+    TIME COMMAND

 2589 foldinga  39  19 21576  12m 1040 R 94.5  2.5 314:22.60 314:22 FahCore_78.e 

 3033 root      16   0  176m  34m 8940 S  3.7  6.9   1:14.00   1:14 X

 3964 polux     15   0 57424  38m  20m S  1.3  7.7   1:05.01   1:05 firefox-bin

 3998 polux     15   0  115m  57m  31m S  0.0 11.4   0:35.42   0:35 acroread

 2423 foldinga  25   0  8556  796  568 S  0.0  0.2   0:05.40   0:05 foldingathom

 3488 polux     16   0 21684 9.8m 7744 S  0.0  2.0   0:03.58   0:03 clock-applet

 3492 polux     16   0 20092 9812 7560 S  0.3  1.9   0:03.58   0:03 geyes_applet

  3461 polux     16   0 29720  16m  11m S  0.0  3.2   0:02.63   0:02 gaim

 3517 polux     15   0 36144  15m  11m S  0.0  3.1   0:02.61   0:02 beep-media-p
```

Maintenant, regardons avec free :

```
polux@polux ~ $ free -m

             total       used       free     shared    buffers     cached

Mem:           502        480         22          0         36        270

-/+ buffers/cache:        174        328

Swap:            0          0          0

```

Moralité : parmis les 480 Mo que mon OS préféré squatte, il y en a 328 qui servent de mémoire cache (en gros, c'est de l'optimisation d'acces aux ressources), et mon système n'utilise QUE 174 Mo pour s'exécuter.

Moralité (bis) : On n'utilise pas un airbus pour retourner la terre dans un champs (meme s'il a des moteurs puissants), et on ne regarde pas l'utilisation mémoire avec top (meme si c'est un bon prog pour voir les processus gourmants) !

Enfin bon, revenons un peu dans le sujet. Moi, ca fait longtemps que ca ne m'est pas arrivé d'avoir un freeze DD, mais si ca arrive a quelqu'un, j'aimerai bien matter du log.

----------

## anigel

 *fpolux wrote:*   

> Moralité (bis) : On n'utilise pas un airbus pour retourner la terre dans un champs (meme s'il a des moteurs puissants), et on ne regarde pas l'utilisation mémoire avec top (meme si c'est un bon prog pour voir les processus gourmants) !

 

Moi j'utilise un Boeing (un petit, hein ^^ - quoiqu'un peu cher, il faut avoir le champ adéquat, quoi  :Laughing:  ).

Bon, pour recoller au sujet d'origine, avoir trop peu de mémoire, ça peut avoir plusieurs conséquences sur la compilation : tout d'abord, obliger le noyau à stocker en swap des applis "de premier plan", le temps que le process en cours se termine, puis à le remettre en avant-plan (dans ces 2 opérations, le disque dur gratte, et chauffe). Multipliez ça par le nombre hallucinants d'opérations de ce type qu'une compilation généère, et vous obtenez un disque dur IDE qui travaille comme un SCSI (sans arrêt), mais sans être prévu pour. Au choix : il crame, ou il se met en rideau. Dans tous cas les cas, en procédant comme ça, tu écourtes beaucoup la durée de vie de ton disque. Rajouter de la swap ne te permet pas de résoudre le problème, mais simplement de le mettre en évidence.

Aujourd'hui pour un système desktop, 512 Mo de RAM ne sont plus une option de confort, mais une nécessité pure et simple. Le swap sera là pour sécurité, rien de plus.

Pour la quantité de swap à allouer, j'opte quasiment toujours pour 512 Mo. Seuls mes serveurs sont prévus pour plus (de 1 Go à 4 Go sur disque dédié ou non, selon l'utilisation). La seule machine de bureau qui déroge à cette règle est la mienne, qui dispose de 1 Go de RAM, et de 2 Go de swap, car je l'utilise pour émuler d'autres OS, parfois en simultané.

Pour faire simple : achètes une barette de RAM... vite !

----------

## masterinferno

Non, ça ira ! je vais me prendre un portable prochainement  :Wink: 

merci de ton explication

(à propos, j'ai réussi à compiler wine sans qu'il gratte  :Smile:  )

----------

## dapsaille

Nonas j'ai vu ecrit du genre 900000 KO de ram au lieu de 1024000ko .... 

n'aurais tu pas boude le suport highmem dans ton kernel a tout hasard ? :p

----------

## nonas

 *dapsaille wrote:*   

> Nonas j'ai vu ecrit du genre 900000 KO de ram au lieu de 1024000ko .... 
> 
> n'aurais tu pas boude le suport highmem dans ton kernel a tout hasard ? :p

 Y'en a qui on l'oeil affuté  :Smile: 

J'ai prévu de me refaire un bô kernel ce weekend  :Wink: 

@Anigel: OK c'est mieux d'avoir un système qui ne swap pas mais bon les disques durs récents (PATA ou SATA) sont quand même très fiables. Je ne pense pas qu'à terme le disque en arrive à cramer. Biensûr je ne dis pas que ça n'arrive jamais mais globalement ça devrait aller. En tout cas tu soulignes bien le fait qu'un disque ça chauffe et que bien souvent ce paramètre n'est pas pris en compte dans le refroidissement de la machine, alors en effet quand un disque tourne souvent au delà de sa température maximale, il peut rencontrer des problèmes très rapidement.

Après comme tu le fais, la solution la plus confortable est de mettre la swap sur un autre disque que le système mais bon tout le monde ne peut pas se le permettre. (et portage aussi et /home aussi etc  :Laughing:  )

----------

## anigel

Le problème n'est pas la fiabilité des disques, mais le fait qu'il s'agisse de composants mécaniques, sujets à usure, comme n'importe quel "rouage". Economiser 20 euros sur la RAM peut coûter très très cher en disque, à moyen ou long terme...

Enfin je dis ça, je dis rien... Mais je constate que sur la totalité des machines dont je dispose, les disques des configs un peu "limites" question RAM grillent plus fréquemment. Et pourtant les disques sont de même génération.

----------

## anigel

Ah oui, un "détail" que j'ai oublié : il faut bien garder à l'esprit que les fonctions de "mise en veille prolongée" de linux requièrent un espace de swap confortable... Donc RAM x 2 me semble plus que jamais une bonne règle  :Wink: 

----------

## yoyo

Pour la "mise en veille prolongée", le patch suspend2 permet d'utiliser un filewriter : plus besoin de swap important, tout est écrit dans un fichier à la racine (ou ailleurs, c'est au choix).

Mes 0.02 cents.

----------

