Mémoire cache... ridicule!

Mémoire cache... ridicule! - Disque dur - Hardware

Marsh Posté le 04-02-2011 à 17:03:59    

Bonjour à tous! J'ai une question juste par curiosité, j'ai fait un peu de recherche mais sans trouver réponse ^^
 
Pourquoi (mais dans la rubrique "Mais pouuuuhouuuurquoiiiiiii!!!!!!???" ) les disques durs, même récents, ne contiennent pas des mémoires caches exceptionnelles?
 
Je me souviens ya pas si longtemps (ya 5-10 ans) que les mémoires cache étaient déjà quasiment du même ordre (disons 4 à 32 Mo). Corrigez moi si je me trompe, mais le cache c'est un peu de la même vitesse qu'une barrette mémoire? Or, la Ram c'est encore plus rapide que les SSD. Pourquoi donc la mémoire cache n'a t'elle pas été plus volumineuse avec les disques durs récents (1, 2, ... To) ? Ca pourrait pourtant améliorer leur rapidité de transfert... ?
(petit hors sujet: je suppose que les SSD ont aussi de la mémoire cache...?)
 
Je ne sais pas ce que vous en pensez, mais imaginer que de 100 Go à 3 To on a quasiment pas de changement conséquent au niveau du cache, c'est assez interpellant. Pourtant, avoir un cache du style 256 Mo à 4 Go, c'est pourtant possible, au niveau de l'espace physique du disque et du prix...?
 
Donc ma question c'est: pourquoi les disques durs sont devenus de 10 à 30 fois plus volumineux mais que le cache n'a augmenté que de 2 à 4 fois dans le même temps alors que la technologie est là?

Reply

Marsh Posté le 04-02-2011 à 17:03:59   

Reply

Marsh Posté le 04-02-2011 à 17:07:31    

Parce que augmenter le cache n'augmente pas les perfs.
 
Au final tu restes limité par la mécanique des disques, et sur ca t'as eu d'énormes avancées.

Reply

Marsh Posté le 04-02-2011 à 17:26:10    

On va un peu étayer, histoire de matcher avec le pavé que t'as écrit :p
 
1 - Le cache d'un disque n'est pas aussi rapide que la RAM. Etant donné que tu es limité dans le sens disque => carte mère par ton interface (SATA ou SATA 2 ou SATA 3), aucun intérêt de mettre du cache trop rapide. Dans le meilleur des cas (SATA3), tu seras a genre 600 Mo/s, loin du débit possible par la RAM.
 
2 - Le cache d'un disque est en fonction de la vitesse de la mécanique derrière. Quand un gros cache est couplé à un espace de stockage lent (ce qui est le cas sur un HDD), tu fais apparaitre plusieurs risques :
 -> perte de données si tu mets les données en cache sans les flusher sur le disque.
 -> Problèmes de cohérence entre les datas sur le disque et les datas en cache en cas d'I/O successives sur les mêmes blocs
 -> Dégradation des performances lorsqu'une opération requiert un flush (cad que tu dois vraiment écrire les données sur le disque). Imagine qu'en plein jeu le cache est tellement plein que ton disque doit écrire d'un seul coup 4 Go de données.
 
3 - La mémoire cache coûte très cher.
 
 
Donc sur un disque lent, un cache trop important est contre productif. Et sur un disque rapide, pas besoin de payer du cache cher si le stockage va presque aussi vite.

Reply

Marsh Posté le 04-02-2011 à 20:55:17    

ccp6128 a écrit :

Imagine qu'en plein jeu le cache est tellement plein que ton disque doit écrire d'un seul coup 4 Go de données.


              :heink:  
 
 

Citation :

3 - La mémoire cache coûte très cher.

 En tous cas il la vendent très cher


Message édité par stef3000 le 04-02-2011 à 20:55:37
Reply

Marsh Posté le 04-02-2011 à 20:56:15    

Etaye tes propos, ca me dérange pas d'expliciter, mais un smiley ne me permet pas de comprendre ce que tu veux dire.

Reply

