4 votes

SQL Server 2008 Workgroup Edition sur un serveur virtuel sans swapping

J'ai loué un serveur virtuel avec 4 Go de mémoire chez Hosteurope, y compris une licence pour SQL Server 2008 Workgroup Edition. Il fonctionne bien et est assez rapide, mais dès que je le charge, il manque de mémoire et le serveur tombe en panne.

Il convient de mentionner que Hosteurope a un système pour ses serveurs virtuels qui ne permet pas l'utilisation du swapping sur le serveur. C'est pourquoi il n'y a pas de pagefile et quand il n'y a plus de mémoire, il n'y en a plus du tout.

Hosteurope refuse d'aider ou de prendre toute responsabilité, mais j'espère vraiment que quelqu'un ici à serverfault pourra m'aider.

J'ai déjà essayé de régler le paramètre "Mémoire maximale du serveur" dans SQL Server sur 2000, mais cela ne fait aucune différence.

Symptôme du problème Le serveur de la base de données cesse d'accepter les connexions.

Une erreur liée au réseau ou à l'instance s'est produite lors de l'établissement d'une connexion à SQL Server. Le serveur n'a pas été trouvé ou n'était pas accessible. Vérifiez que le nom de l'instance est correct et que SQL Server est configuré pour autoriser les connexions à distance. (fournisseur : Named Pipes Provider, error : 40 - Impossible d'ouvrir une connexion à SQL Server)

  • Le redémarrage du serveur SQL Server ne résout pas le problème.
  • Le redémarrage du serveur web ne résout pas le problème.
  • Le redémarrage de l'ensemble du serveur sur lequel est installé SQL Server résout le problème.

...jusqu'à ce que la prochaine fois qu'il y a un peu de charge dessus, alors il arrête de fonctionner à nouveau.

Alors maintenant, je vous demande gentiment :

  • Aidez-moi à trouver les erreurs exactes qui provoquent ce comportement. J'ai regardé dans le journal des événements du système et de l'application, mais aucun ne montre quelque chose de concluant.

  • Aide pour trouver comment configurer mon installation de serveur/sql server pour qu'elle ne plante pas.

Solution primaire N'exécutez pas SQL Server sur un serveur Windows dont le swapping/page file est désactivé si vous souhaitez le charger. En d'autres termes, ne choisissez pas HostEurope comme hôte si vous souhaitez charger votre serveur de base de données !

Solution secondaire Améliorez la fiabilité en limitant le nombre de travailleurs parallèles sur le serveur SQL, comme expliqué dans la réponse acceptée ci-dessous.

2voto

Mike Points 36

J'ai exactement le même serveur virtuel de Host Europe ainsi que le même problème. Je pense avoir trouvé une solution.

Il me semble que le parallélisme sur le serveur est à l'origine de ce problème. Le serveur virtuel possède 24 CPU virtuels, ce qui est trop pour 4 Go de RAM. J'ai apporté les modifications suivantes à la configuration de l'instance SQL (j'ai un système allemand, je ne connais pas le texte exact pour un serveur SQL anglais) :

  1. Ouvrez les propriétés de l'instance dans Management Studio.
  2. Allez dans l'onglet "avancé".
  3. Changez l'option pour le parallélisme maximum de 0 à 2.
  4. Dans l'onglet Mémoire, modifiez la mémoire maximale du serveur pour la porter à 1792 Mo.

Cela semble avoir résolu mon problème.

0 votes

Wow, cela semble être une solution formidable et très probable ! Merci beaucoup. Je vais l'essayer et je vous dirai si ça a marché.

0 votes

Je ne sais pas vraiment - il se plante toujours, mais peut-être un peu moins. Je ne suis pas sûr. Pouvez-vous vous rappeler si vous avez modifié autre chose ?

0 votes

Il semble fonctionner de manière un peu plus stable maintenant... mais se plante toujours si je le charge. Il fonctionne depuis 3 jours maintenant, le meilleur jusqu'à présent.

1voto

Rob Howard Points 636

Tout d'abord, Windows ne fait pas de swap en soi, c'est un peu différent (et si vous exécutez perfmon sur votre système existant, vous remarquerez qu'il fait toujours du page fault même sans pagefile). https://serverfault.com/a/75027/3528 pour les détails.

Vous avez dit que le serveur manque de mémoire lorsque vous le chargez. Avez-vous des journaux ou des preuves qu'il manque de mémoire ? En général, des choses horribles se produisent bien avant que le serveur SQL n'ait la possibilité de vous refuser l'accès si vous êtes vraiment à court de mémoire. Il devrait y avoir des événements dans le journal des événements qui vous donneront un indice de ce qui se passe.

0 votes

Ceci provient d'un serveur web que j'ai également chez Hosteurope et qui manque également de mémoire : Informations sur l'exception : Type d'exception : OutOfMemoryException Message d'exception : Exception of type 'System.OutOfMemoryException' was thrown. at System.Runtime.CompilerServices.RuntimeHelpers._CompileMethod(IRuntimeMethodInfo method) at System.Reflection.Emit.DynamicMethod.CreateDelegate(Type delegateType)

0 votes

Suivi par : Application : w3wp.exe Framework Version : v4.0.30319 Description : Le processus a été interrompu en raison d'une erreur interne du moteur d'exécution .NET à l'adresse IP 000007FEBC677DFC (000007FEBC0A0000) avec le code de sortie 80131506.

0 votes

Dans le message auquel vous faites référence, il écrit " Cela signifie également que le fait de " manquer de RAM " entraîne rarement une erreur de " manque de mémoire ". Au lieu d'une erreur, cela se traduit par de mauvaises performances" . Cependant, dans mon cas, il en résulte toujours une erreur car il ne peut y avoir de pagefile.

0voto

sivag Points 44

Activer la mémoire maximale du serveur dans les configurations attribue 3GB pour sql server et 1gb pour Windows server .

Peut-être que ça aide...

Regards,

SivaG

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