L'ordinateur n'utilise pas plus de 4 de mes 8 Go de RAM…? (Ordinateur 64 bits)

17

Récemment, pour pérenniser mon ordinateur, j'ai ajouté au-dessus de mes 4 Go de mémoire d'origine. J'ai porté la mémoire totale à 8 Go, et je n'ai aucun changement notable de vitesse, même quand cela devrait. Je suis allé voir le Gestionnaire des tâches et j'ai vu que mon ordinateur ne dépasserait pas 4 Go de mémoire utilisée, même avec Chrome et Firefox ouverts avec 20 onglets chacun.

Après avoir fait des recherches, tout ce que chacun avait suggéré de faire était de vérifier la quantité de mémoire utilisable. Curieusement, il dit que j'ai 8 Go de mémoire et 7,74 Go est utilisable.

Les spécifications de mon HP Pavilion g7-1075dx se trouvent ici. Il s'agit d'un ordinateur portable avec Windows 7 Home Premium 64 bits avec AMD Phenom II.

Ma question principale est: avec mon ordinateur 64 bits, pourquoi mon ordinateur n'utilise-t-il pas plus de 4 Go de mémoire, même si plus de 7 sont utilisables?

EDIT: si cela aide, Resource Monitor décrit toutes les autres RAM comme "Standby"

mattycfp
la source
1
Comment pouvez-vous voir qu'il n'utilise pas plus de 4 Go? Avez-vous essayé mes autres programmes pour tester ou utiliser la mémoire? Chrome et Firefox ne sont pas si exigeants en
termes de
9
Jusqu'à présent, personne n'a mentionné que plus de RAM ne rend pas un ordinateur plus rapide en soi. La seule fois où vous verrez un ralentissement notable, c'est si votre charge de travail consomme tellement de RAM que Windows a besoin de paginer continuellement sur le disque - dans ce cas, ajouter plus de RAM peut certainement accélérer les choses. Mais 98% des gens ne font pas le genre de choses qui nécessitent> 4 Go de RAM, et par conséquent, ne bénéficieront jamais d'un avantage tangible en ayant toute cette RAM supplémentaire.
misha256
1
@mattycfp Il y a une autre possibilité que je connais qui peut limiter l'utilisation de la RAM Windows. Est-il possible que vous, quelqu'un d'autre ou un logiciel limite la consommation de RAM? Jetez un œil à cet article et suivez les instructions: helpdeskgeek.com/windows-7/…
misha256
1
Firefox a une limite de 2 Go sur tous les onglets / processus, Chrome pourrait aussi. Ceci s'ajoute à la limite normale par processus.
JamesRyan
6
Ouvrir Firefox et Chrome avec 20 onglets chacun n'est certainement pas suffisant. J'ai Firefox ouvert avec 157 onglets, il ne consomme même pas 1 Go de RAM. Vérifiez lors de l'exécution des jeux. La réponse de Jamie Hanrahan est très bonne et détaillée. Pour plus d'informations, lisez le billet de blog de Mark Russinovich Pousser les limites de Windows. lien .
sbecker

Réponses:

27

si cela peut aider, Resource Monitor décrit toutes les autres RAM comme "Veille"

La RAM "en veille" est en cours d'utilisation. Il est utilisé comme cache de pages (il contient les pages récemment perdues de tous les ensembles de travail de processus; c'est-à-dire que les erreurs de page peuvent être résolues sans aller sur le disque) et également pour le cache de fichiers proactif par SuperFetch.

