web-dev-qa-db-fra.com

Emplacement du fichier SQL Server Page - Où le mettre?

Il y a beaucoup de recommandations sur le dimensionnement du fichier de page Windows. Ce que je cherche, c'est le bon placement.

Nous exécutons un serveur MS SQL sur un serveur 2012r2 VM avec plusieurs disques virtuels séparés:

  • Disque Windows
  • un disque où l'application SQL Server est installée
  • un disque pour les fichiers de données SQL (MDF/NDF)
  • un disque pour le fichier journal de transaction (LDF)
  • un disque pour des sauvegardes manuelles et d'autres éléments temporaires.

Pour le moment, Windows a contrôlé sur le fichier de page. Il l'a dimensionné à 38 Go (la mémoire est de 265) et placé sur le disque avec le fichier journal. Pour ma compréhension, ce placement n'est pas logique: le disque contenant le fichier journal de transaction SQL est le disque avec les E/S les plus lourds sur un serveur SQL. Est-ce vraiment le meilleur emplacement pour le fichier de page? En ce qui concerne l'espace de stockage, je pourrais facilement déplacer le fichier sur un autre lecteur.

Je sais, Windows peut avoir une raison de placer le fichier là-bas - mais si oui, que pourrait-il être? Ou je me trompe avec ma pensée?

5
Tobias

Avant de vous inquiéter de la taille du fichier de page ....

Pour être honnête, vous jamais Vous voulez que votre serveur SQL commence à pagrer. SQL Server a une tendance à faire de la forme de poire lorsque la mémoire est pagaie sur le disque.

Meilleure pratique pour SQL Server est de définir le Max Server Memory Configuration à un numéro suffisamment grand pour SQL Server pour avoir suffisamment de mémoire, mais suffisamment faible que votre système d'exploitation et tout ce qui fonctionnant sur le serveur a suffisamment de mémoire. Il y a de grands conseils sur la manière de la configurer ici , et ici .

Pour un serveur avec une mémoire de 256 Go, et seulement SQL Server exécuté sur le serveur, je vous suggère de commencer par la mémoire Max Server configuré à 235929 Mo, ce qui permet environ 25 Go de la marge de haine. Cela devrait être suffisant pour prévenir la pagination.

EXEC sys.sp_configure 'max server memory (MB)', '235929'; 
RECONFIGURE;

Qu'est-ce que l'Internet dit à propos de ce fichier de page ...

Il y a beaucoup de conseils sur Internet disant que votre fichier de page doit être de 1,5 fois la taille de votre mémoire. Sur un serveur avec 256 Go de mémoire, cela appellerait un fichier de page de 386 Go. Vous souhaiteriez que ce fichier de page sur un lecteur séparé de vos fichiers de données et journaux (sinon la pagination dans vos lecteurs de données/journaux exacerbera vos problèmes de performance causés par la pagination). Votre C:\Drive n'est probablement pas assez grand pour cela, sauf si vous construisez des serveurs avec 512 Go C:\lecteurs. Vous voudrez également que le lecteur soit rapide (sinon la pagination à un disque lent exacerbera vos problèmes de performance causés par la pagination). Probablement, vous aurez besoin d'un disque dédié pour ce fichier de page 1.5x.

Ce conseil suppose que vous voulez votre serveur à la page. Vous ne voulez pas que votre serveur soit à la page. SQL Server peut s'écraser lorsqu'il commence à faire une pagination et que si ce n'est pas votre performance, vous risquerrez de crawler. Vous pouvez acheter une sorte de lecteur de NVME Super-Fast pour votre fichier de page et que cela rendra probablement une performance acceptable.

Internet est faux.

Ce que je dis sur ce fichier de page ...

Je ne me soucie même pas à quel point c'est grand. Je ne vais jamais l'utiliser. Cela peut être assez petit. Il peut être sur le C:\Drive. Le lecteur C:\peut être lent.

  • Assurez-vous de définir correctement la mémoire Max Server (voir ci-dessus)
  • Si votre serveur a besoin de plus de mémoire, installez plus de mémoire sur le serveur - Ne faites pas la page sur le disque.
  • Vous devez déplacer votre fichier de page sur le lecteur journal et sur c :. Si Vous l'utilisez, vous en voulez des lecteurs de données/journaux. Si vous devez le faire plus petit Pour tenir compte de C: \, allez-y.
  • Ne dépensez pas d'argent sur des disques rapides pour votre fichier de page - dépensez cet argent sur un autre bâton de RAM.

Dans le cas où le système se bloque et produit des décharges de la mémoire, mon pageFile ne sera probablement pas suffisamment grande pour gérer cette décharge. Mais sur les systèmes avec de grandes quantités de mémoire, le dumping 1TB de mémoire sur le disque pour ce décharge de crash prendra une longue période, même sur des disques rapides, et je préfère généralement obtenir le SQL Server en ligne rapidement qui capturent le dépotoir de crash. Je peux reconfigurer un serveur avec des problèmes récurrents dans le dépannage.

3
AMtwo

Ne mettez pas le fichier de page Windows (pageFile.sys) sur le même disque où se trouvent la base de données ou des fichiers journaux. Vous pouvez le laisser sur le lecteur système ou attribuer un nouveau lecteur pour cela. Si le stockage du variateur du système est SSD, vous pouvez laisser le fichier de page qui y réside et définir la taille de départ de la base de fichier de page sur le montant RAM x 1.5.

2
Alberto Morillo