3 votes

Des erreurs de mémoire ?

Plusieurs de mes applications semblent ne pas pouvoir allouer de mémoire. Cela va de l'absence de boutons ou de barres d'outils dans l'explorateur, à d'autres applications qui ne démarrent pas du tout, etc. WinSCP donne en fait le message d'erreur le plus détaillé :

Erreur de lecture de ListingCommandEdit->Items.Strings : Erreur système. Code : 8. Il n'y a pas assez de mémoire disponible pour traiter cette commande.

Ce dernier texte est le texte d'erreur générique pour l'erreur système ERROR_NOT_ENOUGH_MEMORY . Voici le problème : j'ai beaucoup de mémoire.

L'ouverture de l'Explorateur de processus révèle 650 Mo de RAM libre et 200 Mo supplémentaires dans le cache. Le fichier de pages contient encore 1,5 Go selon l'Explorateur de processus. Le disque contenant le fichier de pages (C :) dispose de 137 Go d'espace libre.

J'ai ensuite pensé aux poignées : peut-être y a-t-il une limite ? J'en ai 30 000, toujours selon PE, mais un test rapide indique que je peux en allouer au moins 30 000 de plus.

Alors... qu'est-ce que je n'ai plus exactement ? Oui, il y a beaucoup de choses en cours, mais si j'ai les ressources disponibles pour en faire plus, je ne m'attends pas à voir des erreurs.

3voto

Thanatos Points 2232

Apparemment, Windows dispose de ce que l'on appelle un "Desktop Heap", qui est par défaut de 3 MiB. Des informations sur des éléments tels que HWND (fenêtres, boutons, texte, cases d'édition, cases à cocher, boutons radio, etc.) sont stockés ici - si vous les épuisez, vous ne pouvez plus créer de fenêtres, et les choses s'arrêtent donc.

Il s'agit d'une limite fixée - il n'y a rien d'utile à étendre le tas. Heureusement, elle est reconfigurable, au prix d'un redémarrage. Il s'agit d'une modification du registre dans HKEY_LOCAL_MACHINE \SYSTEM\CurrentControlSet\Control\Session Gestionnaire \SubSystems\Windows.

Si vous voulez savoir si c'est ce qui vous affecte, obtenez l'information suivante dheapmon de Microsoft, disponible ici :

http://www.microsoft.com/downloads/details.aspx?familyid=5cfc9b74-97aa-4510-b4b9-b2dc98c8ed8b&displaylang=en

Un meilleur article sur la façon de le gérer :

http://blogs.msdn.com/b/alejacma/archive/2008/07/29/how-to-use-dheapmon-exe-to-troubleshoot-desktop-heap-issues.aspx

Et enfin, comment modifier cette clé de registre pour que tout fonctionne :

http://blogs.msdn.com/b/ntdebugging/archive/2007/01/04/desktop-heap-overview.aspx

1voto

alastairs Points 3045

Avez-vous effectué un test de mémoire ? test de mémoire est l'un de ces services.

Il se peut que vous obteniez des erreurs qui n'apparaissent pas lorsque vous recherchez de l'espace libre. L'application pourrait mieux les signaler, mais il se peut que le code ne les distingue pas.

Il demanderait X octets et s'il n'obtenait pas la quantité requise, il supposerait qu'il n'y en a pas assez plutôt qu'il y a un problème avec la mémoire.

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