Il est considéré comme "disponible" car les pages de secours n'ont pas besoin d'être écrites sur le disque avant de pouvoir être affectées à une autre utilisation. Tels que lorsqu'un processus frappe un défaut de page qui ne nécessite la lecture à partir du disque, nouvelle page physique (s) doivent être alloués à ce processus, et le cas échéant ceux - ci peuvent être pris dans la liste d' attente. (Ce n'est pas le premier choix pour trouver des pages à cet effet, ce serait la liste gratuite puis la page zéro.)

En d'autres termes, votre système fonctionne comme il se doit.

Vous pouvez forcer votre système à mettre plus de RAM dans l'état "en cours d'utilisation" facilement avec l'outil de ligne de commande testlimit, l'un des outils utilisés dans les expériences dans Windows Internals . Il ne fait pas partie des outils sysinternals habituels mais y est associé; trouver ici sur le site Sysinternals. Le téléchargement est un fichier zip qui contient deux versions, testlimit.exe et testlimit64.exe. Les deux sont liés aux grandes adresses, la version 32 bits pourra donc allouer jusqu'à 3 Gio sur une machine 32 bits démarrée avec / 3 Go, jusqu'à 4 Gio sur une machine 64 bits.

c:\> testlimit -? donne de l'aide.

c:\> testlimit -d 4 -c 512tentera d'allouer 2 Gio d'espace d'adressage virtuel privé de processus dans 512 allocations de 4 Mio chacune. Cela devrait fonctionner correctement sur une machine 64 bits. Sur une machine 32 bits non démarrée avec / 3 Go (la plupart ne le sont pas), il peut y avoir une erreur un peu plus tôt b / c, il y a déjà quelques Mio de choses dans le processus (comme le programme lui-même, toutes les DLL, etc.), donc il n'y a pas tout à fait 2 Gio disponibles pour le programme à allouer.

Dans les deux cas, il y aura une réduction de la RAM «disponible» et une augmentation de la RAM «en cours d'utilisation», mais pas nécessairement 2 Gio car il n'y a aucune garantie que le système d'exploitation laissera les 2 Gio dans le jeu de travail privé du processus. Même si c'est le cas à court terme, vous pouvez voir l'ensemble de travail du processus diminuer plus tard, car le système d'exploitation décide "hm, vous ne faites rien avec, les autres processus en ont plus besoin" et les pages.

Augmentez trop la taille des «morceaux» d'allocation, en réduisant le nombre de morceaux en conséquence, et cela échouera probablement plus tôt car chaque allocation doit être virtuellement contiguë. Par exemple, essayez de trouver sept morceaux de 512 Mo dans un espace d'adressage de 4 Gio et vous échouerez probablement.

Si vous utilisez l'option l (eak) au lieu de d (irty), le programme allouera l'espace virtuel mais ne le référencera jamais. Cela n'entraînera pas de diminution appréciable de la RAM "disponible".

(L'option d (irty) tire son nom du "bit de page sale" dans l'entrée de table de page x86 / x64, qui est définie lorsque la page virtuelle correspondante est accessible avec un opérande de style "modifier", ce qui signifie que le contenu de la page a Ceci est une indication de Windows que, si la page doit être supprimée du jeu de processus, son contenu doit être enregistré quelque part avant que la page puisse être utilisée pour autre chose. Les pages avec le bit "sale" vont à la "liste des pages modifiées" immédiatement après l'expulsion; à partir de là, Windows les écrit dans leurs magasins de sauvegarde respectifs.)

Vous aurez besoin d'avoir suffisamment de "commit" disponible pour que ces tests fonctionnent comme décrit ci-dessus (même pour l'option l (eak), même si cette option n'utilise pas une quantité appréciable de RAM). Plus précisément, votre «limite de validation» doit être d'au moins 2 Gio (ou quelle que soit la quantité que vous allouez) supérieure à la «charge de validation» avant de commencer votre test. Notez que cela s'applique même si vous utilisez l'option l (eak), pas seulement d (irty). Si vous rencontrez cette limite, vous verrez les fenêtres contextuelles «le système manque de mémoire» ou similaires. Le remède, bien sûr, consiste à ajouter plus de RAM et / ou à augmenter les paramètres de votre fichier d'échange.

Jamie Hanrahan
la source
15

Windows peut en fait être configuré pour limiter l'utilisation de la RAM. Je ne sais pas comment ni qui aurait configuré ce paramètre sur votre ordinateur portable, mais vous devriez vérifier:

Réglage Max Ram

Cet article contient plus de détails, mais il est facile d'accéder à la boîte de dialogue ci-dessus:

  1. Cliquez sur l'icône Démarrer et tapez msconfig.exedans la zone de recherche

    comment lancer msconfig

  2. Lancez msconfig.exe, cliquez sur l' Bootonglet, puis cliquez sur le Advanced Options...bouton, et vous êtes dans:

    Boîte de dialogue des paramètres de démarrage msconfig

  3. Entrez une valeur raisonnable, par exemple 8192 pour 8 Go de RAM, ou décochez Maximum memorycomplètement la case qui devrait permettre à Windows d'utiliser toute la RAM dont vous disposez. J'essaierais certainement les DEUX options.

    réglage maximum du vérin

misha256
la source
@ misha256 - Profondément troublé par une réponse qui avait très peu de contenu à l'origine, et oui, si quelqu'un d'autre a soumis l'une des réponses, je n'aurais même pas réfléchi à deux fois aux réponses (sauf peut-être juger leur utilité un peu plus sévère).
Ramhound
@ misha256 si tel était le problème, OP ne verrait pas environ 4 Go en service et environ 4 Go en veille. La RAM qui est exclue par cette option n'apparaît pas en "veille"; OP ne verrait pas non plus "8 Go de mémoire et 7,74 Go sont utilisables". (les 256 Mo non "utilisables" sont attendus à cause par exemple de la carte vidéo).
Jamie Hanrahan
10

Vous pouvez utiliser SysInternals RAMMap pour voir exactement ce que le PC fait avec votre RAM physique . D'autres outils comme le Gestionnaire des tâches ou l'Explorateur de processus se concentrent principalement sur la mémoire virtuelle et ne sont pas les meilleurs outils pour cette situation.

Dans l'onglet "Utiliser le nombre", vous pouvez constater que de grandes portions ne sont pas utilisées alors que vous n'avez pas ouvert de nombreuses applications.

SysInternals RAMMap

Cela ne signifie pas que votre PC restera dans cet état. Ouvrez simplement quelques programmes et la mémoire sera utilisée.

Thomas Weller
la source
Le terme «RAM virtuelle» ne doit pas être utilisé. De plus, je ne dirais pas que ces autres outils se concentrent principalement sur la mémoire virtuelle - ils ont beaucoup de compteurs disponibles qui indiquent l'utilisation de la mémoire physique.
Jamie Hanrahan
5

Citant un très bon article sur le sujet:

Plus de mémoire n'augmente pas réellement la vitesse de traitement [d'un ordinateur]. Seul un processeur plus rapide peut le faire.

Et d'après mon expérience, c'est absolument vrai, en général. À moins que vous exécutiez plusieurs programmes en même temps et que ces programmes aient des besoins importants en RAM, vous ne verrez pratiquement aucun avantage réel à avoir plus de 4 Go de RAM.

Les gens ne semblent pas se rendre compte que 4 Go, c'est beaucoup de RAM. Faire utiliser Windows plus que cela demande des efforts. Vous devrez ouvrir de nombreuses applications différentes et, dans ces applications, ouvrir des fichiers volumineux. Ajoutez quelques onglets de vidéos YouTube et vous pourriez commencer à voir> 4 Go d'utilisation.

misha256
la source
2
@mattycfp Je viens d'ouvrir 16 fenêtres sur ma machine de 4 Go, y compris Internet Explorer, Firefox, Word, Excel, Outlook, Skype, Visual Studio 2010 (un porc RAM connu), Photoshop, Media Player, VLC, MPC-HC, ainsi que d'autres applications aléatoires, et je bascule entre elles pour faire des choses, charger des documents, lire des vidéos, tout, et mon utilisation réelle de la RAM est de 2,2 Go ET la machine est RAPIDE comme jamais. Voir, 4 Go fait tout cela facilement ;-)
misha256
3
@mattycfp 120 Windows de FF? Vous êtes plus susceptible de maximiser votre processeur que la RAM, surtout sur un ordinateur portable. N'oubliez pas non plus que FF est une application 32 bits, et que plusieurs fenêtres FF PARTAGENT en fait un seul processus 32 bits, donc FF est en fait assez limité, il ne peut utiliser que 2 Go de votre total de 8 Go. C'est pourquoi vous devez exécuter de nombreuses applications différentes en même temps pour tester la façon dont Windows utilise votre RAM, pas seulement 120 fenêtres FF.
misha256
4
@ misha256 Vous allez voir des gains de performance si votre système est constamment swapping mémoire. À mesure que la pression de la mémoire augmente, la pagination augmente et le système ralentit. Ce n'est pas l' ajout de mémoire vous fera aller plus vite, mais il va vous empêcher de ralentir, surtout si le logiciel utilisé suppose une certaine quantité d'échange dans ses exigences du système. Cet article ne semblait pas mentionner grand-chose sur la pagination. La pagination est ce qui vous ralentit.
phyrfox
4
@ misha256 J'ai IRC, Spotify, Notepad ++, Chrome et Task Manager ouverts et j'utilise 3,02 Go sur mes 4 Go au total :( J'ouvre 3 instances VS2013 (que j'ai tendance à faire au travail) et cela me maximise. C'est un peu plus facile d'atteindre la limite de 4 Go que vous ne le pensez, mais nécessite pratiquement un utilisateur
expérimenté
1
@ misha256 Correction: FF est sensible aux grandes adresses et peut adresser jusqu'à 3 Go dans un processus 32 bits. La version 64 bits de FF (actuellement en version bêta pour Windows) peut évidemment aborder bien plus. Je pense également que vous généralisez un peu trop en disant qu'il est difficile «d'utiliser» (ensemble de travail privé résident) plus de 4 Go de RAM; cela dépend vraiment beaucoup de ce que vous faites et de ce que vous gardez ouvert. Mon utilisation de base dépasse déjà cela.
Bob
5

