[Urgent] Gros problème de RAM avec SQL Server.

Gros problème de RAM avec SQL Server. [Urgent] - Logiciels - Windows & Software

Marsh Posté le 22-09-2005 à 09:35:24    

Bonjour à vous,
 
j'ai un très gros problème.  
 
Le server SQL de ma societé (Microsoft SQL Manager) vient d'être upgradé.
Cette vieille machine possèdait 256 Mo de RAM en PC100. Je viens de la passer à 1 Go de RAM en PC133, car ce serveur heberge plus de 150 Bases de données, pour autant de sites gérés par la societé.
 
Helas, nous rencontrons un énorme problème. A bout d'un petit moment, il est impossible d'accèder aux bases de données via nos sites. Internet Explorer mouline dans le vide. Je suis donc allé voir sur le serveur SQL, et dans le TaskManager, je m'aperçois que le processus SQLserver bouffe 700 Meg de RAM. Je me demande simplement s'il ne s'agit pas d'un problème de règlage de RAM. Comme si la RAM se remplissait, mais ne pouvait pas se vider. Du coup, la RAM utilisée ne cesse de grimper, jusqu'à saturation. Etant donné que nous sommes passés de PC100 à PC133, peut-être y a t il un règlage dans le BIOS à faire ? Ou bien est-ce SQL Server qui est mal configuré ?
 
Merci de m'aider, c'est vraiment un problème urgent !


Message édité par ineluki le 22-09-2005 à 16:42:37
Reply

Marsh Posté le 22-09-2005 à 09:35:24   

Reply

Marsh Posté le 22-09-2005 à 10:37:56    

Etant donné le caractère urgent du problème, je me permets de faire un petit UP anticipé.
 
Ca n'est pas dans l'ethique du forum, aussi, veuillez m'en excuser.

Reply

Marsh Posté le 22-09-2005 à 10:39:26    

je dirait plutot que c'est un pb logiciel

Reply

Marsh Posté le 22-09-2005 à 11:03:38    

Pourtant, rien n'a été modifié depuis l'upgrade de la RAM ...

Reply

Marsh Posté le 22-09-2005 à 11:16:42    

je suppose que c'est un windows type NT ?  
 
tu peux peut-etre essayé de le démarrer en spécifiant la mémoire maximum à utiliser (dans le boot.ini, paramètre /maxmem=256 )
 
pour voir si il se comporte pareil qu'avant si tu redescends à 256Mo.
 
http://support.microsoft.com/kb/q108393/
 


Message édité par PeK le 22-09-2005 à 11:18:48
Reply

Marsh Posté le 22-09-2005 à 11:26:28    

Merci :)
 
J'utilise effectivement Win NT Server. Le problème, c'est que ce serveur n'est pas dans nos locaux, j'y accède par terminal services.
 
Du coup, impossible d'opérer un reboot ...

Reply

Marsh Posté le 22-09-2005 à 11:43:08    

tu peux pas lancer une commande de reboot à distance ?? (je connais pas terminal services, mais ça m'étonne un peu)
http://www.robvanderwoude.com/index.html

Reply

Marsh Posté le 22-09-2005 à 13:55:55    

Non, le problème ne vient pas de là ...
 
Ca commence à devenir critique. Je suis obligé de relancer le service sqlservr.exe toutes les heures pour libérer la mémoire ...
 
Je ne souhaite pas mettre mon réveil cette nuit toutes les heures ...
 
Pffff misère ... Personne n'a rencontré ce problème auparavant ?
 
Edit : au moins, est-ce que quelqu'un connait un petit logiciel qui permet de gérer ses services automatiquement ? Par exemple : si le process sqlservr.exe utilise plus de 800 Meg de RAM, alors faire un restart du service. Cela doit surement exister ... non ?


Message édité par ineluki le 22-09-2005 à 13:57:37
Reply

Marsh Posté le 22-09-2005 à 14:06:47    

Dans la boîte où je bosse le mercredi, on a un serveur SQL sur un serveur, équipé de 2Go de RAM. Il y a au moins une 100aine de bases de données, et c'est pas rare que le processus occupe plus de 1Go de ram [:spamafote]. Et aucun pb d'accès [:spamafote].


---------------
Filmstory : gardez trace des films que vous avez vu ! :D
Reply

Marsh Posté le 22-09-2005 à 14:24:56    

D'où ma question ;)

Reply

Marsh Posté le 22-09-2005 à 14:24:56   

Reply

Marsh Posté le 22-09-2005 à 15:12:57    

Pffff toujours rien trouvé ... je me contente de relancer le service toutes les heures, pour libérer la RAM ...
 

Reply

Marsh Posté le 22-09-2005 à 15:39:47    

il faudrait qu'il fasse quoi ton programme ?  
un truc simple du genre  
si (RAM > 800Mo) then STOP , avec un check régulier toutes les minutes par exemple ?
 
je suppose qu'il faut faire un stop propre de la base ?


Message édité par PeK le 22-09-2005 à 15:43:55
Reply

Marsh Posté le 22-09-2005 à 15:45:13    

Voilà ! Pour le redémarrer ensuite, en respectant une pause de 10 / 15 secondes, le temps que le process se termine (quand je stop le serveur SQL, il met au moins 10 secondes à se fermer)


Message édité par ineluki le 22-09-2005 à 15:46:00
Reply

Marsh Posté le 22-09-2005 à 15:46:46    

la base est un service windows ? tu lances quoi exactement ?  
 
si c'est un service, peux-tu le stopper et le relancer avec des commandes style  
 
net stop BASEDEDONNE
net start BASEDEDONNE
 
sinon, est-ce que c'est un exe que tu lances ?

Reply

Marsh Posté le 22-09-2005 à 15:48:56    

En fait, lorsque le TaskManager est ouvert, c'est le process sqlservr.exe qui tourne.
Lorsque, via mon interface SQL Manager, je fais un "STOP" du serveur SQL, c'est ce process (sqlservr.exe) qui se termine.
 
Lorsque je fais un start, le process réapparait :)
 
