1 votes

Linux 2.6 32 bits + BIGMEM versus Linux 2.6 64 bits ?

On m'a dit que Linux 32 bits avec un noyau bigmem (quand le système a >=4GB de RAM) va sont plus performants que Linux 64 bits.

J'aimerais définir " sont plus performants que " pour vous, mais malheureusement la personne qui m'a dit cela n'a pas élaboré/justifié d'où ce post !

Y a-t-il une quelconque vérité dans tout cela ? Dans quelles circonstances cela serait-il vrai ?

Gracias

3voto

SteveCl Points 1655

Dans les processeurs x86, le code 64 bits est utile de deux façons :

  • les adresses plus grandes vous permettent d'accéder directement à davantage de mémoire (uniquement pertinent pour les processus qui gèrent d'énormes ensembles de données).
  • Un plus grand nombre de registres pourrait permettre au compilateur de réduire les accès à la mémoire pour les variables serrées (légère optimisation supplémentaire, non perceptible sauf dans les boucles serrées d'un code hautement optimisé).

et a les contre suivants :

  • des registres plus nombreux et plus grands signifient plus d'état à sauvegarder/restaurer à chaque changement de contexte.
  • Des pointeurs plus grands signifient une plus grande utilisation de la RAM et des structures plus grandes, plus de données à lire/écrire.

Par conséquent, dans de nombreux cas, le meilleur des deux mondes est un système d'exploitation 64 bits et des processus 32 bits :

  • un système d'exploitation 64 bits peut gérer beaucoup de RAM, à la fois pour contenir de nombreux processus et pour des caches importants
  • Les applications 32 bits sont limitées à 2 ou 3 Go de RAM pour chaque processus, mais c'est suffisant pour la grande majorité des tâches.
  • quel que soit l'endroit de l'espace 64 bits où se trouve la RAM d'une tâche 32 bits, celle-ci n'aura besoin que de pointeurs 32 bits pour accéder à sa mémoire, de sorte que tous les pointeurs et toutes les structures de données sont toujours de la plus petite variété 32 bits.
  • une tâche 32 bits (processus ou thread) ne doit sauvegarder/restaurer que les quelques petits registres disponibles dans le x86 32 bits, l'ordonnanceur Linux 64 bits gère bien ce cas.

mais, dans l'ensemble, l'avantage est rarement perceptible (je suppose qu'il est bien inférieur à 5 %), alors optez pour le 64 bits partout et simplifiez tout.

Le seul cas où j'opterais définitivement pour une configuration 32-on-64 est celui d'une isolation de type OpenVZ. De cette façon, chaque propriétaire de partition pourrait tirer le meilleur parti de la RAM limitée à laquelle il a accès.

Pourtant, je ne connais pas cualquier avantage du PAE par rapport aux pointeurs 64 bits (même pas les petits pointeurs, puisque chaque pointeur PAE a un décalage de 32 bits et un "début" supplémentaire (jusqu'à 32 bits) (vous vous souvenez de la mémoire segmentée du 8086 ? quel gâchis !)

2voto

David Points 344

PAE nuit à la performance. Le seul gain possible est que les pointeurs font la moitié de la taille, mais il faut maintenant gérer l'échange de pages de mémoire.

0voto

Todd Price Points 703

En plus d'être moins gourmand en registres, x86_64 vous offre des opérations en virgule flottante plus judicieuses. Elle garantit également que vos binaires bénéficient de meilleures optimisations, car le compilateur n'a jamais eu besoin d'émettre des opcodes rétrocompatibles. Si vous exécutez quelque chose de contraignant pour le processeur, c'est une grande victoire.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X