Windows fait des choses intelligentes telles que la mémoire de pagination. Il se pourrait qu'il considère la plupart des tâches que vous effectuez comme inutiles et décide de vider une charge de choses dans le fichier d'échange, ce qui donne l'impression qu'il le fait juste pour éviter d'utiliser toute votre RAM. Vous pouvez tester cette théorie en désactivant la pagination, bien que ce ne soit pas une chose que vous devriez avoir configurée en permanence. Il existe de nombreux tutoriels sur Internet pour ce faire. L'une des choses qu'il fait (même sur mes machines de 24 Go et 64 Go) est de rendre les règles de pagination beaucoup plus strictes lorsqu'il atteint une consommation d'environ 50%, 80% et 90% (ces chiffres sont approximatifs). J'ai remarqué à chacune de ces étapes qu'une charge de trucs était déversée dans le fichier d'échange.

Une chose amusante à faire pourrait être quelque chose comme ceci:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define PAGE_SZ (1<<12)

int main() {
    int i;
    int gb = 2; // memory to consume in GB

    for (i = 0; i < ((unsigned long)gb<<30)/PAGE_SZ ; ++i) {
        void *m = malloc(PAGE_SZ);
        if (!m)
            break;
        memset(m, 0, 1);
    }
    printf("allocated %lu MB\n", ((unsigned long)i*PAGE_SZ)>>20);
    getchar();
    return 0;
}

