IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MS SQL Server Discussion :

[SQL Server 2000 ENT] WARNING: Failed to reserve contiguous memory of Size= 6422528


Sujet :

MS SQL Server

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2002
    Messages : 18
    Par défaut [SQL Server 2000 ENT] WARNING: Failed to reserve contiguous memory of Size= 6422528
    Bonjour,

    Un beau problème à vous soummettre...

    Environnement:
    - SQL Server 2000 ent. sp4 en cluster actif/passif
    - Windows 2003 ent. editon SP1
    - 4 CPU (hyperthreading capable)
    - 12 gig de RAM
    - AWE enabled
    - 9.7 gig réservés à SQL Server
    - sp_configure (résumé) :
    allow updates 0 1 0 0
    awe enabled 0 1 1 1
    default full-text language 0 2147483647 1033 1033
    max degree of parallelism 0 32 0 0
    max server memory (MB) 4 2147483647 9728 9728
    max worker threads 32 32767 255 255
    min memory per query (KB) 512 2147483647 1024 1024
    min server memory (MB) 0 2147483647 9728 9728
    network packet size (B) 512 32767 4096 4096
    priority boost 0 1 0 0
    set working set size 0 1 0 0
    show advanced options 0 1 1 1
    user connections 0 32767 0 0


    Donc, le problème. De façon ponctuelle, entre 6 et 8 jours l'erreur suivant se produit :
    2007-07-04 08:12:55.88 spid86 WARNING: Failed to reserve contiguous memory of Size= 6422528.
    2007-07-04 08:12:56.25 spid86 Buffer Distribution: Stolen=8221 Free=385 Procedures=114922
    Inram=0 Dirty=51548 Kept=0
    I/O=0, Latched=221, Other=1069887
    2007-07-04 08:12:56.25 spid86 Buffer Counts: Commited=1245184 Target=1245184 Hashed=1121656
    InternalReservation=549 ExternalReservation=58 Min Free=256 Visible= 194632
    2007-07-04 08:12:56.25 spid86 Procedure Cache: TotalProcs=61677 TotalPages=114922 InUsePages=30265
    2007-07-04 08:12:56.25 spid86 Dynamic Memory Manager: Stolen=123143 OS Reserved=2216
    OS Committed=2175
    OS In Use=2115
    Query Plan=114087 Optimizer=0
    General=8773
    Utilities=12 Connection=2198
    2007-07-04 08:12:56.25 spid86 Global Memory Objects: Resource=2915 Locks=136
    SQLCache=4850 Replication=2
    LockBytes=2 ServerGlobal=26
    Xact=51
    2007-07-04 08:12:56.25 spid86 Query Memory Manager: Grants=1 Waiting=0 Maximum=118278 Available=118220
    2007-07-04 08:12:56.47 spid86 Error: 17803, Severity: 20, State: 12
    2007-07-04 08:12:56.47 spid86 Insufficient memory available..
    2007-07-04 08:13:05.22 spid84 WARNING: Failed to reserve contiguous memory of Size= 6422528.
    2007-07-04 08:13:05.68 spid84 Buffer Distribution: Stolen=9315 Free=2980 Procedures=111524
    Inram=0 Dirty=51218 Kept=0
    I/O=0, Latched=216, Other=1069931
    2007-07-04 08:13:05.68 spid84 Buffer Counts: Commited=1245184 Target=1245184 Hashed=1121365
    InternalReservation=579 ExternalReservation=226 Min Free=256 Visible= 194632
    2007-07-04 08:13:05.68 spid84 Procedure Cache: TotalProcs=61317 TotalPages=111524 InUsePages=21302
    2007-07-04 08:13:05.68 spid84 Dynamic Memory Manager: Stolen=120839 OS Reserved=1264
    OS Committed=1242
    OS In Use=1072
    Query Plan=110746 Optimizer=0
    General=8770
    Utilities=12 Connection=2195
    2007-07-04 08:13:05.68 spid84 Global Memory Objects: Resource=2915 Locks=136
    SQLCache=4845 Replication=2
    LockBytes=2 ServerGlobal=26
    Xact=51
    2007-07-04 08:13:05.68 spid84 Query Memory Manager: Grants=2 Waiting=0 Maximum=123534 Available=123308
    2007-07-04 08:13:05.82 spid84 Error: 17803, Severity: 20, State: 12
    2007-07-04 08:13:05.82 spid84 Insufficient memory available..
    2007-07-04 08:13:21.69 spid82 WARNING: Failed to reserve contiguous memory of Size= 6422528.
    2007-07-04 08:13:21.96 spid82 Buffer Distribution: Stolen=9319 Free=2228 Procedures=112122
    Inram=0 Dirty=51355 Kept=0
    I/O=1, Latched=216, Other=1069943
    2007-07-04 08:13:21.96 spid82 Buffer Counts: Commited=1245184 Target=1245184 Hashed=1121515
    InternalReservation=574 ExternalReservation=910 Min Free=256 Visible= 194632
    2007-07-04 08:13:21.96 spid82 Procedure Cache: TotalProcs=61601 TotalPages=112122 InUsePages=21522
    2007-07-04 08:13:21.96 spid82 Dynamic Memory Manager: Stolen=121442 OS Reserved=1264
    OS Committed=1242
    OS In Use=1099
    Query Plan=111343 Optimizer=0
    General=8792
    Utilities=30 Connection=2188
    2007-07-04 08:13:21.96 spid82 Global Memory Objects: Resource=2915 Locks=136
    SQLCache=4848 Replication=2
    LockBytes=2 ServerGlobal=26
    Xact=51
    2007-07-04 08:13:21.96 spid82 Query Memory Manager: Grants=4 Waiting=0 Maximum=123959 Available=123049
    2007-07-04 08:13:22.10 spid82 Error: 17803, Severity: 20, State: 12
    2007-07-04 08:13:22.10 spid82 Insufficient memory available..
    Une fois cette erreur l'application front-end (Remedy Action Request) s'emballe et ne répond plus, nous devont faire un failover afin de temporairement corriger le problème.

    Deux KB articles de Microsoft parle de l'erreur en question soient KB832674 et KB903002. J'écarte les deux suggestions pour mon problème. Le premier parce que aucun champs SQL_variant n'est présent dans les tables.

    Est-ce que quelqu'un à déjà eu ce genre de problème ? Des correctifs ?

    Une option me semblerait intéressante à activer soir "Reserve physical memory for SQL server" (set working set size), j'ai lu que cette option peut augmenter les performances si l’utilisation fixe de la mémoire est activée et que SQL Server 2000 est le logiciel principal sur le serveur, ce qui est mon cas. J'ai aussi lu que cet option est déconseiller si AWE est activé ?!

    Merci de votre aide/commentaire

    Mathieu

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2002
    Messages : 18
    Par défaut
    Quelqu'un a une idée ?? Des commentaires ??

    Merci

  3. #3
    Membre Expert
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 056
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 056
    Par défaut
    on voit souvent ce genre de pb sur des grosses configs avec une activité intense (je l'ai vu récemment sur un cluster 2005 SP2 avec 11 Go de RAM (16 sur le serveur) et pour le moment MS n'a pas remonté de solution).
    J'imagine que tu dois également avoir des dump mémoire affichant les requêtes incriminées (regarder des fichiers *.dmp dans le répertoire LOG de SQL Server),
    peut-être y trouveras-tu du code SQL récurrent qui pourrait te mettre sur une piste.

    il y'a toujours le dernier pack de hotfix cumulatif pour sql 2000 sp4 pour passer en version .2187
    http://www.microsoft.com/downloads/d...displaylang=en

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2002
    Messages : 18
    Par défaut
    Merci de ton commentaire,

    J'avais déjà vérifier les fichiers dump, effectivement il y a quelques fichiers mdmp mais il date déjà de quelque temps, aucun rapport avec mes incidents récents.

    En passant, je n'ai jamais réussi à lire ce genre de fichier (.MDMP) existe-t-il un utilitaire qui permet de lire ce type de fichier ? Ou bien il est seulement possible de lire le fichier SQLDumpxxxx.txt associé au .mdmp ?

    Quelqu'un a d'autre commentaire ?

  5. #5
    Membre Expert
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 056
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 056
    Par défaut
    en effet, je songeais aux .txt où tu retrouves souvent les requêtes ayant planté. Mais si tu n'as rien trouvé correspondant ....
    En quelle version es-tu précisément ? 8.00.... ?

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2002
    Messages : 18
    Par défaut
    8.00.2187

  7. #7
    Membre Expert
    Avatar de rudib
    Homme Profil pro
    Fakir SQL Server & NoSQL
    Inscrit en
    Mai 2006
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Fakir SQL Server & NoSQL

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 573
    Par défaut
    Bonjour,

    As-tu /3GB activé sur le système ? Cela peut peut-être aider. J'ai aussi en ce moment un client qui a un problème similaire à celui de Kagemaru...

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2002
    Messages : 18
    Par défaut
    Non nous n'avons pas activé la switch /3GB. C'est une option donc nous avions réfléchie lors du design du serveur, nous avions alors décidé de ne pas activé l'option afin de laisser 2 gig de mémoire à l'OS.

    J'avance dans l'investigation de mon problème, j'ai trouvé deux DLL chargées en mémoire contenant des extended stored procedure. Je suis sous l'impression qu'il y a un leak dans l'utilisation de la mémoire dans l'une de ces DLL.

    Est-ce que quelqu'un connais une façon de monitorer l'utilisation de la mémoire des DLL loader par SQL Server ? Ça pourrait m'aider énormément à résoudre mon problème...

    Merci de vos commentaires

  9. #9
    Membre Expert
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 056
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 056
    Par défaut
    il y a un weblog assez hermétique d'un gars qui bosse sur SQL Server 2005. Il donne qq explications pour identifier une fuite mémoire sur SQL Server... mais c'est très général donc pour arriver à un cas pratique ... bon courage. Sait-on jamais ?

    http://blogs.msdn.com/slavao/archive...04/367113.aspx

  10. #10
    Membre Expert
    Avatar de rudib
    Homme Profil pro
    Fakir SQL Server & NoSQL
    Inscrit en
    Mai 2006
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Fakir SQL Server & NoSQL

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 573
    Par défaut
    Tu n'as pas besoin de laisser 2 GB pour Windows, à moins que la machine fasse tourner d'autres applis.

    Sur Windows 2003, tu as une autre option que /3GB, qui est /USERVA, qui te permet d'indiquer plus finement la mémoire réservée à l'OS.

    Pour les xp, essaie DBCC MEMORYSTATUS. Il y a bien plus d'options sur SQL Server 2005.
    Essaie aussi les objets de compteur sous SQL Server:Memory Manager, je ne sais plus ceux qui sont disponibles sous 2000.

    Le working size n'est pas contenu dans AWE, seulement le buffer (cache de données). C'est pour ça que je te parle des /3GB. La mémoire d'exécution, d'optimisation, de connexions, de verrouillage, le cache de procédure sont dans la limite des 4 GB.

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2002
    Messages : 18
    Par défaut
    Je n'ai toujours pas corrigé mon problème, mais je suis sur une piste et je voulais avoir votre avis.

    Selon PSS support, mon problème serait situé dans la MemToLeave de SQL Server, a un moment il n'y a plus asser de block continue de mémoire ce qui cause le problème.

    Alors voilà depuis une dizaine de jours je roule l'outil VMSTAT.EXE qui permet de récupérer certaines données relatif à la mémoire. Voici le résultat que j'obtient :


    Le compteur "Free Maximum" est utiliser pour le graphique et est traduit en MEGS.
    ex de résultat de l'éxécution de VMSTAT.exe
    Tue 08/07/2007
    2:47p
    TYPE MINIMUM MAXIMUM AVERAGE BLK COUNT
    ~~~~ ~~~~~~~ ~~~~~~~ ~~~~~~~ ~~~~~~~~~
    Commit 4096 891027456 1761762 1019
    Reserve 16384 4128768 407306 125
    Free 4096 164245504 1448408 208
    Private 4096 891027456 2653806 684
    Mapped 4096 1019904 131891 40
    Image 4096 5808128 61118 420
    De plus, lorsqu'il n'y a plus de mémoire, notre problème survient.

    Question -> Est-ce quelqu'un peut explicitement me dire qu'elle est la signification du compteur "FREE". Le maximum capter 300MEGS. Microsoft me dit que c'est la mémoire disponible du BPOOL mais j'en doute ?!

    Aussi, quel pourrait être les causes possible des diminutions drastiques dans la mémoire tel qu'observé sur le graphique ? (DLL, query ?????)

    Merci

Discussions similaires

  1. [MS SQL Server 2000 - Delphi 6 Ent. - ADO ]
    Par paca_mike dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 23/07/2005, 20h27
  2. Certification 70-228 sql server 2000
    Par Cotentin dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 20/11/2003, 09h01
  3. Débutant : SQL Server 2000
    Par bd0606 dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 27/10/2003, 11h33
  4. Migration de MS SQL 7 vers MS SQL server 2000
    Par jfphan dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 15/10/2003, 11h24
  5. problème de float sur SQL server 2000.
    Par fidji dans le forum MS SQL Server
    Réponses: 9
    Dernier message: 24/07/2003, 14h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo