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

Administration SQL Server Discussion :

[SQL Server 2005] SQL Server se limite en mémoire


Sujet :

Administration SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert Avatar de Jinroh77
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Février 2006
    Messages
    1 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Février 2006
    Messages : 1 964
    Par défaut [SQL Server 2005] SQL Server se limite en mémoire
    Bonjour,
    Je viens de débarquer sur un nouveau serveur en mauvais état, surchargé.
    Il est en cours de migration vers de nouvelles versions etc.

    OS : Windows Server 2003 R2 SP2 Entreprise x64.
    SQL : Microsoft SQL Server Enterprise Edition (64-bit) v9.00.3054.00
    RAM : 32 Go
    sp_configure retourne :
    max server memory (MB) : 280000
    min server memory (MB) : 10000

    Avant de ma lancer dans une analyse plus poussée, j'ai une question très vague :
    Comment se fait-il que SQL Server, malgré ces paramètres, ne semble n'utiliser que 250 Mo de mémoire ? Il y a-t-il une autre propriété qui puisse limiter cela ?

    Il y a pourtant des traitements particulièrement lourd, manipulant beaucoup de données, remplissant plus de 3Go dans des tables temporaires qui sont en train de tourner ; Le CPU est complètement surchargé.

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Février 2008
    Messages
    758
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 758
    Par défaut
    Citation Envoyé par Jinroh77 Voir le message
    sp_configure retourne :
    max server memory (MB) : 280000
    min server memory (MB) : 10000
    Merci de renvoyer la sortie complète des deux sp_configure pour éviter toute mauvaise interprétation.

    Citation Envoyé par Jinroh77 Voir le message
    Comment se fait-il que SQL Server, malgré ces paramètres, ne semble n'utiliser que 250 Mo de mémoire ?
    Merci de nous indiquer quelle est l'origine de cette lecture de 250Mb. Est-ce un compteur perfmon, task manager , etc...

  3. #3
    Membre Expert Avatar de Jinroh77
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Février 2006
    Messages
    1 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Février 2006
    Messages : 1 964
    Par défaut
    Bonjour,
    Le retour de sp_configure est la run_value (équivalente à la config_value).

    Pour ce qui est de l'utilisation mémoire, c'est uniquement le Task manager.

    Merci.

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Février 2008
    Messages
    758
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 758
    Par défaut
    1) Il faudrait regarder le contenu des deux trois derniers ring buffers pour ring_buffer_type = 'RING_BUFFER_MEMORY_BROKER':

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select top 3 timestamp, record from sys.dm_os_ring_buffers where ring_buffer_type = 'RING_BUFFER_MEMORY_BROKER' order by timestamp desc
    Si Notification = GROW, alors pas de problème pour allouer.

    2) Si tu as une pression mémoire externe à SQL Server:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select timestamp, record from sys.dm_os_ring_buffers where ring_buffer_type = 'RING_BUFFER_RESSOURCE_MONITOR'
    Rechercher des occurences du style:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    (...)
      <ResourceMonitor> 
            <Notification>RESOURCE_MEMPHYSICAL_LOW< 
            /Notification>  
            <Indicators>2</Indicators>  
            <NodeId>0</NodeId>  
        </ResourceMonitor> 
    (...)
    3) Sampler le compteur perfmon '\SqlServer:Buffer Manager\Page Life Expectancy' sur une ou deux heures et regarder si les valeurs tombent sous les 300 secondes.

    4) Y a-t-il d'autres consommateurs mémoire (IIS, java) qui tournent sur cette machine en concurrence avec SQL Server ?

    5) Si tu peux nous mettre en PJ le résultat d'un DBCC MEMORYSTATUS, ça doit faire 1200/1300 lignes sur une machine sans NUMA node.

  5. #5
    Membre Expert Avatar de Jinroh77
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Février 2006
    Messages
    1 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Février 2006
    Messages : 1 964
    Par défaut
    Citation Envoyé par dbaffaleuf Voir le message
    1) Il faudrait regarder le contenu des deux trois derniers ring buffers pour ring_buffer_type = 'RING_BUFFER_MEMORY_BROKER':

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select top 3 timestamp, record from sys.dm_os_ring_buffers where ring_buffer_type = 'RING_BUFFER_MEMORY_BROKER' order by timestamp desc
    Si Notification = GROW, alors pas de problème pour allouer.
    Sur les 3, j'ai bien : <Notification>GROW</Notification>

    Citation Envoyé par dbaffaleuf Voir le message
    2) Si tu as une pression mémoire externe à SQL Server:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select timestamp, record from sys.dm_os_ring_buffers where ring_buffer_type = 'RING_BUFFER_RESSOURCE_MONITOR'
    Rechercher des occurences du style:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    (...)
      <ResourceMonitor> 
            <Notification>RESOURCE_MEMPHYSICAL_LOW< 
            /Notification>  
            <Indicators>2</Indicators>  
            <NodeId>0</NodeId>  
        </ResourceMonitor> 
    (...)
    Le serveur ne tourne plus maintenant, je testerai cela la prochaine fois.

    Citation Envoyé par dbaffaleuf Voir le message
    3) Sampler le compteur perfmon '\SqlServer:Buffer Manager\Page Life Expectancy' sur une ou deux heures et regarder si les valeurs tombent sous les 300 secondes.
    Idem, je regarderai à la prochaine charge, mais pour le moment je suis plutôt dans les 3 000.

    Citation Envoyé par dbaffaleuf Voir le message
    4) Y a-t-il d'autres consommateurs mémoire (IIS, java) qui tournent sur cette machine en concurrence avec SQL Server ?
    Oui, il y a d'autres choses qui tournent dessus (notamment la raison de la migration) dont du java etc.
    C'est vrai que lorsque je regarde la liste des process tournant (tous les utilisateurs) je dois avoir moins de 5Go utilisés, voir même 2.5Go.
    Or si je regarde le Physical memory dans le task manager j'ai les valeurs suivantes :
    Total : 33 553 388
    Avaible : 1 000 000
    System Cache : 1 000 000

    Où sont passés les autres Mo que je ne vois pas dans la liste des processus ?

    Citation Envoyé par dbaffaleuf Voir le message
    5) Si tu peux nous mettre en PJ le résultat d'un DBCC MEMORYSTATUS, ça doit faire 1200/1300 lignes sur une machine sans NUMA node.
    En PJ, le rapport, mais sans avoir le système en activité.
    Fichiers attachés Fichiers attachés

  6. #6
    Membre Expert Avatar de Jinroh77
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Février 2006
    Messages
    1 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Février 2006
    Messages : 1 964
    Par défaut
    Citation Envoyé par Jinroh77 Voir le message
    Oui, il y a d'autres choses qui tournent dessus (notamment la raison de la migration) dont du java etc.
    C'est vrai que lorsque je regarde la liste des process tournant (tous les utilisateurs) je dois avoir moins de 5Go utilisés, voir même 2.5Go.
    Or si je regarde le Physical memory dans le task manager j'ai les valeurs suivantes :
    Total : 33 553 388
    Avaible : 1 000 000
    System Cache : 1 000 000

    Où sont passés les autres Mo que je ne vois pas dans la liste des processus ?
    Je viens d'essayer une nouvelle chose...
    SQL Server avait autorisation d'utilisé 28 Go, mais n'affichait que 250 Mo.
    Il restait alors au système dans les 2Go de libre sur 32Go.

    Si je réduis la valeur max de SQL Server à 10 Go, le système se retrouve alors avec près de 20 Go de libre...

    Il s'avère donc que c'est bien le moteur qui utilise cette mémoire alors que cela ne semble pas être visible sur le moniteur de tâches
    Il y a un autre moyen de savoir combien le moteur utilise vraiment de mémoire ?


    En vérifiant, j'ai le même comportement sur le serveur cible (Win Server 2008 R2 x64) et je n'ai sur chaque serveur qu'1 seule instance de SQL.

Discussions similaires

  1. problem d'installaion de SQL Server 2005 CE Server Tools
    Par redenil dans le forum Réplications
    Réponses: 1
    Dernier message: 13/01/2009, 12h33
  2. Dimensionnement serveur SQL Server 2005 + Windows Server 2003
    Par david_chardonnet dans le forum Windows Serveur
    Réponses: 1
    Dernier message: 05/12/2006, 10h16
  3. sql server 2005 => SQL SERVER 2000
    Par subzero82 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 08/11/2006, 17h20
  4. migration de oracle vers sql server 2005 - linked server
    Par aemag dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 16/10/2006, 15h31

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