C'est du code C. Obtenez GCC ou un compilateur, faites-vous un exe et regardez votre consommation de mémoire augmenter. Si vous souhaitez consommer plus de 2 Go de mémoire, vous devrez compiler et exécuter en tant que processus 64 bits. Si vous aimez ce genre de choses, cela pourrait être une expérience intéressante, si rien d'autre :)

Edit: Je voulais juste noter que le programme ne mourra pas avec ça. Je l'ai édité à partir d'un code précédent car je ne suis pas sûr qu'un autre code aurait fonctionné (la mémoire serait paginée, ce qui entraînerait l'absence de mémoire, lol). Le nouveau code contient une ligne int gb = 2; // memory to consume in GB- changer le 2 ajustera la quantité de mémoire que le programme devrait consommer, vous pouvez donc le configurer pour utiliser autant que vous le souhaitez. Si vous le définissez sur un niveau supérieur à celui de votre système, il se bloquera probablement (non testé, donc à utiliser avec prudence)

XtrmJosh
la source
J'aimerais pouvoir le compiler, mais mon Internet continue de corrompre chaque téléchargement que j'essaie: U
mattycfp
5
@mattycfp Vous ne pouvez donc pas utiliser> 4 Go de RAM dans votre système d'exploitation et tous vos téléchargements continuent de se corrompre? Il est temps (a) D' ESSUYER le disque dur et de faire une nouvelle installation du système d'exploitation, ou (b) de jeter l'ordinateur portable dans la poubelle et d'en obtenir déjà un correctement.
misha256
1
Le programme proposé alloue et "touche" 2 Go de mémoire virtuelle, une page à la fois, ce qui entraînera la défaillance de chaque page dans la RAM immédiatement après son allocation. Mais cela ne garantit pas que Windows conservera tout cela dans la RAM en même temps. Étant donné que le programme n'accède pas de manière répétée à tous les vm, les pages allouées en premier peuvent être sujettes à une pagination. Vous pouvez obtenir le même effet que ce programme avec l'outil Windows Internals "testlimit", option -d.
Jamie Hanrahan
@mattycfp si c'est le cas, vous voudrez peut-être voir que la RAM n'est pas en cause ... Est-ce que chaque fichier que vous téléchargez est corrompu d'une manière ou d'une autre? Il y a aussi parfois des problèmes avec des bâtons incompatibles, vous devriez donc vérifier le manuel de la carte mère et confirmer que votre RAM est organisée selon ces instructions (les emplacements seront numérotés 1 & 2 ou 1-4, et généralement 1 & 3 doivent être couplés avec le même "type" ou "marque et modèle" de RAM, comme le feront 2 et 4). & Oui, ce programme devrait utiliser jusqu'à 2 Go, qui peut être modifié en changeant la ligne int gb = 2; // memory to consume in GB- il suffit de changer le 2.
XtrmJosh
Pourquoi avez-vous déclaré que gb était de type int alors que la seule utilisation le convertissait en non signé long? Vous traitez également i de la même manière et faites une comparaison mitigée entre l'int et le cast-to unsigned. Alors, faites que je ne signe plus longtemps aussi.
JDługosz
1

