Bienvenue à Blogs CodeS-SourceS Identification | Inscription | Aide

Blog Technique de Romelard Fabrice

Les dernières Actualités de Romelard Fabrice (Alias fabrice69 ou F___) principalement autour des technologies Microsoft

Actualités

  • Toutes les actualités et informations sur les technologies Microsoft principalement autour de .NET et SQL Server

Archives

SQL Server : Astuces pour améliorer les performances - Operating System

Suite à l’Audit SQL RAP fourni par un consultant de Microsoft, de nombreuses astuces de configuration ont été données. Je pense que ces différentes astuces sont utiles à tous.

Je vais donc essayer, à travers une suite de plusieurs messages, vous lister ces astuces. Ce premier message aura trait à un ensemble de paramètres liés à Windows.


Configurations de Windows


Mémoire virtuelle (Page File)

La taille de la mémoire virtuelle doit être fixée selon la règle suivante :

Pour définir ce paramètre, il faut aller dans les propriétés de Windows et choisir l’onglet “Advanced”, puis cliquer sur le bouton “Settings” de Performance :

image

Il faut alors savoir la taille de la RAM de votre serveur et avoir de la place disponible sur une partition (disque) de votre serveur (cela peut rester sur le C).

Dans cet écrand es performances, il faut choisir l’onglet “Advanced” et cliquer sur “Change” de la partie Virtual Memory :

Windows Server 2003
image

Windows Server 2008 R2
image

On fixe alors la taille selon le calcul précédent et fixe (même valeur max et min). On valide par OK et reboot le serveur si besoin.

image

Une fois la machine redémarrée, un fichier “pagefile.sys” sera présent à la racine de la partition choisie avec la taille définie précédemment.

image


Power Options de Windows

Sous Windows, il est possible de définir des options de performance, qui sont utiles pour limiter la consommation d’énergie. Le fait est que pour SQL Server, cela n’a pas de sens, car il s’agit d’un service qui doit être toujours au top des performances. Il faut donc modifier ce paramètre sur toutes les machines SQL Server.

Pour cela, il faut aller dans le panneau de configuration, et choisir “Power Options” :

image

De base, lors d’une installation classique de Windows 2008 R2, on trouve le paramètre choisi avec la valeur “Balanced” :

image

Il faut donc cliquer sur le lien au bas de la fenêtre “Change settings that are currently unavailable” et choisir “High Performance”

image


Paramètres réseau

Il ne faut jamais désactiver le protocole IPV6 des machines même si vous n’utiliser qu’IPV4 dans votre réseau.

image

Windows 2008 R2 utilise ce protocole en interne pour son fonctionnement :

Il faut ensuite désactiver l’utilisation de LMHOST Lookup (sous IPV4) pour un serveur SQL Server dédié (sauf contre-indication spécifique). Pour cela il faut aller dans les propriété d’IPV4 et cliquer sur Advanced, puis dans l’onglet WINS, on décoche la case :

image

Le serveur évitera alors de vérifier continuellement le fichier hosts présent dans System32 :

  • C:\Windows\System32\drivers\etc\hosts

image

Il faut aussi contrôler les paramètres des cartes réseau, car il existe parfois des options de performance/power options qui peuvent être comme pour Windows.


Configuration des Disques

Que l’on soit sur du Virtuel ou physique, la règle de base pour la configuration d’une machine SQL Server reste la même. Il faut toujours 4 partitions / Disques / LUN, si possible sur des connecteurs différents (même si ce n’est pas toujours possible).

Le nombre de ces partitions est simple, puisqu’il correspond à :

  • SYSTEM : 100 GB est une base correcte avec les machines actuelles)
  • DATA : la taille dépend de vos contenus
  • LOGS : en rapport avec le contenu, puisque la taille des logs varie suivant le volume de contenu qui est modifié par l’application (Ajout, suppression, changement)
  • TEMPDB : La base temporaire doit toujours être sur une LUN à part du reste.

La taille de la partition pour la base TEMPDB dépend de la taille de cette base. Elle représente 10 % de la somme de toutes les Bases de données hébergées sur l’instance en cours.

De ce fait, si vous avez un total estimé pour l’ensemble de vos Databases d’1 TB, vous pouvez fixer votre LUN TempDB à 150 GB.


Mise à jour de Windows

Cette question a été aprement discutée avec le consultant, surtout suite au nombre de problèmes rencontrés suite à l’installation de Patches et Service Packs.

Mais au final, un accord a été trouvé sur la stratégie suivante :

  • Installation de tous les patches de Sécurité (High Critical) de Windows : après une semaine de publication
  • Installation du dernier Service Pack de Windows : 1 mois après sa sortie
  • Installation du dernier Service Pack de SQL Server : 1 mois après sa sortie
  • Pas d’installation de Cumulative Update Pack (sauf si nécessaire pour cas particulier)

