Précédent   Forum des professionnels en informatique > Bases de données > MS SQL-Server > Administration
Administration Forum d'entraide sur l'administration du dataserver, via SSM ou ligne de commande, les tables système, ...
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 05/05/2011, 13h37   #1
Membre actif
 
Avatar de ccambier
 
Inscription : octobre 2006
Messages : 230
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 230
Points : 177
Points : 177
Par défaut Taille mémoire du processus sqlsrvr.exe

Bonjour,

Là où je travaille, j'ai un client qui s'inquiète de la taille qu'occupe le service SQL Server en mémoire.
Le serveur est un Windows 2008 (dernières mises à jour) 64bits avec 32Go de Mémoire RAM, le serveur SQL est un SQL 2008 R2 Standard et il n'y a qu'une seule base de donnée qui fait +/- 2,5Go

Le service prend +/- 6,5Go en mémoire (je sais qu'il en reste pas mal pour les autres programmes mais qd mm...

Le nombre d'utilisateur pour cette base de donnée (en concurrence) c'est environ 3 à 6 utilisateurs maximum.

Quelqu'un aurait une piste ou une explication, sachant qu'il s'agit d'un 64bits donc l'option AWE n'est pas activée.

D'avance je remercie tous les experts qui pourront me répondre et les autres bien évidemment .
__________________
Ne remets pas à demain ce que tu peux remettre à après-demain...
ccambier est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/05/2011, 13h49   #2
Responsable SQL Server

 
Avatar de mikedavem
 
Homme David BARBARIN
Expert SQL Server
Inscription : août 2005
Messages : 3 723
Détails du profil
Informations personnelles :
Nom : Homme David BARBARIN
Localisation : France, Haute Savoie (Rhône Alpes)

Informations professionnelles :
Activité : Expert SQL Server
Secteur : Conseil

Informations forums :
Inscription : août 2005
Messages : 3 723
Points : 6 844
Points : 6 844
Bonjour,

Ce comportement est tout à fait normal.
Tout d'abord en architecture 64 bits on peut accéder à 2^64 octects d'espace mémoire contrairement à un système 32bits où on est limité à 4Go.
Ce que vous voyez là c'est l'espace mémoire utilisé par SQL Server pour sa propre utilisation et les différents caches utilisés.

Un serveur de bases de données, de part sa nature, essaye de prendre toutes les ressources que lui sont nécessaires pour fonctionner de manière optimale et il ne rendra ces ressources que s'il y est contraint.

Vous pouvez toute fois limiter la mémoire accaparée en agissant sur l'option de serveur 'max server memory'

++
mikedavem est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/05/2011, 14h27   #3
Expert Confirmé
 
Avatar de 7gyY9w1ZY6ySRgPeaefZ
 
Homme
dba
Inscription : juillet 2007
Messages : 2 520
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Canada

Informations professionnelles :
Activité : dba

Informations forums :
Inscription : juillet 2007
Messages : 2 520
Points : 3 967
Points : 3 967
Citation:
Envoyé par ccambier Voir le message
Le service prend +/- 6,5Go en mémoire (je sais qu'il en reste pas mal pour les autres programmes mais qd mm...
J'ajouterais qu'un serveur de bd est uniquement dédié à la base de données, donc l'installation d'autres choses dessus est à proscrire.
__________________
les règles du forum - mode d'emploi du forum
Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs.
(Rappel : "ça ne marche pas" n'est pas un message d'erreur)
JE NE RÉPONDS PAS aux questions techniques par message privé.
Écrire en français sur un forum est une marque minimale de respect.
7gyY9w1ZY6ySRgPeaefZ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/05/2011, 10h00   #4
Rédacteur/Modérateur

 
Avatar de SQLpro
 
Homme Frédéric BROUARD
Expert SGBDR & SQL
Inscription : mai 2002
Messages : 10 953
Détails du profil
Informations personnelles :
Nom : Homme Frédéric BROUARD
Localisation : France

Informations professionnelles :
Activité : Expert SGBDR & SQL
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 10 953
Points : 17 773
Points : 17 773
Et les 6.5 Go de RAM utilisés comparé au 2.5 Go de données de la base s'expliquent généralement assez bien par le fait de développements d'application peu orthodoxe ou la tempdb va souffrir (utilisation de tables temporaires ou de variables table, recours massif aux curseurs...).

A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro
http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation
* * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * *
SQLpro est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 06/05/2011, 14h53   #5
Expert Confirmé
 
Avatar de 7gyY9w1ZY6ySRgPeaefZ
 
Homme
dba
Inscription : juillet 2007
Messages : 2 520
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Canada

Informations professionnelles :
Activité : dba

Informations forums :
Inscription : juillet 2007
Messages : 2 520
Points : 3 967
Points : 3 967
Citation:
Envoyé par SQLpro Voir le message
Et les 6.5 Go de RAM utilisés comparé au 2.5 Go de données de la base s'expliquent généralement assez bien par le fait de développements d'application peu orthodoxe ou la tempdb va souffrir (utilisation de tables temporaires ou de variables table, recours massif aux curseurs...).
J'ai déjà vu une bd qui faisait quelques dizaines de Mo (oui, dizaines de Mo, aucune faute de frappe) qui prenait régulièrement quelques Go de RAM et arrivait régulièrement dans le top des consommateurs de mémoire par rapport à des bds bien plus volumineuses et plus sollicitées...
Je n'ai jamais eu le courage d'aller voir le code de ce site web mais dans le genre ça devait être assez comique...
__________________
les règles du forum - mode d'emploi du forum
Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs.
(Rappel : "ça ne marche pas" n'est pas un message d'erreur)
JE NE RÉPONDS PAS aux questions techniques par message privé.
Écrire en français sur un forum est une marque minimale de respect.
7gyY9w1ZY6ySRgPeaefZ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/05/2011, 15h51   #6
Membre Expert
 
Avatar de iberserk
 
Homme Bruno IGNACE
Architecte de base de données
Inscription : novembre 2004
Messages : 1 299
Détails du profil
Informations personnelles :
Nom : Homme Bruno IGNACE
Âge : 30
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Architecte de base de données
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : novembre 2004
Messages : 1 299
Points : 2 282
Points : 2 282
Envoyer un message via MSN à iberserk
Citation:
J'ai déjà vu une bd qui faisait quelques dizaines de Mo (oui, dizaines de Mo, aucune faute de frappe) qui prenait régulièrement quelques Go de RAM et arrivait régulièrement dans le top des consommateurs de mémoire par rapport à des bds bien plus volumineuses et plus sollicitées...
Je n'ai jamais eu le courage d'aller voir le code de ce site web mais dans le genre ça devait être assez comique...
Mon ancienne boite: site déjà consequent (400 aspx différents...)

Derrière chaque bouton une ouverture de connexion ADO... une requête en dur (jamais écrit de la même façon que ce soit dans l'ordre ou de par la casse...)...

Je vous dis pas ce que prenais le cache....
__________________
Prendre conscience, c'est transformer le voile qui recouvre la lumière en miroir.
iberserk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/05/2011, 16h09   #7
Responsable SQL Server

 
Avatar de mikedavem
 
Homme David BARBARIN
Expert SQL Server
Inscription : août 2005
Messages : 3 723
Détails du profil
Informations personnelles :
Nom : Homme David BARBARIN
Localisation : France, Haute Savoie (Rhône Alpes)

Informations professionnelles :
Activité : Expert SQL Server
Secteur : Conseil

Informations forums :
Inscription : août 2005
Messages : 3 723
Points : 6 844
Points : 6 844
Citation:
Derrière chaque bouton une ouverture de connexion ADO
Bon là je pourrais dire que si le pooling de connexion était utilisé ce n'était pas bien grave

Citation:
Derrière chaque bouton une ouverture de connexion ADO... une requête en dur (jamais écrit de la même façon que ce soit dans l'ordre ou de par la casse...)...
Là on peut essayer de jouer avec l'option de base de données PARAMETERIZATION. L'inconvénient est d'avoir ici une réutilisation d'un plan d'exécution en cache non performant.

++
mikedavem est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/05/2011, 16h33   #8
Membre Expert
 
Avatar de iberserk
 
Homme Bruno IGNACE
Architecte de base de données
Inscription : novembre 2004
Messages : 1 299
Détails du profil
Informations personnelles :
Nom : Homme Bruno IGNACE
Âge : 30
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Architecte de base de données
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : novembre 2004
Messages : 1 299
Points : 2 282
Points : 2 282
Envoyer un message via MSN à iberserk
Citation:
Bon là je pourrais dire que si le pooling de connexion était utilisé ce n'était pas bien grave
C'était juste pour dire que derrière chaque bouton on avait 10 lignes de code rien que pour ouvrir la connexion créer une commande, l'execution la fermer etc

Citation:
Là on peut essayer de jouer avec l'option de base de données PARAMETERIZATION. L'inconvénient est d'avoir ici une réutilisation d'un plan d'exécution en cache non performant.
PARAMETERIZATION n'impacte qu'une quantité limitée de requête (pas de top, de DISTINCT de <> de sous requête) etc...
__________________
Prendre conscience, c'est transformer le voile qui recouvre la lumière en miroir.
iberserk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/05/2011, 16h45   #9
Responsable SQL Server

 
Avatar de mikedavem
 
Homme David BARBARIN
Expert SQL Server
Inscription : août 2005
Messages : 3 723
Détails du profil
Informations personnelles :
Nom : Homme David BARBARIN
Localisation : France, Haute Savoie (Rhône Alpes)

Informations professionnelles :
Activité : Expert SQL Server
Secteur : Conseil

Informations forums :
Inscription : août 2005
Messages : 3 723
Points : 6 844
Points : 6 844
Citation:
PARAMETERIZATION n'impacte qu'une quantité limitée de requête (pas de top, de DISTINCT de <> de sous requête) etc...
C'est sûr ce n'est pas la solution miracle ...

++
mikedavem est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/05/2011, 14h43   #10
Membre actif
 
Avatar de ccambier
 
Inscription : octobre 2006
Messages : 230
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 230
Points : 177
Points : 177
Merci pour vos réponses.

Ce qui m'étonne c'est qu'on a des bases de données qui tournent sur ce genre de serveur et qui n'occasionnent pas ce genre de réaction, pour la même application.

Mais je vais vérifier l'utilisation de tempdb,
et certainement proposer à mon client un audit de son serveur, ils ont p-e des programmes spécifiques qui utilisent la base de donnée et que cela ne vienne pas de notre programme standard.

au niveau du serveur je ne peux malheureusement pas dire à mon client d'utiliser un serveur dédier pour sa base de donnée, c'était dans les prérequis mais ils ont délibérément accepté de travailler comme cela.

Je vous tiens au courant dès que j'ai trouvé qqch

Merci
__________________
Ne remets pas à demain ce que tu peux remettre à après-demain...
ccambier est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/05/2011, 18h49   #11
Membre chevronné
 
David BAFFALEUF
Inscription : février 2008
Messages : 612
Détails du profil
Informations personnelles :
Nom : David BAFFALEUF
Localisation : France

Informations forums :
Inscription : février 2008
Messages : 612
Points : 746
Points : 746
Par rapport à vos remarques sur PARAMETERIZATION, je regarderais la quantité de mémoire prise par le cachestore des plans SQL au détriment du buffer pool pour avoir une idée de ce que celà représente:

Code :
1
2
3
4
5
6
7
SELECT name, type, single_pages_kb ,  single_pages_in_use_kb
FROM sys.dm_os_memory_cache_counters
WHERE single_pages_kb > 0
AND single_pages_in_use_kb > 0
AND type LIKE 'CACHESTORE%'
ORDER BY 3 DESC
GO
Comme il y a de moins en moins de développement en procs, et de plus en plus de no SQL ou de requêtes construites dans le code applicatif, de plus en plus de mémoire est utilisée pour cacher des plans souvent identiques.

Une autre piste, la densité des pages de données:
http://www.sqlskills.com/BLOGS/PAUL/...to-run%29.aspx
__________________
David B.
dbaffaleuf est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/05/2011, 20h43   #12
Rédacteur/Modérateur

 
Avatar de SQLpro
 
Homme Frédéric BROUARD
Expert SGBDR & SQL
Inscription : mai 2002
Messages : 10 953
Détails du profil
Informations personnelles :
Nom : Homme Frédéric BROUARD
Localisation : France

Informations professionnelles :
Activité : Expert SGBDR & SQL
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 10 953
Points : 17 773
Points : 17 773
Citation:
Envoyé par ccambier Voir le message
au niveau du serveur je ne peux malheureusement pas dire à mon client d'utiliser un serveur dédier pour sa base de donnée, c'était dans les prérequis mais ils ont délibérément accepté de travailler comme cela.
Bien au contraire.... Il faut savoir dire à un client qu'il a délibérément pris la mauvaise voie malgré vos préconisations et que tant qu'il persistera cette problématique ne fera qu'empirer en fonction de la montée en charge.

A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro
http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation
* * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * *
SQLpro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/05/2011, 12h19   #13
Membre actif
 
Avatar de ccambier
 
Inscription : octobre 2006
Messages : 230
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 230
Points : 177
Points : 177
j'aimerais pouvoir m'assurer de l'origine du problème avant de devoir leur dire qu'ils doivent dédier leur serveur à cette DB et investir dans un autre serveur pour leurs autres applications...

Je vais voir toutes les pistes que j'ai reçu de votre part et je vous tiens informé
__________________
Ne remets pas à demain ce que tu peux remettre à après-demain...
ccambier est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/05/2011, 14h51   #14
Membre actif
 
Avatar de ccambier
 
Inscription : octobre 2006
Messages : 230
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 230
Points : 177
Points : 177
Voilà j'ai vérifié sur le serveur et pour l'instant je n'ai rien remarqué TempDb est normale et la taille occupée en mémoire est de 400Mo

Donc il semblerait, sans tirer trop vite de conclusion qu'il s'agirait bien de tempdb

Je dois me rendre chez eux bientôt et j'activerais des alertes sur la taille de Tempdb

En tout cas merci
__________________
Ne remets pas à demain ce que tu peux remettre à après-demain...
ccambier est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 10h04.


 
 
 
 
Partenaires

Hébergement Web