Atsortingbution maximale de memory pour le kernel linux 32 bits

Je lisais cet article qui parle de la quantité maximale de RAM dédiée à l'utilisation du kernel dans les windows 32 bits est de 2 Go, même lorsque la quantité totale de RAM est> 4 Go.

http://www.brianmadden.com/blogs/brianmadden/archive/2004/02/19/the-4gb-windows-memory-limit-what-does-it-really-mean.aspx \

  1. Est-ce le même pour les environnements linux 32 bits tels que l'ubuntu 10.04 à 32 bits? IE est l'allocation maximale du kernel 2 Go RAM même si la memory principale totale> 4 Go?

  2. Si vous augmentez la quantité totale de memory à 64 Go de ram en recompilant le kernel avec l'option PAE activée, quelle est la quantité maximale de ram que vous pouvez consacrer à l'utilisation du kernel? Est-ce encore 2 Go? Ou pouvez-vous l'augmenter?

3 Solutions collect form web for “Atsortingbution maximale de memory pour le kernel linux 32 bits”

Les deux kernelx divisent l'espace d'adresse virtuelle en une partie user et une partie kernel. La partie du kernel est partagée entre tous les process du système et, par conséquent, le kernel est limité à cette memory directement adressable. Chaque process user dans le système a sa propre partie user de l'espace d'adressage. Classiquement, cette division a été réalisée au milieu, donnant à chaque moitié 2gb. Windows peut être orienté pour déplacer la division vers 3gb pour l'user et 1gb pour le kernel avec le commutateur / 3gb boot.ini. Le kernel linux est plutôt configurable au moment de la construction, et la dernière fois que j'ai vérifié, les kernelx Ubuntu se forment avec la division 3: 1.

PAE permet de traiter 64 gb de RAM physique, mais toute table de page donnée est toujours limitée à 4gb. Parce qu'il n'y a qu'une seule partie du kernel de cet espace d'adressage partagé entre tous les process sur le système, il est limité à 1 ou 2 Go de RAM directement adressable peu importe. Une memory physique supplémentaire peut être utilisée, mais elle doit être partiellement mappée dans l'espace d'adresse virtuelle à un moment donné, et les mappages ont changé au besoin. Étant donné que chaque process possède un espace d'adresse d'user distinct, vous pouvez avoir, par exemple, 5 process différents qui possèdent chacun 2gb de leur propre memory qui correspond à différentes parties de 16gb de RAM physique que vous avez installées et que le kernel utilise 2gb.

Notez que le cache du système de files n'a pas à garder les pages cartographiées tout le time, de sorte qu'il peut utiliser beaucoup plus de ce bélier physique, et le kernel mène automatiquement les bits de celui-ci au besoin, puis le décompose afin qu'il puisse mapper d'autres pages. Cette ruse permet au kernel d'utiliser beaucoup de gb de memory pour le cache et de quelques centaines de mb pour d'autres utilisations, même si le kernel n'a qu'un espace d'adressage virtuel de 1 Go.

Il convient également de noter que, dans les versions récentes de Windows, Microsoft a institué diverses limitations de licences de produits artificiels. Le Windows 7 Pro auquel je suis coincé sur mon PC au travail refuse d'utiliser les adresses de RAM physique> 4gb, même si j'active le PAE, ce qui ne permet d'utiliser que 3.4 de la gypothèque de 4,0 gb installée, car un morceau de ram est déplacé sur la marque 4gb pour laisser place à des choses comme le RAM video à être situé sous 4gb.

Habituellement, la raison pour laquelle Windows ne peut pas allouer toute la memory est que certains de cet espace memory sont utilisés pour Video Ram.

Quant à votre question sur PAE, je ne suis pas certaine. Si vous aviez 64GB de ram et PAE, vous pourriez probablement utiliser plus de 4 concerts au total, mais je pense que chaque programme individuel serait limité à 4 gigs ram.

Ce problème provient de l'espace d'adresse fourni par un entier de 32 bits. 2 ^ 32 fournit 4294967295 valeurs, donc 4 gig ram limite.

Selon ce text , Linux se divise en 3G, donc vous êtes censé avoir access à la 3G de RAM à la fois, comme vous l'avez fait avec Windows avec le commutateur / 3 Go appliqué au boot.ini .

Au less, en théorie. En raison d'une raison inconnue pour moi, un test a tout simplement prouvé que je ne peux utiliser qu'une partie de cette memory:

08048000-0804b000 data? 0804b000-081ce000 heap 65e00000-b7395000 mmap-ed heap b7395000-b73ac000 mmap-ed code bf93f000-bf960000 stack 

Pourquoi je ne pouvais pas malloc() la gamme de 081ce000-65e00000 , je ne sais pas.

  • Comment monter une partition LVM sur Ubuntu?
  • Comment puis-je monter sshfs au démarrage?
  • vanilla ubuntu-vm-builder sur i7 aborts aborts (avec PAE?)
  • Comment puis-je installer mon linux installé sur un autre matériel aussi?
  • Défaillance de démarrage avec root sur MD (RAID1) + LVM: timing de l'événement udev
  • Ne pas travailler ssh dans un VM Centos [fermé]
  • Utilisation de la version plus récente de php sur le server
  • La page de téléchargement de file à venir ne montre pas les dossiers montés
  • HTTP2 activé mais non pris en charge
  • Comment exécuter Script Groovy sur Ubuntu Start?
  • Comment vérifier pourquoi la command de redémarrage a échoué et la machine a été arrêtée à la place?
  • Les astuces du serveur de linux et windows, tels que ubuntu, centos, apache, nginx, debian et des sujets de r├ęseau.