Attention, cette stratégie est la mienne propre et n’engage ni Microsoft, ni moi ou mon entreprise en cas de soucis. Ceci doit être défini dans votre propre structure selon votre criticité.


Conclusion

Ce premier message, nous avons vu comment faire un tuning de certains paramètres de Windows afin de bénéficier d’une configuration idéale pour le moteur SQL Server. Nous verrons dans de prochains messages comment améliorer les performances en modifiant les paramètres du moteur SQL Server lui-même.

Romelard Fabrice [MVP]

Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :
Posted: lundi 24 septembre 2012 15:53 par ROMELARD Fabrice

Commentaires

JeremyJeanson a dit :

Je n'étais pas du tout au courant pour la RAM sur un système x64 et pour l'IPv6.

Ceci est très instructif, merci Fabrice.

# septembre 25, 2012 09:46

lognoulm a dit :

Bonjour,

Je reste sceptique sur trois points :

1) Sur un serveur 64-bit, configurer le page file à une taille équivalente à RAM + 10 MB n’a de sens que si on veut pouvoir procéder à des dumps complets en cas de BSOD. Mais qui fait ça de nos jours à par le support MS et les constructeurs de matériel ? Il n’est pas rare de voir des SQL équipés de 64 à 254 GB de mémoire de nos jours, quelle serait donc la valeur ajouter de les affubler d’un fichier d’échange d’une taille équivalente en terme de performance sinon de réduire celle-ci de manière catastrophique (la sur-pagination va étrangler la machine). Il est préférable de suivre la guidance de l’article http://support.microsoft.com/kb/889654 en mesurant la taille idéale (qui est souvent bien moindre que ce que l’on pourrait croire). Je n’ose même pas aborder le sujet des organisations les plus paranoïaques qui procèdent à la vidange du fichier d’échange lors de l’arrêt de leurs serveurs…

2) Désactiver « LMHOSTS lookup » n’empêchera que l’utilisation du fichier LMHOSTS et non celle du HOSTS. Pour désactiver celle-ci il faut soit vider ce dernier soit modifier sa pondération dans les services providers TCP/IP. Mais finalement, quelle serait la valeur ajoutée en termes de performance ?

3) L’installation de MAJ Windows décrites  joue rarement un rôle au niveau des performances. Par contre, les MAJ de pilotes, microcodes etc incontestablement oui. C’est fréquemment sous-estimé. Surtout dans le cas de la virtualisation ou l’on pense à tort qu’aucune maintenance n’est nécessaire alors que c’est le cas au niveau du host et du guest

Bonne journée,

Marc

# octobre 4, 2012 15:10

ROMELARD Fabrice a dit :

Merci pour toutes ces remarques constructives qui enrichissent encore plus ce message.

En regardant sur le net on trouve l'explication pour le HOST File :

- http://support.microsoft.com/kb/105997

Fabrice

# octobre 5, 2012 15:36

ROMELARD Fabrice a dit :

Un autre article sur le sujet :

- http://www.pimpmysharepoint.com/2013/03/18/bonne-pratiques-mssql-avec-sharepoint/

Fabrice Romelard [MVP]

# mars 19, 2013 13:07
Les commentaires anonymes sont désactivés

Les 10 derniers blogs postés

- Merci par Blog de Jérémy Jeanson le 10-01-2019, 20:47

- Office 365: Script PowerShell pour auditer l’usage des Office Groups de votre tenant par Blog Technique de Romelard Fabrice le 04-26-2019, 11:02

- Office 365: Script PowerShell pour auditer l’usage de Microsoft Teams de votre tenant par Blog Technique de Romelard Fabrice le 04-26-2019, 10:39

- Office 365: Script PowerShell pour auditer l’usage de OneDrive for Business de votre tenant par Blog Technique de Romelard Fabrice le 04-25-2019, 15:13

- Office 365: Script PowerShell pour auditer l’usage de SharePoint Online de votre tenant par Blog Technique de Romelard Fabrice le 02-27-2019, 13:39

- Office 365: Script PowerShell pour auditer l’usage d’Exchange Online de votre tenant par Blog Technique de Romelard Fabrice le 02-25-2019, 15:07

- Office 365: Script PowerShell pour auditer le contenu de son Office 365 Stream Portal par Blog Technique de Romelard Fabrice le 02-21-2019, 17:56

- Office 365: Script PowerShell pour auditer le contenu de son Office 365 Video Portal par Blog Technique de Romelard Fabrice le 02-18-2019, 18:56

- Office 365: Script PowerShell pour extraire les Audit Log basés sur des filtres fournis par Blog Technique de Romelard Fabrice le 01-28-2019, 16:13

- SharePoint Online: Script PowerShell pour désactiver l’Option IRM des sites SPO non autorisés par Blog Technique de Romelard Fabrice le 12-14-2018, 13:01