Ou perfmon devrait-il être limité à un serveur Dev / QA avec des tests de charge qui simulent l'activité de production?
J'aimerais exécuter perfmon pendant deux jours ( comme le suggère Brent Ozar, maître du serveur SQL ), pour avoir une idée globale des performances de la base de données de mon application Web.
sql-server
performance
performance-tuning
perfmon
Bill Paetzke
la source
la source
Réponses:
SQL Server et la plupart des autres produits génèrent des compteurs tout le temps, qu'il y ait ou non des écouteurs (en ignorant l'option de démarrage -x). Le traçage de compteur est complètement transparent sur l'application surveillée. Il existe une région de mémoire partagée sur laquelle l'application surveillée écrit et à partir de laquelle les sessions de surveillance lisent les valeurs brutes à l'intervalle spécifié. Ainsi, le seul coût associé à la surveillance est le coût du processus de surveillance et le coût d'écriture des valeurs échantillonnées sur le disque. Choisir un intervalle de collecte décent (je choisis généralement 15 secondes) et un nombre modéré de compteurs (50-100), et écrire dans un format de fichier binaire ne laisse généralement aucun impact sur le système surveillé.
Mais je déconseille d'utiliser Perfmon (comme dans perfmon.exe). Au lieu de cela, familiarisez-vous avec logman.exe, voir Description des outils Logman.exe, Relog.exe et Typeperf.exe . De cette façon, vous ne liez pas la session de collecte à votre session. Logman, étant un outil en ligne de commande, peut être utilisé dans des scripts et des travaux planifiés pour démarrer et arrêter des sessions de collecte.
la source
Il n'y a rien de mal à exécuter perfmon sur des boîtes de production. Il est relativement discret et peut rassembler beaucoup de bonnes informations pour vous. Et comment simuleriez-vous avec précision les charges de production si vous n'exécutiez pas d'analyse sur le serveur de production? De Brent Ozar dans votre propre lien:
J'ai exécuté perfmon sur un certain nombre de boîtes d'échange de production sans effets indésirables.
la source
Depuis que j'ai écouté Clint Huffman , qui a écrit PAL un utilitaire pour analyser les journaux Perfmon, sur un podcast une fois. J'ai configuré ce que j'appelle l'enregistreur de vol sur tous nos serveurs d'applications de production. Cette pratique s'est avérée très utile pour diagnostiquer les problèmes et surveiller les tendances.
Vous trouverez ci-dessous le script que j'utilise pour configurer un collecteur Perfmon à démarrage automatique, avec purge des journaux. Si vous le souhaitez, vous pouvez lui fournir un fichier répertoriant les compteurs de performances à collecter (un par ligne) ou un fichier XML PAL Threshold. J'aime utiliser les fichiers PAL Threshold.
la source
Nous le faisons assez fréquemment. Il est également essentiel pour établir une base de référence dans l'environnement réel, afin que vous puissiez comparer plus tard s'il y a des problèmes ou si vous devez effectuer une étude de capacité.
Je recommande cependant de ne pas descendre en dessous d'un intervalle de 10 secondes. Si vous collectez de nombreux objets / compteurs et que l'intervalle est trop fréquent, cela peut avoir un impact sur les opérations.
Microsoft a un assistant PerfMon qui configurera la tâche pour vous.
http://www.microsoft.com/downloads/details.aspx?FamilyID=31FCCD98-C3A1-4644-9622-FAA046D69214&displaylang=en
la source
Dans un monde idéal où un serveur de production reflète exactement ce qu'un serveur de développement fait et est également un duplicata exact du serveur de développement, perfmon ne devrait jamais être requis sur le serveur de production car les résultats seraient les mêmes que ceux du serveur de développement. Bien sûr, cette situation mythique ne se produit jamais, nous devons donc exécuter perfmon sur des serveurs de production et il n'y a absolument rien de mal à cela. Entre autres choses, nous devrons peut-être utiliser perfmon et d'autres outils pour savoir pourquoi le serveur de production ne se comporte pas de la même manière que le serveur de développement.
la source
Pourquoi perfmon? Je veux dire, les versions récentes de SQL Server ont leur propre méthode pour ce faire, y compris la construction d'un entrepôt de données (central) de compteurs de performances qui peuvent ensuite être interrogés et signalés. Il n'y a aucun sens à y exécuter perfmon.
Je suis, comme toujours, étonné par tous les messages ici de personnes qui n'ont évidemment jamais lu la documentation;)
http://www.simple-talk.com/sql/learn-sql-server/sql-server-2008-performance-data-collector/ est un bon début. IMHO qui devrait fonctionner sur presque tous les serveurs SQL utilisés à des fins de production.
la source
Rien de mal à exécuter Perfmon comme beaucoup l'ont suggéré, mais j'exécuterais plutôt le profileur ou en plus, avec les mêmes mises en garde, ne capturez pas trop souvent, capturez simplement les requêtes longues, c.-à-d. Durée> x secondes ou cpu> xx ou lit> xxxx; très peu d'impact, et vous verrez rapidement les requêtes qui bénéficieraient le plus de l'optimisation.
la source