GNU/Linux >> Tutoriels Linux >  >> Linux

Mémoire maximale utilisable par un système RHEL 6 32 bits

Eh bien, je ne m'attends pas à une réponse concise que celle disponible ici.

Ce que je comprends à propos du système d'exploitation 32 bits, c'est que l'adresse est exprimée en 32 bits, donc au plus le système d'exploitation pourrait utiliser 2^32 =4 Go d'espace mémoire

Le plus que le processus peut adresser est de 4 Go. Vous confondez potentiellement la mémoire avec espace d'adressage . Un processus peut avoir plus de mémoire que d'espace d'adressage. C'est parfaitement légal et assez courant dans le traitement vidéo et d'autres applications gourmandes en mémoire. Un processus peut se voir allouer des dizaines de Go de mémoire et l'échanger à volonté dans et hors de l'espace d'adressage. Seuls 2 Go peuvent aller dans l'utilisateur espace d'adressage à la fois.

Si vous avez un garage pour quatre voitures chez vous, vous pouvez toujours posséder cinquante voitures. Vous ne pouvez tout simplement pas tous les garder dans votre garage. Vous devez avoir un stockage auxiliaire ailleurs pour stocker au moins 46 d'entre eux; quelles voitures vous gardez dans votre garage et lesquelles vous gardez dans le parking en bas de la rue, c'est à vous de décider.

Cela signifie-t-il n'importe quel système d'exploitation 32 bits, que ce soit Windows ou Unix, si la machine a un fichier RAM + page sur le disque dur de plus de 4 Go, par exemple 8 Go de RAM et un fichier de page 20 Go, il n'y aura jamais de "mémoire épuisée" ?

Absolument ça ne veut pas dire ça. Un seul processus pourrait utiliser plus de mémoire que cela ! Encore une fois, la quantité de mémoire utilisée par un processus est presque totalement indépendante de la quantité d'espace d'adressage virtuel utilisé par un processus. Tout comme le nombre de voitures que vous gardez dans votre garage n'a aucun rapport avec le nombre de voitures que vous possédez.

De plus, deux processus peuvent partager des pages de mémoire non privées . Si vingt processus chargent tous la même DLL, les processus partagent tous les pages mémoire pour ce code. Ils ne partagent pas l'espace d'adressage de la mémoire virtuelle , ils partagent la mémoire .

Ce que je veux dire, au cas où ce ne serait pas clair, c'est que vous devriez arrêter de penser que la mémoire et l'espace d'adressage sont la même chose, car ce ne sont pas du tout la même chose.

Si cette machine avec système d'exploitation 32 bits dispose de 2 Go de RAM et de 2 Go de fichier d'échange, l'augmentation de la taille du fichier d'échange n'améliorera pas les performances. Est-ce vrai?

Vous avez cinquante voitures et un garage pour quatre voitures, et un parking de 100 voitures dans la rue. Vous augmentez la taille du parking à 200 places. Est-ce que l'une de vos voitures accélère parce que vous avez maintenant 150 places de stationnement supplémentaires au lieu de 50 places de stationnement supplémentaires ?


La réponse de Ramesh est complètement fausse. Un processus ne peut pas avoir plus de mémoire que d'espace d'adressage, et simplement parce qu'il ne peut pas l'adresser !! Pour utiliser plus de 4 Go, le processus doit y accéder par l'adresse, comme en utilisant des pointeurs en C/C++. Si vous êtes censé avoir, par exemple, 10 Go de RAM, comment pouvez-vous dire au processus d'accéder aux données situées à 5 Go, si vos pointeurs, en 32 bits, peuvent atteindre au plus 4 Go ? C'est impossible. Toute son explication est liée au système d'exploitation. Il peut activer certains blocs de 4 Go au maximum, à partir d'un pool de, disons, 64 Go. Il y a donc toujours simultanément 4 Go maximum, et tout processus peut accéder au maximum à 4 Go. Ensuite, pour un processus différent, le responsable de la sécurité peut activer un bloc différent de 4 Go à partir du pool, mais le processus sera à nouveau limité à 4 Go. En fait, même si un pointeur 32 bits peut adresser jusqu'à 4 Go, la limite pour un 32 -processus bit est de 3 Go.


Linux
  1. Configuration de l'interface réseau avec une adresse IP statique sur RHEL 7

  2. Comment changer un niveau d'exécution sur le système RHEL 7 Linux

  3. dmidecode :obtenir des informations sur le matériel système sous Linux

  4. Vérifiez la charge du système sous Linux

  5. Comment trouver le nombre de sockets CPU sur un système CentOS/RHEL

Comment configurer l'adresse IP dans CentOS 7 / RHEL 7 et CentOS 6 / RHEL 6

Comment mettre à niveau de RHEL 7 vers RHEL 8

Gestion du swap dans le système Linux moderne

Comment vérifier et réparer un système de fichiers dans RHEL Linux

Comment configurer l'adresse IP statique du réseau sur RHEL/CentOS 8/7

Comment configurer une adresse IP statique sur le système Linux