Utilisez-vous un programme 32 bits pour tester la vitesse d'exécution de l'ordinateur? Si c'est le cas, notez que les adresses 32 bits ne peuvent pointer que vers 4 Go de RAM, même si vous avez plus de RAM présente. Vous devrez répéter le test à l'aide d'un programme 64 bits et vérifier sa vitesse avec 4 Go de RAM présents, et à nouveau avec 8 Go de RAM présents, si vous voulez des résultats utiles. En outre, il devra s'agir d'un programme 64 bits qui peut utiliser plus de 4 Go de mémoire pour s'exécuter plus rapidement - pas tous. Pour savoir si un programme est en 32 bits, démarrez le programme et laissez-le fonctionner, puis démarrez le Gestionnaire des tâches de Windows, cliquez sur Processus et faites défiler vers le bas jusqu'à ce que vous trouviez le programme qui vous intéresse. Si le nom du programme dans la colonne Nom de l'image est suivi d'un espace, puis * 32, alors c'est un programme 32 bits.

milesrf
la source
si vous exécutez plusieurs programmes 32 bits, leur utilisation totale de RAM peut facilement atteindre 8 Go.
Jamie Hanrahan
0

Obtenez l' explorateur de processus (procexp) de Sysinternals . Il dispose d'un graphique de ressources et peut afficher l'utilisation de la mémoire par processus, bien mieux que la vue du processus de stock.

Vous pouvez regarder l'utilisation physique du RAM par rapport à l'utilisation de l'espace virtuel, pour voir si vous n'utilisez tout simplement pas tout ou si vous semblez avoir besoin de plus mais limitez l'utilisation physique.

La plupart des programmes ordinaires utilisent une taille de jeu de travail différente qui maintiendra la demande faible. Si un programme alloue une tonne de mémoire, il ne l' utilise pas vraiment en même temps ...

Windows déplacera agressivement les pages de votre programme vers une liste où elles sont disponibles, mais si une erreur de page se produit, elle sera retirée de la liste sans avoir à la charger depuis le fichier d'échange. Le mode veille pourrait inclure ces derniers. Différents outils étiquettent différents ensembles de différentes manières.

Vous pouvez essayer de désactiver le fichier d'échange, au moins pour ce test. Cela entraînera une réelle utilisation de la mémoire de données. Bien que procexp soit suffisant pour le voir clairement.

JDługosz
la source