Marsh Posté le 04-02-2011 à 20:59:22    

 
Salut ccp6128 (Run"menu)
 
Ben j'hallucine qu'un jeu ait besoin d'écrire 4Go d'un coup ! même 1 go  (je ne suis pas joueur mais ça me fait haluciner)

Reply

Marsh Posté le 04-02-2011 à 21:05:02    

Je partais de son hypothèse d'un disque dur avec un gros cache, par exemple un cache de 4Go.
 
Dans ce cas de figure, dès que le cache serait rempli, imagine le ralentissement monstrueux que cela causerait. Etant donné que pas mal de gens sont joueurs ici je donne l'exemple en plein jeu (un bon lag de 40 secondes dans le meilleur des cas).
 
Mais ca ferait pareil dans n'importe quel autre cas de figure.

Reply

Marsh Posté le 04-02-2011 à 21:16:24    

La mémoire NAND Flash est une mémoire non-volatile, rien à voir avec de la mémoire cache (que ce soit en matière de propriétés, prix, ...).
 
Au pire, pour profiter complètement de la rapidité de la RAM sans avoir à passer par la lenteur du DD, il y a le RamDisk... :D

Reply

Marsh Posté le 04-02-2011 à 21:20:22    

Ou le cache de l'OS. La plupart des systèmes d'exploitation décents gardent en RAM les données précédemment chargées, voire font de la mise en cache prédictive comme sous Windows 7 par exemple.
En fait le ramdisk c'est presque triplement redondant dans pas mal de cas.

Reply

Marsh Posté le 04-02-2011 à 21:23:55    

 
Oui j'avais pas compris que tu prenais l'exemple d'un disque avec un cache de 4go
 
Est ce que par hasard tu sais quelle taille il fait, le cache des SSD intel, parceque je capte pas trop pourquoi ca boost en finalité puisque de toutes facons il est en général insignifiant, ce cache, et que de toutes facons va falloir aller "flusher" comme tu dis (je savais pas qu'on disait comme ça) (c'est d'ailleurs un très joli verbe tout a fait anglais : ils utilisent beaucoup la sonorité pour inventer les mots mais là je suis HS)

Reply

Marsh Posté le 04-02-2011 à 21:23:55   

Reply

Marsh Posté le 04-02-2011 à 21:35:02    

Désolé pour les anglicismes, je connais pas pas le terme français équivalent.
 
Flusher c'est effectivement la partie lente, à savoir écrire les données réellement sur le disque.
 
L'intérêt du cache en écriture varie, selon que ce soit un disque physique ou un SSD.
 
Sur un disque physique, le gros intérêt sera de pouvoir garder les données assez longtemps pour optimiser le déplacement des têtes du disque. Ca permet d'augmenter les débits et de pallier partiellement à la plus grosse faiblesse qui est l'écriture aléatoire.
 
Sur les SSD d'Intel, le cache est très petit (me semble il 256 ko) mais ca suffit largement pour augmenter énormément les performances, pas tellement en termes de débits, mais en termes d'IOPS (opérations distinctes par seconde).

Reply

Marsh Posté le 04-02-2011 à 21:52:35    

 
Pas de probleme pour les anglicismes, l'état lui même (véhicules renault etc) le fait depuis longtemps...
 
Oui, par contre l'écriture aléatoire tout ça je comprends mais je comprends pas pourquoi, (à part son swap à la gomme et autres bidules), pourquoi l'os doit aller sans cesse acceder au disque... pourquoi pas tout en RAM ?!!

Reply

Marsh Posté le 04-02-2011 à 22:00:40    

Pas mal de facteurs. Déjà le ratio taille du disque / taille de la RAM qui fait que tu ne peux pas tout mettre en RAM.
 
Mais avec une quantité correcte de RAM, et un OS récent, tu as déjà en RAM tout ce qui est prédictible, les fichiers de l'OS, et les programmes les plus souvent lancés.
 
Le souci c'est que pendant que l'OS met en cache ces données, en général tu veux utiliser ton pc => le disque gratte à fond, et ca t'énerve. Par exemple Vista qui est décrit comme un OS très lourd a eu mauvaise réputation à cause de sa mise en cache agressive.
 
Autre souci, ca marche bien pour les programmes, moins bien pour les datas. Il est rare que tu ouvres systématiquement les mêmes fichiers avec tes applis.
 
Pour un usage basique genre web, quelques minutes après le démarrage de Windows, ton navigateur sera préchargé en RAM même si tu ne l'as pas encore lancé.

Reply

Marsh Posté le 04-02-2011 à 22:21:36    

 
Merci tu explique très bien en plus
 
Mais

Citation :

l'OS met en cache ces données


pourquoi il fait ça ?
 
 
 

Citation :

Autre souci, ca marche bien pour les programmes, moins bien pour les datas. Il est rare que tu ouvres systématiquement les mêmes fichiers avec tes applis.


Ca ok
 
 

Citation :

quelques minutes après le démarrage de Windows, ton navigateur sera préchargé en RAM même si tu ne l'as pas encore lancé.


Sous vista (chez mon beau pere) il faut maintenant 10 secondes pour l'ouvrir, quesque ca serait sans !?!!  Ne me dis pas que ce couillon, n'ayant plus de ram, mette le navigateur dans le swap !!!  :pt1cable:


Message édité par stef3000 le 08-02-2011 à 20:26:33
Reply

Marsh Posté le 04-02-2011 à 22:35:06    

Tu as deux façons d'accélérer le chargement des programmes.
 
Le premier, ce que pas mal d'OS font, c'est ce qu'on appelle le cache disque. Quand tu fermes un programme, il n'est pas éjecté de la RAM. Ainsi, si tu le relances par la suite, tu accélères grandement son lancement. Mais ca ne marche pas sur le premier démarrage, qui est en général le plus discriminant.
 
Le second, c'est la mise en cache prédictive (superfectch sous Windows Vista ou 7) qui consiste à avoir une liste des fichiers les plus souvent lancés dans les premières minutes d'utilisation de ton pc, et de les mettre en cache dans la RAM le plus vite possible. Mais ce comportement ralentit ton pc au démarrage. C'est pour ca que maintenant sous Windows 7 la mise en cache commence quelques minutes après que tu aies chargé ta session, et est progressive.
 
 
Qu'un programme soit préchargé en RAM ne permet toutefois pas de rendre son lancement instantané. Il faut par exemple s'assurer que le contenu de la mémoire correspond bien au contenu du disque. Sur les gros softs il y a aussi une tripotée de dépendances (des DLL, lectures dans le registre, des écritures dans des fichiers) qu'il faut vérifier avant de pouvoir exécuter le code.
 
Il ne faut pas aussi perdre de vue que ta machine ne doit pas devenir une brique en cas de panne de courant. Le cache en lecture ne pose aucun souci, mais tout ce qui est écriture ne doit pas s'accumuler dans le cache trop longtemps.

Reply

Marsh Posté le 04-02-2011 à 22:38:00    

Dernier point, on ne peut pas exécuter directement le contenu de la swap. Il n'y a que les données "pas utiles pour le moment" qui sont placées dans la swap.
 
Disons qu'un programme a besoin de lire 100Mo de données qui sont dans la swap. Ton OS va en fait prendre 100Mo de données en RAM, les mettre dans la swap, puis lire les 100Mo dont il a besoin, et les mettre dans la RAM.
 
Laborieuse gymnastique effectivement.

Reply

Marsh Posté le 04-02-2011 à 22:51:43    

Merci beaucoup pour ta réponse éclairée CCP6128, grâce à toi j'en sais un peu plus (*-> mis dans mes favoris)
Je m'étonnais juste que pendant que la mémoire passe de 128Mo à 8Go et que les disques passent de 200 à 3000 Go, la cache n'évoluait pas tellement... Et maintenant je comprends qu'en ajouter plus ne règle pas le problème vu que le risque de perdre ses données est quand même plus crucial que d'avoir des performances en plus. Moi je pensais simplement que c'était le cache qui pesait dans la balance des performances, vu qu'on met moins longtemps à remplir une cruche avec un verre qu'avec un dé à coudre.
 
Pour résumer mieux vaut avoir un petit cache avec des taux de transferts assez élevés qu'un cache volumineux et un taux pas très grand, ce qui met une plombe pour le transfert
 

Reply

Marsh Posté le 04-02-2011 à 23:07:43    

ccp6128 a écrit :

Dernier point, on ne peut pas exécuter directement le contenu de la swap. Il n'y a que les données "pas utiles pour le moment" qui sont placées dans la swap.
Disons qu'un programme a besoin de lire 100Mo de données qui sont dans la swap. Ton OS va en fait prendre 100Mo de données en RAM, les mettre dans la swap, puis lire les 100Mo dont il a besoin, et les mettre dans la RAM.
Laborieuse gymnastique effectivement.


J'ai compris mais pourquoi il rempli pas la ram d'abord (parcequ'elle sera tj pleine rapidement c'est ca ?)

Reply

Marsh Posté le 04-02-2011 à 23:10:06    

Sisi il remplit bien la RAM d'abord. Rien n'est mis en swap tant que la RAM n'est pas entièrement saturée.
 
On place dans la RAM dans l'ordre
 
- Données essentielles à l'OS pour fonctionner (kernel, drivers)
- Exécutables et datas en cours d'utilisation
 
Puis on complète au maximum avec le cache disque. Mais sans toucher au swap. S'il n'y a pas de place pour le cache disque, il n'y en aura pas du tout.

Reply

Marsh Posté le 04-02-2011 à 23:13:50    

Oui
 
Moi je fonctionne sans swap depuis des années (XP et seven plus récemment)
 
Mais je suis pas sur à 100% qu'il ne me pose pas un "petit"  pagefile quelque part
 
parceque je rempli jamais ma ram...!

Message cité 1 fois
Message édité par stef3000 le 04-02-2011 à 23:14:13
Reply

Marsh Posté le 04-02-2011 à 23:16:29    

Il ne t'en pose pas.
 
Mais en fait le swap peut aider dans certains cas.
 
Quand un programme alloue à l'avance de larges quantité de mémoire sans s'en servir tout de suite (genre les programmes de retouche photo ou vidéo, ou les programmes qui utilisent une JVM genre Java ou .Net), ton OS va placer les pages "vides" en swap.
 
En pratique il ne va rien écrire, juste dire "ok la zone xxx a yyy remplie de rien du tout, hopla dans le swap". Ce qui fera que tu auras encore tout plein de RAM dispo pour des choses plus utiles.
 
Un swap bien dimensionné peut donc aider a "économiser" ta RAM.

Reply

Marsh Posté le 04-02-2011 à 23:21:57    

 
Merci beaucoup   :)

Reply

Marsh Posté le 05-02-2011 à 04:59:04    

Concernant la question du début: la petite mémoire tampon dans le disque-dur (ou le SSD) ne sert qu'à réaliser les copies de secteurs (blocs de 512ko) entre les plateaux d'un disque mécanique (ou la Flash d'un SSD) et la RAM. Cela ne sert strictement à rien d'autre. Le cache-disque, par contre, ça n'a rien à voir. Le cache-disque est le nom donné à une fonction de l'OS qui conserve en RAM les derniers blocs accédés sur le disque, afin de ne pas refaire appel au disque. Le cache-disque est donc une disponibilité directe et instantanée, qui ne sollicite absolument pas l'interface SATA, ni même le bus PCIe, puisque le cache-disque est une zone de la RAM gérée par l'OS, totalement indépendante du disque.
 
La taille du cache-disque est à peu près la taille de toute la RAM non-réservée par les processus. Ainsi, lorsque vous faites Ctrl+Maj+Échap, puis onglet Performances, vous voyez une jauge mémoire. La partie vert clair (bas de la jauge) représente toute la RAM réservée par les processus, et utilisée de façon indispensable par l'OS, alors que la partie vert foncé (haut de la jauge) représente la RAM dite "disponible", qui tant qu'elle n'est pas réservée, peut servir pour d'autres usages purement pratiques, comme le cache-disque. Ainsi, si vous avez 4Go de RAM, et que votre jauge vous indique un remplissage à 2Go, les 2 autres Go "disponibles" seront probablement autant utilisés que les 2Go "réservés", car rien qu'un démarrage de Windows suffit à lui seul à bien remplir le cache disque, puis si vous lancez quelques applis, vous avez à coup sûr 100% de la RAM utilisée, même si seulement 50% est "réservée" (affichée en vert clair).
 

stef3000 a écrit :

Moi je fonctionne sans swap depuis des années (XP et seven plus récemment)
Mais je suis pas sur à 100% qu'il ne me pose pas un "petit"  pagefile quelque part
parceque je rempli jamais ma ram...!

Tu n'auras aucun fichier pagefile ou équivalent, petit ou grand, si le swap est désactivé. Tu peux même désactiver la mise en veille prolongée, et ainsi supprimer un 2ème gros fichier de ton disque-dur. Moi, c'est ce que je fais: désactivation systématique du swap et de la veille prolongée.
 
Le swap ne sert qu'à une chose : empêcher que des processus soient tués par l'OS s'ils utilisent trop de mémoire par rapport à la RAM disponible. En aucun cas, le swap n'accélère quoi que ce soit, bien au contraire. Je dirais même que si vous avez une RAM de 4Go et que vous en utilisez 3.5Go (swap activé ou pas) vous aurez forcément des performances pourries et de nombreux accès répétitifs aux disques, rien que parce que le cache-disque est trop petit.

Reply

Marsh Posté le 05-02-2011 à 05:06:19    

ccp6128 a écrit :

Quand un programme alloue à l'avance de larges quantité de mémoire sans s'en servir tout de suite (genre les programmes de retouche photo ou vidéo, ou les programmes qui utilisent une JVM genre Java ou .Net), ton OS va placer les pages "vides" en swap.
En pratique il ne va rien écrire, juste dire "ok la zone xxx a yyy remplie de rien du tout, hopla dans le swap". Ce qui fera que tu auras encore tout plein de RAM dispo pour des choses plus utiles.

Tout à fait d'accord, mais ce que tu dis fonctionne aussi lorsqu'il n'y a pas de fichier d'échange. Le logiciel de retouche photo, lorsqu'il se réserve de la RAM, l'OS lui fournira de la mémoire swappable, mais ne sera swappée qu'en cas de besoin, autrement dit qu'en cas de manque de RAM. L'insuffisance de RAM est une très mauvaise chose, car avant même d'atteindre l'insuffisance de RAM, on diminue la taille du cache-disque, donc des performances d'accès répétitifs aux fichiers. Si tu as suffisamment de RAM disponible, la RAM réservée par ton logiciel de retouche photo, bien que swappable, n'aura jamais l'occasion d'aller faire un tour sur le disque-dur.

Reply

Marsh Posté le 05-02-2011 à 05:23:52    

ccp6128 a écrit :

Qu'un programme soit préchargé en RAM ne permet toutefois pas de rendre son lancement instantané. Il faut par exemple s'assurer que le contenu de la mémoire correspond bien au contenu du disque.

Étant donné que seul l'OS a accès au disque, et que tout ce qui est en RAM provient du disque, et y a été placé par l'OS, il n'y a aucune vérification entre RAM et disque. Les applications accèdent à des fichiers, et ne font pas la différence entre un fichier qui était déjà en RAM et un fichier qui n'y était pas et que l'OS a dû charger à la demande, car tout ça fait partie du cache-disque qui est le travail de l'OS.
 

ccp6128 a écrit :

Sur les gros softs il y a aussi une tripotée de dépendances (des DLL, lectures dans le registre, des écritures dans des fichiers) qu'il faut vérifier avant de pouvoir exécuter le code.

C'est vrai, mais cela n'a rien à voir avec le cache-disque. C'est simplement de la lecture de fichiers, peu importe que ces fichiers soient déjà en RAM où qu'ils aient dû être copiés en RAM pour l'occasion.
 

ccp6128 a écrit :

Il ne faut pas aussi perdre de vue que ta machine ne doit pas devenir une brique en cas de panne de courant. Le cache en lecture ne pose aucun souci, mais tout ce qui est écriture ne doit pas s'accumuler dans le cache trop longtemps.

Sous Windows, cela n'attend pas plus de quelques secondes avant que les modifications soient répercutées sur le disque, mais dans tous les cas, ces données ne disparaissent pas de la RAM. Dans l'absolu, il n'y aurait pas besoin du cache en écriture si toutes les applications étaient bien programmées, mais certaines applications mal programmées enregistrent les fichiers par petits blocs minuscules, voire octet par octet... alors qu'elles devraient le faire d'un coup. Le cache en écriture permet à ce qu'une appli mal programmée sollicite le disque autant que si elle était bien programmée, même si au final le contenu du disque a quelques secondes de retard.
 
Voir Mémoire cache pour des infos supplémentaires. ;)


Message édité par e-miel le 05-02-2011 à 05:30:34
Reply

Marsh Posté le 05-02-2011 à 05:49:09    

zoliver a écrit :

Moi je pensais simplement que c'était le cache qui pesait dans la balance des performances, vu qu'on met moins longtemps à remplir une cruche avec un verre qu'avec un dé à coudre.

Aujourd'hui, comme il y a 30 ans, les données sont copiées entre RAM et disque-dur par secteurs (blocs de 512 octets) qui, aujourd'hui, passent pour être des "dés à coudre". La seule différence entre un disque-dur qui a un tampon de 4Mo et un autre avec un tampon de 32Mo, c'est que le premier pourra copier au maximum 4Mo/512=8192 "dés à coudre" consécutifs en une seule opération, alors que le 2ème pourra en copier jusqu'à 32Mo/512=65536 consécutifs en une seule opération.
 
L'intérêt d'un grand tampon n'est donc pas vraiment d'améliorer les performances du disque en lui-même, mais de limiter le nombre d'opérations de copie, nommée "entrée/sortie", puisque chaque "entrée/sortie" nécessite (au moins) une interruption du cycle multitâche, donc ralentit les processus en gaspillant de la ressource CPU.
 
Un ordinateur avec un grand tampon sera donc plus rapide, mais au niveau du CPU qui aura moins de temps gaspillé... encore faut-il que ces "dés à coudre" soient réellement enregistrés de façon consécutive sur le disque. Si ce n'est pas le cas, les disques SATA actuels sont capables d'interpréter en une seule opération une liste de plusieurs commandes, c'est mieux que rien, mais cela n'égale pas les performances obtenues avec des données réellement consécutives.
 
Autre info : depuis le processeur 386 jusqu'à aujourd'hui, les copies de fichiers servant à approvisionner le cache-disque, de même que les copies nécessaires au swap, sont ordonnées par la MMU qui fonctionne par blocs de 4ko. Donc, depuis que cette MMU de 386 est utilisée, les disques-durs sont accédés par blocs de 4ko, donc par blocs de 8 secteurs (puisque les secteurs font toujours 512 octets). Bien que cela n'avait que peu d'importance avec les disques-durs mécaniques, les fabricants de SSD se battent pour que les adresses destinées aux disques basculent de secteurs de 512 octets à des secteurs de 4ko, pour coïncider avec les besoins de l'OS qui sont ceux de la MMU. Cela leur permettrait de câbler les puces de mémoire Flash de façon 8x plus parallèle, et accélérerait donc les performances des SSD... mais pour l'instant, ils n'ont pas encore eu gain de cause.
 
Tout ça pour dire que le problème du "dé à coudre", on est en plein dedans, mais pas au niveau de la taille du tampon, mais de la taille des secteurs.

Reply

Marsh Posté le 06-02-2011 à 04:32:20    

Lorsque vous installez Windows, le swap est configuré par défaut avec un fichier d'échange qui fait à peu près le double de la taille de la RAM. Le swap sous Windows est donc activé sans votre accord préalable.
 
Lorsque vous installez Linux, vous pouvez choisir un fichier d'échange, voire même un partition d'échange, dédiée exclusivement au swap. Si vous le le faite pas, les distributions actuelles vous affichent un avertissement comme quoi vous travaillerez à vos risques et périls, et exigent une confirmation de votre part avant de poursuivre l'installation.
 
Pourquoi recommander à ce point d'utiliser le swap? et d'ailleurs nos chères sociétés (ou communautés dans le cas de Linux) ont-elles raison de nous recommander le swap? Ma réponse est OUI, bien qu'en ce qui me concerne, je règle le swap sur NON.
 
Il faut se mettre à leur place. Windows et Linux sont des outils qui se doivent d'assurer envers et contre tout, et ce en TOUTE circonstance. Imaginez, vous êtes un homme d'affaires (banquier, commercial, courtier... peu importe) et vous êtes sur le point de signer un gros contrat. Pendant que vous finalisez votre affaire avec le client, le hasard veut qu'à ce moment précis vous manquiez de RAM. Vous préférez quoi, retarder la signature du contrat à cause d'un swap (en pestant au passage contre ce foutu PC qui rame à mort) ou manquer une affaire pour une simple raison d'un manque de RAM qui aura fait que l'OS aura tué votre application? Autre exemple: vous êtes administrateur, et pour une raison totalement imprévue, vous devez exécuter ponctuellement des appli plus grosses que prévues, par exemple pour corriger un bug (donc il y a urgence)... même problème... même question... et même réponse: vous préféreriez qu'il y ait du swap plutôt que de risquer de voir vos processus tués par l'OS.
 
Si les OS étaient configurés sans swap, ils auraient une très mauvaise réputation, voire des procès pour cause d'affaires manquées, de serveurs plantés... alors je suis pour que le swap soit recommandé, afin que les personnes qui ne savent pas ce qu'est le swap, n'aient pas de problèmes inattendus ensuite. Par contre, nous qui savons comment tout cela fonctionne (sinon nous ne serions pas sur HardWare.fr ;)) et savons qu'il faut impérativement ne jamais manquer de RAM, autant de RAM "réservée" que de RAM "disponible" (pour le cache-disque, entre autres) donc c'est à nous d'acheter la quantité de RAM adaptée à nos habitudes de travail.
 
Il n'y a pas de "bonne" quantité de RAM, tout dépend des habitudes de travail. Par exemple, pour faire de la bureautique et surfer sur le net sous Windows 7, vous utiliserez environ 2Go de RAM, donc un PC disposant de 4Go serait un bon choix (3Go serait acceptable, mais ne vous permettra aucun surplus d'utilisation). Si vous voulez faire de la retouche de très grosses photo, du montage vidéo, de la CAO, du gros traitement, je conseille au minimum 8Go de RAM. Et si vous voulez exécuter des machines virtuelles, vous pouvez l'envisager "confortablement" (c'est-à-dire avec des RamDisk pour ne pas vous retrouver avec une brouette) à partir de 16Go de RAM, voire au-delà si vous prévoyez d'exécuter plusieurs machines virtuelles en parallèle.
 
La phrase magique comme quoi il faudrait que le fichier d'échange fasse le double de la RAM, c'est uniquement parce qu'on a constaté que les gens ont l'habitude de sous-estimer la quantité de RAM nécessaire au moment de l'achat de leur PC: ils achètent un PC taillé pour la bureautique (4Go) mais vont ensuite faire ponctuellement du montage vidéo lorsqu'il rentreront de vacances. Le swap permet de rendre ces usages ponctuels possibles. Autre exemple: un gars passionné d'informatique s'achète un PC avec 8Go de RAM qu'il croit être une bête de course, mais une fois qu'il se sera habitué à la puissance de son nouveau PC, et qui découvrira d'autres usages (comme les machines virtuelles) il voudra aller plus loin, et là de nouveau, le swap va lui permettre d'aller plus loin. Acheter un PC de 4Go de RAM + swap configuré par défaut, ou un PC de 8Go de RAM avec swap désactivé, vous apportera les mêmes possibilités, mais le PC de 4Go RAM va commencer à légèrement ralentir à partir de 3Go de mémoire "réservée", sérieusement ralentir au-delà de 3.5Go "réservés" et ramera à mort une fois les 4Go franchis, alors que le PC de 8Go restera d'une rapidité imperturbable jusqu'à 6Go "réservés", et ne ralentira qu'au-delà des 7Go "réservés". Donc, en ce qui me concerne, travailler sur une brouette ne m'intéresse pas, encombrer mon disque avec un gros fichier de swap, ça ne m'intéresse pas non plus, donc j'achète beaucoup de RAM et je désactive le swap.