Mais ça n'est pas une base de donnée que je dois stopper, c'est carrément le serveur qui gère les 150 bases de données.


Message édité par ineluki le 22-09-2005 à 15:49:38
Reply

Marsh Posté le 22-09-2005 à 15:54:57    

la question est : as-tu moyen de lancer les bases / stopper les bases, en 1 ligne de commande.
genre, un utilitaire SQL Manager, mais pas graphique
 
 
au passage, c'est un peu une solution cache misère ...

Reply

Marsh Posté le 22-09-2005 à 16:00:36    

va voir dans tes services si tu as des services SQLSERVERAGENT et MSSQLSERVER
 
ensuite, tu peux essayer d'enchainer les 4 commandes suivantes ...
NET STOP SQLSERVERAGENT
NET STOP MSSQLSERVER
NET START MSSQLSERVER
NET START SQLSERVERAGENT
à tes risques et périls :D (normalement, ça devrait marcher )
tout ceci devrait redémarrer proprement les bases.


Message édité par PeK le 22-09-2005 à 16:02:35
Reply

Marsh Posté le 22-09-2005 à 16:08:17    

Yep ca fonctionne, bien sur ... Mais le problème, c'est qu'une fois les bases redémarrés, eh bien, de nouveau, le process occupe de plus en plus de RAM, jusqu'à saturation !

Reply

Marsh Posté le 22-09-2005 à 16:16:25    

bon j'essaierais de faire un tout petit prog ce soir pour le redémarrage automatique.
Au pire, pour l'instant, tu peux te permettre de faire un batch avec ces 4 commandes et de plannifier l'execution du batch toutes les heures par exemple.

Reply

Marsh Posté le 22-09-2005 à 16:24:07    

Yep l'idée est bonne, faisons avec les moyens du bord ...
 
Mais là où je vois qu'il y a un réel problème, c'est que je viens de limiter l'usage de la RAM pour SQLServer à 256 Meg.
 
Et bien, il continue à grimper au delà ... Il est en déjà à presque 300 ...

Reply

Marsh Posté le 22-09-2005 à 16:26:25    

C'est quelles versions exactement de windows et SQL server ?
T'as bien le dernier SP pour ton SQL ?

Reply

Marsh Posté le 22-09-2005 à 16:42:05    

- Service Pack 4
- SQLServer 2004
- Microsoft Windows 2000 5.00.2195
 
:(

Reply

Marsh Posté le 22-09-2005 à 16:46:38    

Ca existe pas trop SQL Server 2004...

Reply

Marsh Posté le 22-09-2005 à 16:51:49    

Pardon, j'ai tapé trop vite !
 
SQLServer 8.00, ça existe ?

Reply

Marsh Posté le 22-09-2005 à 16:55:40    

Oui, c'est le 2000.

Reply

Marsh Posté le 22-09-2005 à 17:07:47    

Bon, aux dernière nouvelles :
 
Après avoir configuré le Max Memory Used à 256 Mg, le process s'est stabilisé autour de 290 Meg d'utilisation (certains sites mentionnent qu'effectivement, SQLServer alloue 20 Meg de plus que la limite omposée).
 
Depuis plus d'une heure, il ne bouge pas, toujours 290 Meg.  
 
Le problème semble donc résolu, mais hélas, je viens de remarquer que très très lentement, le process utilise 4 ko de plus, environ toutes les 10 minutes. Certes ceci n'est pas gênant, mais à moyen terme, cela va de nouveau saturer la mémoire ...
 

Reply

Marsh Posté le 22-09-2005 à 18:29:14    

Ca sature la ram, mais ça gène en quoi ?


---------------
Filmstory : gardez trace des films que vous avez vu ! :D
Reply

Marsh Posté le 22-09-2005 à 18:51:40    

ben il te reste plus qu'à estimer combien de temps il te faut pour saturer la RAM et faire redémarrer le service avant .
Si c'est vraiment 4ko par 10 minutes, ça fait moins d'1Mo dans la journée.
Tu peux plannifier une tacher de relance des bases à 2h du matin...
Ou un reboot le dimanche  :p


Message édité par PeK le 22-09-2005 à 18:52:17

---------------
PeK
Reply

Marsh Posté le 23-09-2005 à 09:18:22    

Yep c'est ce que je me suis dit ;)
 
Malheureusement, en arrivant au boulot, quelle ne fût pas ma surprise ...
 
Dans l'event viewer : SQLServer abnormal termination à 6 heures du matin.
Les backups journaliers programmés à minuit n'ont même pas tournés ...
 
Aïe aïe aïe ...

Reply

Marsh Posté le 23-09-2005 à 13:21:21    

c'est vraiment pas au point ce truc dis donc :/


---------------
PeK
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed