Get Hands-on with Amazon EKS - Workshop Event Series
Whether you're taking your first steps with Kubernetes or you're an experienced practitioner looking to sharpen your skills, our Amazon EKS workshop series delivers practical, real-world experience that moves you forward. Learn directly from AWS solutions architects and EKS specialists through hands-on sessions designed to build your confidence with Kubernetes. Register now and start building with Amazon EKS!
Comment résoudre les problèmes liés à la faible quantité de mémoire disponible dans mon instance RDS for SQL Server ?
Je souhaite résoudre les problèmes liés au manque de mémoire disponible dans mon instance Amazon Relational Database (Amazon RDS) for SQL Server.
Résolution
Surveiller l'utilisation de la mémoire dans votre instance
Pour surveiller votre utilisation de mémoire, vous pouvez utiliser les métriques Amazon CloudWatch ou la surveillance améliorée.
Utiliser les métriques CloudWatch
Pour identifier la mémoire insuffisante, utilisez la console Amazon RDS pour surveiller la métrique CloudWatch FreeableMemory.
Pour identifier une augmentation de la charge de travail lorsque la mémoire disponible est faible, surveillez les métriques suivantes :
- DatabaseConnections
- CPUUtilization
- ReadIOPS
- ReadThroughput
- WriteIOPS
- WriteThroughput
Pour plus d'informations sur les métriques précédentes, consultez la section Métriques au niveau de l'instance Amazon CloudWatch pour Amazon RDS.
Activez la surveillance améliorée.
Pour surveiller les métriques du système d'exploitation (OS) pour Microsoft SQL Server, utilisez la surveillance améliorée. Lorsque vous activez la surveillance améliorée, vous pouvez définir l'intervalle de collecte des métriques sur 1, 5, 10, 15, 30 ou 60 secondes. La granularité par défaut est de 60 secondes, mais il est recommandé de définir la granularité sur 1 ou 5 secondes.
Vous pouvez également utiliser la surveillance améliorée pour créer des alarmes CloudWatch afin de surveiller l'utilisation de la mémoire de mon instance de base de données Amazon RDS for SQL Server.
Limiter la mémoire utilisée par l'instance Amazon RDS
Déterminez la valeur de max_server_memory pour votre instance, puis définissez la valeur max_server_memory sur une valeur qui n'entraîne pas de pression de mémoire à l'échelle du système.
Déterminer la valeur de max_server_memory
Utilisez le calcul suivant pour déterminer la valeur de max_server_memory pour votre instance :
max_server_memory = total_RAM - (1 Go pour le système d’exploitation + memory_basis_amount_of_RAM_on_the_server)
total_RAM est égal à la mémoire de type d’instance totale.
memory_basis_amount_of_RAM_on_the_server est déterminé comme suit :
-
Si la RAM du serveur est comprise entre 4 et 16 Go, conservez 1 Go pour 4 Go de RAM. Par exemple, conservez 4 Go pour un serveur doté de 16 Go de RAM.
-
Si la RAM du serveur est supérieure à 16 Go, conservez 1 Go par 4 Go de RAM jusqu'à 16 Go. Conservez 1 Go pour 8 Go de RAM supérieurs à 16 Go.
Par exemple, si un serveur dispose de 64 Go de RAM, le calcul de la valeur de max_server_memory est le suivant :
- 1 Go pour le système d'exploitation
- Jusqu'à 16 Go de RAM : 16/4 = 4 Go
- RAM restante supérieure à 16 Go : (64-16) /8 = 6 Go
- (1 Go pour le système d’exploitation + memory_basis_amount_of_RAM_on_the_server) = 1 + 4 + 6 = 11 Go
- max_server_memory : 64 - 11 = 53 Go
Définir le paramètre max_server_memory
Pour modifier la valeur de max_server_memory, utilisez un groupe de paramètres personnalisés pour configurer la valeur. Indiquez la valeur de max_server_memory dans la mémoire maximale du serveur (Mo). Étant donné que max_server_memory est un paramètre dynamique, il n'est pas nécessaire de redémarrer pour que les modifications soient prises en compte.
Remarque : Après avoir configuré max_server_memory, vous devez surveiller continuellement FreeableMemory pour déterminer s'il faut augmenter ou diminuer la mémoire allouée.
Vérifier si vous utilisez les options SSIS, SSAS ou SSRS sur l'instance de base de données
Vérifiez votre groupe d'options RDS pour déterminer si vous utilisez les options SQL Server Integration Services (SSIS), SQL Server Analysis Services (SSAS) ou SQL Server Reporting Services (SSRS) sur l'instance de base de données. La mémoire utilisée par les options existe en dehors du paramètre max_server_memory et augmente l'empreinte mémoire de l'instance. Si vous n'utilisez pas ces options, modifiez le groupe d'options pour les supprimer.
Remarque : Si vous utilisez SSIS, SSAS ou SSRS sur l'instance, vous devez ajuster max_server_memory en fonction des options.
Par exemple, si vous utilisez SSRS, définissez la valeur de Volume de mémoire maximal de SSRS sur 10 % de la mémoire totale de l'instance de base de données. Par exemple, 10 % sur une instance dotée de 64 GiB de mémoire équivaut à environ 6,4 GiB. Réglez donc la valeur de max_server_memory à environ 46 GiB (64 - 11 - 6,4 = 46 GiB).
Vérifier les connexions à la base de données
Chaque connexion à la base de données que vous établissez avec l'instance nécessite une allocation de mémoire en dehors du pool de mémoires tampons pour les threads de composant master. Par conséquent, un pic de DatabaseConnections peut entraîner une diminution de la mémoire disponible.
Surveiller l'instance de base de données avec Performance Insights
Vous pouvez utiliser Performance Insights pour analyser les performances de votre base de données et identifier les goulots d'étranglement potentiels qui ralentissent l'instance. Utilisez le tableau de bord Performance Insights pour surveiller le chargement de la base de données, les attentes, les requêtes, les hôtes et les utilisateurs.
Effectuer une maintenance régulière sur l'instance de base de données
Effectuez une maintenance régulière de l'index et maintenez les statistiques à jour. Les index très fragmentés peuvent augmenter l'activité d'I/O et entraîner une utilisation accrue de la mémoire. En outre, des statistiques obsolètes peuvent entraîner une estimation de cardinalité inexacte et amener la base de données à sélectionner un plan de requête sous-optimal. Pour plus d'informations, consultez la page Optimiser la maintenance des index pour améliorer les performances de requête et réduire la consommation de ressources sur le site Web de Microsoft. Consultez également la page STATISTIQUES DE MISE À JOUR (Transact-SQL) sur le site Web de Microsoft.
Remarque : Il est recommandé d'effectuer la maintenance des index et des statistiques en dehors des heures de pointe ou pendant une fenêtre de maintenance.
Surveiller la PLE et le BCHR
Pour identifier la pression de mémoire, surveillez l'espérance de vie d’une page (PLE) et le taux d'accès du cache tampon (BCHR). Pour des performances optimales, vérifiez que les valeurs de PLE et de BCHR sont aussi élevées que possible. Si les valeurs de PLE et de BCHR sont constamment faibles sur une période donnée, réglez les requêtes qui accèdent aux données ou augmentez la classe d'instance pour fournir plus de mémoire.
Pour utiliser Performance Insights afin de surveiller les métriques, procédez comme suit :
- Ouvrez la console Amazon RDS.
- Dans le volet de navigation, choisissez Performance Insights.
- Utilisez le champ de recherche Filtrer une instance de base de données pour sélectionner l'instance que vous souhaitez surveiller.
- Définissez la période pour laquelle vous souhaitez consulter les métriques.
- Dans le tableau de bord des métriques, sélectionnez Tableau de bord personnalisé - Base de données SQL Server, puis choisissez Ajouter le premier widget.
- Dans le champ de recherche Filtrer les métriques par nom, catégorie ou identifiant, recherchez l’espérance de vie d’une page, puis sélectionnez-la.
- Choisissez Ajouter un widget.
- Répétez les étapes 6 et 7 pour sélectionner Taux d'accès au cache des tampons pour le tableau de bord personnalisé.
Pour plus d'informations sur la PLE et le BCHR, consultez la page Objets de performance du gestionnaire de mémoire tampon sur le site Web de Microsoft.
Lorsque la mémoire de l'instance est sollicitée et que la PLE et le BCHR sont faibles, l'attente PAGEIOLATCH augmente. Microsoft SQL Server attend qu'une page soit chargée depuis le disque vers la mémoire. Vous pouvez également voir l'attente RESOURCE_SEMAPHORE lorsque la demande de mémoire d'une requête échoue en raison d'une mémoire insuffisante. L'utilisation du processeur augmente alors car les pages de données ne sont pas mises en cache suffisamment longtemps dans la mémoire. Dans ce cas, Microsoft SQL Server doit accéder à plusieurs reprises aux données du disque.
Sélectionner la taille d'instance adaptée à votre charge de travail
La quantité de mémoire d'une instance dépend du type d'instance. Assurez-vous de sélectionner une classe d'instance dotée de ressources suffisantes afin que l'instance de base de données dispose d’un nombre suffisant de ressources pour la charge de travail. Lorsqu'une instance dispose de moins de ressources, vous rencontrez des problèmes de performance. Une instance surdimensionnée consomme inutilement des ressources.
Par exemple, la classe d'instance db.r5.8xlarge fournit 32 processeurs virtuels et 256 Go de mémoire. Lorsque vous provisionnez une instance Amazon RDS avec db.r5.8xlarge, les ressources suivantes partagent les 256 Go de mémoire sur la classe d'instance :
- Le système d'exploitation
- Les processus Amazon RDS
- Le moteur de base de données
- Les threads de composant master
- Les applications de la suite Business Intelligence, telles que SSIS, SSAS et SSRS.
Pour plus d'informations sur la manière dont Microsoft SQL Server utilise la mémoire, consultez le guide de l'architecture de gestion de la mémoire sur le site Web de Microsoft.
Référencer votre utilisation des ressources
Pour évaluer l'utilisation des ressources sur l'instance, surveillez des métriques telles que FreeableMemory, Espérance de vie d’une page et Taux d'accès au cache de la mémoire tampon. Si le volume de données augmente de manière significative sur l'instance, augmentez la valeur de max_server_memory. Veillez à augmenter la valeur de max_server_memory proportionnellement à la modification du volume de données afin de maintenir le même niveau de performance sur l'instance.
Remarque : Pour identifier les composants qui utilisent la mémoire dans SQL Server, vous pouvez utiliser les outils SQL Server, tels que les rapports et les DMV.
Pour utiliser SQL Server Management Studio (SSMS) afin de vérifier l'utilisation de la mémoire de SQL Server, procédez comme suit :
- Ouvrez SSMS, puis connectez-vous à votre instance Amazon RDS for SQL Server.
- Dans l’Explorateur d’objets, cliquez avec le bouton droit sur le nom du point de terminaison d'instance Amazon RDS.
- Choisissez Rapports, Rapports standard, Consommation de mémoire.
Pour télécharger SSMS, consultez la page Télécharger SQL Server Management Studio (SSMS) sur le site Web de Microsoft.
Vous pouvez également interroger sys.dm_os_memory_clerks pour identifier les composants qui utilisent le maximum de mémoire dans SQL Server. Pour plus d'informations, consultez les pages sys.dm_os_memory_clerks (Transact-SQL) et Utilisation de la mémoire interne par le moteur SQL Server sur le site Web de Microsoft.
- Langue
- Français

Contenus pertinents
- demandé il y a 3 ans
- demandé il y a 2 ans
- demandé il y a un an
- demandé il y a 2 ans