Reply

Marsh Posté le 08-02-2011 à 02:44:41    

 
Ca c'est du sérieux    :sol:    Un grand bravo à tout le monde
 
J'ajouterai donc humblement que le swap peut devenir un véritable tueur de DD, que ce soit un HDD ou un SSD, en lui attribuant une masse de travail parfois si importante...

Message cité 1 fois
Message édité par stef3000 le 08-02-2011 à 20:32:37
Reply

Marsh Posté le 09-02-2011 à 03:40:58    

Les disques (HDD, SSD, CD, clé USB...) ne sont pas conçus pour travailler mais pour stocker. Les mémoires (RAM, mémoire vidéo, mémoires tampon des périphériques...) sont conçues pour travailler. Utilisons chaque élément pour quoi il a été conçu et tout ira bien.
 

stef3000 a écrit :

J'ajouterais donc humblement que le swap peut devenir un véritable tueur de DD, que ce soit un HDD ou un SSD, en lui attribuant une masse de travail parfois si importante...

Tout usage inapproprié est néfaste. Concernant le swap sur un SSD, c'est ridicule, surtout si le projet d'achat du SSD a été justifié par le swap. Un disque (HDD ou SSD) est un périphérique de stockage de fichiers, a été optimisé pour cet usage et doit être utilisé comme tel pour tenir des années, sinon il ne s'exprimera pas et sera très rapidement sur les genoux... ce qui n'empêche que j'ai déjà vu des PC vieux de 10 ans, qui swappaient à mort depuis 10 ans, et toujours avec l'OS et le disque-dur d'origine!  
 
