2008-08-26 6 views
3

J'ai un développeur vm qui exécute le serveur sql ainsi que d'autres applications pour ma pile, et j'ai trouvé que les autres applications fonctionnent terriblement. Après avoir creusé, SQL Server monopolisait la mémoire. Après une recherche rapide sur le Web, j'ai découvert que par défaut, il consommera autant de mémoire que possible pour mettre en mémoire cache les données et les restituer au système comme d'autres applications le demandent, mais ce processus n'arrive pas assez vite, apparemment Ma situation est un problème commun.La consommation de mémoire SQL Server 2k5?

There however is a way to limit the memory SQL Server is allowed to have. Ma question est, comment dois-je définir cette limite. Évidemment, je vais devoir faire quelques suppositions et vérifier, mais y a-t-il un seuil minimum absolu? Toutes les recommandations sont appréciées.

Edit:

Je note que des machines de développement ont 2 Go de mémoire, donc je voudrais être en mesure d'exécuter la machine virtuelle sur 768 mb ou moins si possible. Ce vm sera seulement utilisé pour les dev et tests locaux, donc la charge sera très minime. Une fois le code testé localement, il passe à un autre environnement dans lequel la boîte de serveur SQL est dédiée. Ce que je suis vraiment pour voici des recommandations sur les peines minimales

Répondre

0

Comme il s'agit d'un environnement de développement, je suis d'accord avec Greg, il suffit d'utiliser les essais et les erreurs. Ce n'est pas si crucial de le faire parfaitement bien.

Mais si vous faites beaucoup de travail dans la VM, pourquoi ne pas lui donner au moins la moitié des 2 Go?

1

donc id que d'être en mesure d'exécuter la machine virtuelle sur 768 mb ou moins si possible.

Cela dépend de vos données et de la taille de votre base de données. Mais je préfère généralement donner au serveur SQL au moins un Go.

1

Cela dépend vraiment de ce qui se passe sur la machine. Faites fonctionner les choses sous une charge typique et jetez un coup d'oeil au Gestionnaire des tâches pour voir ce dont vous avez besoin pour tout le reste. Essayez ce numéro pour commencer.

Pour les machines de production, bien sûr, il est préférable de donner le contrôle de la machine à Sql Server (Processeurs -> Boost Sql Server Priority) et de lui laisser toute la RAM qu'il veut. Comme vous utilisez des machines virtuelles, vous pourriez peut-être en créer une dédiée juste pour Sql Server et exécuter tout le reste sur une machine virtuelle différente.

2

Extrait il fromt documentation SQL Server:

mémoire serveur maximum (en Mo)

Indique la quantité maximale de mémoire SQL Server peut allouer quand il démarre et pendant qu'il fonctionne. Cette option de configuration peut être réglé à une valeur spécifique si vous savez qu'il ya plusieurs applications en cours d'exécution en même temps que SQL Server et que vous voulez garantie que ces applications ont suffisamment de mémoire pour fonctionner. Si ces autres applications, tels que Web ou serveurs de messagerie, demande la mémoire uniquement comme nécessaire, puis ne définissez pas l'option, car SQL Server va libérer la mémoire selon les besoins.Cependant, applications utilisent souvent la mémoire est disponible quand ils commencent et pas demander plus si nécessaire. Si une application qui se comporte de cette manière fonctionne sur le même ordinateur à en même temps que SQL Server, définissez l'option à une valeur qui garantit que la mémoire requise par l'application n'est pas affecté par SQL Server.

La recommandation sur un minimum est: Pas de telle chose. Le plus de mémoire le mieux. Le serveur SQL a besoin d'autant de mémoire qu'il peut en avoir ou il détruira vos E/S.

Arrêtez SQL Server. Exécutez vos autres applications et prenez note de la quantité de mémoire dont ils ont besoin. Soustrayez-le de la quantité totale de RAM disponible et utilisez ce nombre pour le paramètre de mémoire MAX dans SQL Server.

Questions connexes