Les disques-durs mécaniques ont des codes de détection d'erreurs, et si une lecture rate, elle est automatiquement recommencée par le firmware du disque, sans même que l'OS en soit informé. Sur un disque-dur neuf, on est en-dessous des 0.001% d'erreurs, mais même avec 1% ou 2% d'erreurs, il faut vraiment commencer à s'inquiéter. En tout cas, l'OS recevra toujours des données correctes, et ne se rend pas compte des tentatives de relecture, car il n'en est pas averti par le disque-dur. Si vous êtes un habitué du swap et que votre disque-dur est usé, vous ne ferez même plus la différence "auditivement" (en écoutant le disque gratter) entre le swap réellement demandé par l'OS et les tentatives de relectures demandées par le firmware du disque.
 
Le swap, si c'est pour vous sauver en situation exceptionnelle, ok, mais si c'est pour faire swapper son disque toute la journée, c'est suicider son disque, SSD ou pas.

Reply

Marsh Posté le 09-02-2011 à 13:10:33    

Oui mais le swap soit on l'active pour tout le temps, soit on l'active pas
Moi je serais d'avis d'activer le swap quand on sent qu'on est limite au niveau de la Ram. Me concernant, j'ai 2 Go de ram, et 1 à 1,2 est utilisé, donc je dois pas spécialement l'activer.
 
Mais je ne comprend pas vraiment le côté "l'OS kill les process si ya pas de swap et que le maximum de ram est atteint". Avant de killer un processus j'imagine qu'il va indiquer quand même que la mémoire est pleine...
 
Sinon bah perso je n'ai pas besoin de swap dans ce cas
 
Mais dans le sujet qui m'occupe je voulais savoir simplement si, pour un disque dur de même taille, si avoir 16, 32 ou + Mo de cache changeait ou non quelque chose, s'il était plus ou moins performant si le cache est plus ou moins grand.
 
Cad que pour un même disque, de même capacité, même modèle, etc tout identique, si avoir 16 Mo de cache par rapport à 64 Mo fait que c'est le 16 Mo qui est le plus performant, ou si c'est le 64 Mo.
 
Jusqu'à présent, l'achat d'un disque n'est conditionné que par la taille et par le prix (le moins cher en terme de prix et en terme de taille/prix.
Mais je pense que prochainement je vais être amené à choisir le disque dur d'après ses performances, et je me demande si dans ce cas je ne dois tenir compte que du taux de transferts dans les tests, ou également au niveau de son cache.
 

Reply

Marsh Posté le 09-02-2011 à 13:42:44    

On a dévié très vite de la problématique du cache du disque dur dans la conversation.
 
Mais ce que je t'ai répondu s'applique, et est vérifiable facilement (tu ne verras aucune différence au niveau des benchs entre les différentes versions d'un disque avec plus ou moins de mémoire cache).

Reply

Marsh Posté le 09-02-2011 à 15:15:23    

Entre 16Mo et 64Mo, tu ne verras aucune différence dans la pratique. Par contre, entre 4Mo et 16Mo, tu risques de voir quelques petites différences, mais pas sur la rapidité du disque lui-même (qui réalisera exactement les même accès physiques) mais sur le nombre de fois que tes processus seront interrompus pour que l'OS gère le disque lors de manipulation de gros fichiers. C'est tout.
 
Si tu veux acheter un nouveau PC dans quelques temps, la quantité de RAM est beaucoup plus importante que toutes les caractéristiques du disque. Un PC avec 8Go de RAM et un disque-dur 5400tr/min, dans de nombreuses situations, sera beaucoup plus rapide qu'un PC avec 2Go de RAM et un SSD.
 
Même si je suis pour les SSD, mais la quantité de RAM est bien plus importante, donc si tu es limité dans ton budget, priorité sur la RAM. ;)

Reply

Marsh Posté le 09-02-2011 à 23:38:29    

Oui de toutes façons je pense mettre à jour mon PC, dans 3-4 ans une nouvelle config mais dans l'immédiat rajouter 2 Go de ram :)
 
Merci pour vos réflexions, s'il fallait résumer c'est que le disque est fait pour stocker, la ram pour travailler, et que la taille du cache n'a aucune importance à partir du moment où elle a plus de 16Mo ^^
 
Actuellement je fonctionne avec un SSD et un disque annexe, mais qui sait si dans 4 ans avec ma nouvelle config un SSD sera bien suffisant (faudra espérer un SSD 250 Go pour moins de 60 euros, mais ca c'est une autre histoire. De toutes façons mes besoins sont pas énormes. A part convertir mes cassettes/CD, écouter de la musique, surfer, bureautique, j'ai pas d'autres besoins donc...

Reply

Marsh Posté le 10-02-2011 à 07:26:31    

zoliver a écrit :

Oui de toutes façons je pense mettre à jour mon PC, dans 3-4 ans une nouvelle config mais dans l'immédiat rajouter 2 Go de ram :)

Si ta carte-mère le permet, c'est effectivement une bonne solution. Juste un truc, au cas où tu ne le saurais pas déjà: un OS 32bits ne peut gérer que 2³²=4Go de mémoire, il faut un OS 64bits pour exploiter la mémoire au-delà de cette barrière, sinon elle sera tronquée aux 4 premiers Go.
 
Lorsque je dis 4Go de mémoire, je veux dire 4Go pour la somme de toutes tes mémoires : RAM + mémoire vidéo + tampons de chaque périphérique... en d'autres termes, un OS 32bits ne saura gérer que 3 ou 3.5Go de RAM, en fonction de la taille de toutes tes autres mémoires. Moi j'ai Windows et Linux en 64bits, donc je n'ai pas ce problème.
 

zoliver a écrit :

Merci pour vos réflexions, s'il fallait résumer c'est que le disque est fait pour stocker, la ram pour travailler

Exactement !
 

zoliver a écrit :

et que la taille du cache n'a aucune importance à partir du moment où elle a plus de 16Mo ^^

Disons plutôt que ce choix appartient au fabricant. Si tu vois un disque (HDD ou SSD) avec seulement 4Mo de mémoire tampon, tu peux te dire que c'est un disque lowcost, et en déduire qu'il y a probablement dû avoir de l'économie aussi dans d'autres composants que tu ne connais pas. Plus le tampon est gros, mieux c'est, mais il y a d'autres caractéristiques plus déterminantes que la taille du tampon.
 

zoliver a écrit :

Actuellement je fonctionne avec un SSD et un disque annexe, mais qui sait si dans 4 ans avec ma nouvelle config un SSD sera bien suffisant (faudra espérer un SSD 250 Go pour moins de 60 euros, mais ca c'est une autre histoire. De toutes façons mes besoins sont pas énormes. A part convertir mes cassettes/CD, écouter de la musique, surfer, bureautique, j'ai pas d'autres besoins donc...

Sage décision: on ne peut pas toujours faire de la récup, et parfois il faut intégralement reconstruire une machine depuis zéro. Si je devais me monter un PC aujourd'hui, je prendrais un SSD en carte PCIe, genre OCZ RezoDrive. Ça vaut clairement le coup, dans le sens où tu n'auras pas le goulot d'étranglement du SATA. Le SATA, c'est bien pour un disque mécanique, voire pour un SSD qui remplace un HDD sans chambouler tout le PC, mais si tu pars depuis zéro, autant faire les choses proprement, et limiter au maximum le nombre d'étapes physiques que doivent traverser les données.

Reply

Marsh Posté le 10-02-2011 à 07:32:38    

e-miel a écrit :

Si ta carte-mère le permet, c'est effectivement une bonne solution. Juste un truc, au cas où tu ne le saurais pas déjà: un OS 32bits ne peut gérer que 2³²=4Go de mémoire, il faut un OS 64bits pour exploiter la mémoire au-delà de cette barrière, sinon elle sera tronquée aux 4 premiers Go.
 
Lorsque je dis 4Go de mémoire, je veux dire 4Go pour la somme de toutes tes mémoires : RAM + mémoire vidéo + tampons de chaque périphérique... en d'autres termes, un OS 32bits ne saura gérer que 3 ou 3.5Go de RAM, en fonction de la taille de toutes tes autres mémoires. Moi j'ai Windows et Linux en 64bits, donc je n'ai pas ce problème.
 


Il y a le PAE pour le 32 bit depuis bien longtemps, donc ce n'est pas totalement vrai :)


---------------
"Phildar t'es vraiment une pute pas finie toi! Et Manu le gros porc arrete de t'marrer!"
Reply

Marsh Posté le 10-02-2011 à 12:00:54    

 
Merci à zoliver d'avoir créé ce topic il est très intéressant
 
@e-miel : Pour booter sur du pci-e il faut une carte mère qui le supporte, ou elles le font toutes maintenant ?
 
J'avais fait il y a 3 ans un essai en SCSI avec un DD cheetah 15k5 U320 et une adaptec 29160 en PCI, j'avais pu installer XP mais tout l'ensemble semblait dépendre de mon DD sata (je dirais un peu comme si l'OS y avait mis command.com) ce qui faisait du lag, je sentais (l'oreille à l'affut) que parfois le cheetah attendait que le sata réponde avant d'envoyer la sauce.   J'avais trouvé ça dommage même si globalement les performances du disque étaient extraordinaires.
Je m'étais renseigné et ma carte mère ne supportait pas de booter sur PCI, cette fonctionnalité avait un nom dont je ne me souvient plus mais c'est peut être à présent dépassé...
 

Reply

Marsh Posté le 10-02-2011 à 12:37:15    

Y'a pas de prérequis particulier à avoir sur ta carte mère pour pouvoir booter sur une carte d'extension (PCI / PCI-X / PCI-Express).
 
In fine ca dépend uniquement du fait que la carte d'extension contienne une bootrom et qu'elle soit en mesure de la passer correctement à ton BIOS.

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed