Estimez la taille RDS du moteur Amazon pour une base de données Oracle à l'aide de AWR rapports - Recommandations AWS

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Estimez la taille RDS du moteur Amazon pour une base de données Oracle à l'aide de AWR rapports

Créé par Abhishek Verma (AWS) et Eduardo Valentim () AWS

Environnement : Production

Source : base de données Oracle

Cible : Amazon RDS ou Amazon Aurora

Type R : Ré-architecte

Charge de travail : Oracle

Technologies : bases de données ; migration

AWSservices : Amazon RDS ; Amazon Aurora

Récapitulatif

Lorsque vous migrez une base de données Oracle vers Amazon Relational Database Service (Amazon) ou RDS Amazon Aurora, CPU le calcul des E/S, de la mémoire et du disque pour la base de données cible est une exigence essentielle. Vous pouvez estimer la capacité requise de la base de données cible en analysant les rapports Oracle Automatic Workload Repository (AWR). Ce modèle explique comment utiliser AWR les rapports pour estimer ces valeurs.

La base de données Oracle source peut être sur site ou hébergée sur une instance Amazon Elastic Compute Cloud (AmazonEC2), ou il peut s'agir d'une instance de base de données Amazon RDS pour Oracle. La base de données cible peut être n'importe quelle base de données Amazon RDS ou Aurora.

Remarque : Les estimations de capacité seront plus précises si votre moteur de base de données cible est Oracle. Pour les autres RDS bases de données Amazon, la taille du moteur peut varier en raison des différences d'architecture de base de données.

Nous vous recommandons d'exécuter le test de performance avant de migrer votre base de données Oracle.

Conditions préalables et limitations

Prérequis

  • Une licence Oracle Database Enterprise Edition et une licence Oracle Diagnostics Pack pour télécharger AWR des rapports.

Versions du produit

  • Toutes les éditions d'Oracle Database pour les versions 11g (versions 11.2.0.3.v1 et ultérieures) et jusqu'à 12.2, et 18c,19c.

  • Ce modèle ne couvre pas les systèmes Oracle Engineered ou Oracle Cloud Infrastructure (OCI).

Architecture

Pile technologique source

L’un des éléments suivants :

  • Une base de données Oracle sur site

  • Une base de données Oracle sur une EC2 instance

  • Une instance de base RDS de données Amazon pour Oracle

Pile technologique cible

  • N'importe quelle base de données Amazon RDS ou Amazon Aurora

Architecture cible

Pour plus d'informations sur le processus de migration complet, consultez le modèle Migrer une base de données Oracle vers Aurora Postgre à SQL l'aide de AWS DMS et AWS SCT.

Automatisation et mise à l'échelle

Si vous avez plusieurs bases de données Oracle à migrer et que vous souhaitez utiliser des indicateurs de performance supplémentaires, vous pouvez automatiser le processus en suivant les étapes décrites dans le billet de blog Ajustement de la taille des RDS instances Amazon à grande échelle en fonction des indicateurs de performance Oracle.

Outils

  • Oracle Automatic Workload Repository (AWR) est un référentiel intégré aux bases de données Oracle. Il collecte et stocke périodiquement les données relatives à l'activité du système et à la charge de travail, qui sont ensuite analysées par Automatic Database Diagnostic Monitor (ADDM). AWRprend régulièrement des instantanés des données de performance du système (par défaut, toutes les 60 minutes) et stocke les informations (par défaut, jusqu'à 8 jours).  Vous pouvez utiliser des AWR vues et des rapports pour analyser ces données.

Bonnes pratiques

  • Pour calculer les besoins en ressources de votre base de données cible, vous pouvez utiliser un seul AWR rapport, plusieurs AWR rapports ou des AWR vues dynamiques. Nous vous recommandons d'utiliser plusieurs AWR rapports pendant la période de pointe afin d'estimer les ressources nécessaires pour gérer ces pics de charge. En outre, les vues dynamiques fournissent davantage de points de données qui vous aident à calculer les besoins en ressources avec plus de précision. 

  • Vous devez effectuer une estimation IOPS uniquement pour la base de données que vous prévoyez de migrer, et non pour les autres bases de données et processus utilisant le disque.

  • Pour calculer la quantité d'E/S utilisée par la base de données, n'utilisez pas les informations de la section Profil de charge du AWR rapport. Utilisez plutôt la section Profil d'E/S, si elle est disponible, ou passez directement à la section Statistiques d'activité de l'instance et examinez les valeurs totales des opérations physiques de lecture et d'écriture.

  • Lorsque vous estimez CPU l'utilisation, nous vous recommandons d'utiliser la méthode des métriques de base de données au lieu des statistiques du système d'exploitation (OS), car elle est basée sur les données CPU utilisées uniquement par les bases de données. (Les statistiques du système d'exploitation incluent également CPU l'utilisation par d'autres processus.) Vous devez également consulter les CPU recommandations connexes du ADDM rapport afin d'améliorer les performances après la migration.

  • Tenez compte des limites de débit d'E/S (débit Amazon Elastic Block Store (AmazonEBS) et débit réseau) pour la taille spécifique de l'instance lorsque vous déterminez le type d'instance approprié.

  • Exécutez le test de performance avant la migration pour valider la cylindrée du moteur.

Épopées

TâcheDescriptionCompétences requises

Activez le AWR rapport.

Pour activer le rapport, suivez les instructions de la documentation Oracle.

DBA

Vérifiez la durée de conservation.

Pour vérifier la durée de conservation du AWR rapport, utilisez la requête suivante.

SQL> SELECT snap_interval,retention FROM dba_hist_wr_control;
DBA

Générez le cliché.

Si l'intervalle entre les AWR instantanés n'est pas suffisamment précis pour capturer le pic de charge de travail, vous pouvez générer le AWR rapport manuellement. Pour générer le AWR cliché manuel, utilisez la requête suivante.

SQL> EXEC dbms_workload_repository.create_snapshot;
DBA

Vérifiez les instantanés récents.

Pour vérifier les AWR instantanés récents, utilisez la requête suivante.

SQL> SELECT snap_id, to_char(begin_interval_time,'dd/MON/yy hh24:mi') Begin_Interval, to_char(end_interval_time,'dd/MON/yy hh24:mi') End_Interval FROM dba_hist_snapshot ORDER BY 1;
DBA
TâcheDescriptionCompétences requises

Choisissez une méthode.

IOPSest la mesure standard des opérations d'entrée et de sortie par seconde sur un périphérique de stockage et inclut les opérations de lecture et d'écriture. 

Si vous migrez une base de données locale versAWS, vous devez déterminer le pic d'E/S disque utilisé par la base de données. Vous pouvez utiliser les méthodes suivantes pour estimer les E/S de disque pour votre base de données cible :

  • Section du AWR rapport consacrée au profil de charge

  • Section du AWR rapport consacrée aux statistiques d'activité des instances (utilisez cette section pour Oracle Database 12c ou version ultérieure)

  • Section du AWR rapport consacrée au profil d'E/S (utilisez cette section pour les versions de base de données Oracle antérieures à 12c)

  • AWRvues

Les étapes suivantes décrivent ces quatre méthodes.

DBA

Option 1 : utilisez le profil de charge.

Le tableau suivant montre un exemple de la section Profil de charge du AWR rapport.

Important : pour des informations plus précises, nous vous recommandons d'utiliser l'option 2 (profils d'E/S) ou l'option 3 (statistiques d'activité de l'instance) au lieu du profil de charge.

 

Par seconde

Par transaction

Par Exec

Par appel

Heure (s) de base de données :

26,6

0.2

0,00

0,02

Base CPU (s) de données :

18,0

0.1

0,00

0,01

Contexte CPU (s) :

0.2

0.0

0,00

0,00

Taille de rétablissement (octets) :

2 458 539,9

17 097,5

 

 

Lecture logique (blocs) :

3 371 931,5

23 449,6

 

 

Bloquer les modifications :

21 643,5

150,5

 

 

Lecture physique (blocs) :

13 575,1

94,4

 

 

Écriture physique (blocs) :

3 467,3

24.1

 

 

Lisez les demandes d'E/S :

3 586,8

24,9

 

 

Rédigez des demandes d'E/S :

574,7

4.0

 

 

Lire l'IO (Mo) :

106,1

0.7

 

 

Écrire IO (Mo) :

27.1

0.2

 

 

Lignes de numérisation par messagerie instantanée :

0.0

0.0

 

 

Messagerie instantanée de lecture logique de session :

 

 

 

 

Appels de l'utilisateur :

1 245,7

8,7

 

 

Analyses (SQL) :

4 626,2

32,2

 

 

Analyses complexes (SQL) :

8,9

0.1

 

 

SQLZone de travail (MB) :

824,9

5.7

 

 

Connexions :

1,7

0.0

 

 

Exécute (SQL) :

136 656,5

950,4

 

 

Annulations :

22,9

0.2

 

 

Transactions :

143,8

 

 

 

Sur la base de ces informations, vous pouvez calculer IOPs le débit comme suit :

IOPS= Lire les demandes d'E/S : + Écrire des demandes d'E/S = 3 586,8 + 574,7 = 4134,5

Débit = lecture physique (blocs) + écriture physique (blocs) = 13 575,1 + 3 467,3 = 17 042,4

La taille des blocs dans Oracle étant de 8 Ko, vous pouvez calculer le débit total comme suit :

Le débit total en Mo est de 17042,4 * 8 * 1024/1024/1024 = 133,2 Mo

Avertissement : N'utilisez pas le profil de charge pour estimer la taille de l'instance. Ce n'est pas aussi précis que les statistiques d'activité des instances ou les profils d'E/S.

DBA

Option 2 : utiliser les statistiques d'activité de l'instance.

Si vous utilisez une version d'Oracle Database antérieure à 12c, vous pouvez utiliser la section Statistiques d'activité des instances du AWR rapport pour estimer IOPS le débit. Le tableau suivant présente un exemple de cette section.

Statistique

Total

par seconde

par Trans

nombre total de demandes d'E/S en lecture physique

2 547 333 217

3 610,28

25,11

nombre total d'octets de lecture physique

80 776 296 124 928

114 482 426,26

796 149,98

nombre total de demandes d'E/S en écriture physique

534 198 208

757,11

5,27

nombre total d'octets en écriture physique

25 517 678 849 024

36 165 631,84

251 508,18

Sur la base de ces informations, vous pouvez calculer le total IOPS et le débit comme suit :

Total IOPS = 3 610,28 + 757,11 = 4367

Mbits/s totaux = 114 482 426,26 + 36 165 631,84 = 150648058,1/1024/1024 = 143 Mbits/s

DBA

Option 3 : utiliser des profils d'E/S.

Dans Oracle Database 12c, le AWR rapport inclut une section Profils d'E/S qui présente toutes les informations dans un seul tableau et fournit des données plus précises sur les performances de la base de données. Le tableau suivant présente un exemple de cette section.

 

Lecture+écriture par seconde

Lecture par seconde

Écrire par seconde

Nombre total de demandes :

4 367,4

3 610,3

757,1

Demandes de base de données :

4 161,5

3 586,8

574,7

Demandes optimisées :

0.0

0.0

0.0

Demandes de rétablissement :

179,3

2,8

176,6

Total (Mo) :

143,7

109,2

34,5

Base de données (MB) :

133,1

106,1

27.1

Total optimisé (Mo) :

0.0

0.0

0.0

Rétablir (Mo) :

7.6

2.7

4,9

Base de données (blocs) :

17 042,4

13 575,1

3 467,3

Via le cache tampon (blocs) :

5 898,5

5 360,9

537,6

Direct (blocs) :

11 143,9

8 214,2

2 929,7

Ce tableau fournit les valeurs suivantes pour le débit et le total IOPS :

Débit = 143 MBPS (à partir de la cinquième ligne, intitulée Total, deuxième colonne)

IOPS= 4 367,4 (à partir de la première ligne, intitulée Total des demandes, deuxième colonne)

DBA

Option 4 : Utiliser les AWR vues.

Vous pouvez voir les mêmes informations IOPS et les informations de débit à l'aide des AWR vues. Pour obtenir ces informations, utilisez la requête suivante : 

break on report compute sum of Value on report select METRIC_NAME,avg(AVERAGE) as "Value" from dba_hist_sysmetric_summary where METRIC_NAME in ('Physical Read Total IO Requests Per Sec','Physical Write Total IO Requests Per Sec') group by metric_name;
DBA
TâcheDescriptionCompétences requises

Choisissez une méthode.

Vous pouvez estimer le montant CPU requis pour la base de données cible de trois manières :

  • En utilisant les cœurs réellement disponibles du processeur

  • En utilisant les cœurs utilisés en fonction des statistiques du système d'exploitation

  • En utilisant les cœurs utilisés sur la base des statistiques de la base de données

Si vous examinez les cœurs utilisés, nous vous recommandons d'utiliser la méthode des métriques de base de données plutôt que des statistiques du système d'exploitation, car elle est basée sur les données CPU utilisées uniquement par les bases de données que vous envisagez de migrer. (Les statistiques du système d'exploitation incluent également CPU l'utilisation par d'autres processus.) Vous devez également consulter les CPU recommandations connexes du ADDM rapport afin d'améliorer les performances après la migration.

Vous pouvez également estimer les besoins en fonction de la CPU génération. Si vous utilisez différentes CPU générations, vous pouvez estimer les besoins CPU de la base de données cible en suivant les instructions du livre blanc Démystifier le nombre de pour des performances de charge de vCPUs travail optimales.

DBA

Option 1 : Estimer les besoins en fonction des noyaux disponibles.

Dans AWR les rapports :

  • CPUsfont référence à logique et virtuelCPUs. 

  • Les cœurs sont le nombre de processeurs d'un CPU chipset physique. 

  • Un socket est un dispositif physique qui connecte une puce à une carte. Les processeurs multicœurs ont des sockets à plusieurs CPU cœurs.

Vous pouvez estimer les noyaux disponibles de deux manières :

  • En utilisant les commandes du système d'exploitation

  • En utilisant le AWR rapport

Pour estimer les cœurs disponibles à l'aide des commandes du système d'exploitation

Utilisez la commande suivante pour compter les cœurs du processeur.

$ cat /proc/cpuinfo |grep "cpu cores"|uniq cpu cores : 4 cat /proc/cpuinfo | egrep "core id|physical id" | tr -d "\n" | sed s/physical/\\nphysical/g | grep -v ^$ | sort | uniq | wc -l

Utilisez la commande suivante pour compter le nombre de sockets du processeur.

grep "physical id" /proc/cpuinfo | sort -u physical id : 0 physical id : 1

Remarque : nous ne recommandons pas d'utiliser les commandes du système d'exploitation telles que nmon et sar pour extraire CPU l'utilisation. Cela est dû au fait que ces calculs incluent CPU l'utilisation par d'autres processus et peuvent ne pas refléter l'utilisation réelle CPU de la base de données.

Pour estimer les cœurs disponibles à l'aide du AWR rapport

Vous pouvez également déduire CPU l'utilisation à partir de la première section du AWR rapport. Voici un extrait du rapport.

DB Name

ID de base de données

Instance

Insérer un numéro

Heure de démarrage

Version

RAC

XXXX

<DB_ID>

XXXX

1

05 sept. 20 à 23:09

12.1.0.2.0

NO

Nom d'hôte

Plateforme

CPUs

Noyaux

Douilles

Mémoire (Go)

<host_name>

Linux x86 64 bits

80

80

2

441,78

Dans cet exemple, le CPUs nombre est de 80, ce qui indique qu'ils sont logiques (virtuels)CPUs. Vous pouvez également constater que cette configuration comporte deux sockets, un processeur physique sur chaque socket (pour un total de deux processeurs physiques) et 40 cœurs pour chaque processeur physique ou socket. 

DBA

Option 2 : Estimez CPU l'utilisation à l'aide des statistiques du système d'exploitation.

Vous pouvez vérifier les statistiques CPU d'utilisation du système d'exploitation soit directement dans le système d'exploitation (à l'aide de sar ou d'un autre utilitaire du système d'exploitation hôte), soit en consultant les valeursIDLE/(IDLE+BUSY) de la section Statistiques du système d'exploitation du AWR rapport. Vous pouvez voir les secondes CPU consommées directement depuis v$osstat. Les rapports AWR et Statspack affichent également ces données dans la section Statistiques du système d'exploitation.

Si plusieurs bases de données se trouvent sur la même boîte, elles ont toutes les mêmes valeurs v$osstat pour _. BUSY TIME

Statistique

Valeur

Valeur finale

FREE_MEMORY_BYTES

6 810 677 248

12 280 799 232

INACTIVE_MEMORY_BYTES

175 627 333 632

160 380 653 568

SWAP_FREE_BYTES

17 145 614 336

17 145 872 384

BUSY_TIME

1 305 569 937

 

IDLE_TIME

4 312 718 839

 

IOWAIT_TIME

53 417 174

 

NICE_TIME

29 815

 

SYS_TIME

148 567 570

 

USER_TIME

1 146 918 783

 

LOAD

25

29

VM_IN_ BYTES

593 920

 

VM__ OUT BYTES

327 680

 

PHYSICAL_MEMORY_BYTES

474 362 417 152

 

NUM_CPUS

80

 

NUM_CPU_CORES

80

 

NUM_CPU_SOCKETS

2

 

GLOBAL_RECEIVE_SIZE_MAX

4 194 304

 

GLOBAL_SEND_SIZE_MAX

2 097 152

 

TCP_RECEIVE_SIZE_DEFAULT

87 380

 

TCP_RECEIVE_SIZE_MAX

6 291 456

 

TCP_RECEIVE_SIZE_MIN

4 096

 

TCP_SEND_SIZE_DEFAULT

16 384

 

TCP_SEND_SIZE_MAX

4 194 304

 

TCP_SEND_SIZE_MIN

4 096

 

S'il n'y a aucun autre CPU consommateur important dans le système, utilisez la formule suivante pour calculer le pourcentage d'CPUutilisation :

Utilisation = Temps de charge/Temps total

Temps de pointe = exigences = v$osstat. BUSY_ TIME

C = Durée totale (occupé et inactif)

C = capacité = v$ostat. BUSY_ TIME + v$ostat. IDLE_ TIME

Utilisation = BUSY _TIME/(BUSY_ TIME + IDLE _TIME)

= -1 305 569 937/(1 305 569 937 + 4 312 718 839)

= 23 % utilisés

DBA

Option 3 : Estimez CPU l'utilisation à l'aide des métriques de base de données.

Si plusieurs bases de données sont en cours d'exécution dans le système, vous pouvez utiliser les métriques de base de données qui apparaissent au début du rapport.

 

Snap ID

Snap Time

Sessions

Curseurs/Session

Commencez Snap :

184662

28 sept. 20 h 00 : 42

1226

35,8

Fin du snap :

185446

6 octobre 2020 13:00:20

1876

41,1

Échappé :

 

11 759,64 (minutes)

 

 

Heure de base de données :

 

312 625,40 (minutes)

 

 

Pour obtenir CPU des mesures d'utilisation, utilisez cette formule :

CPUUtilisation de la base de données (% de l'CPUénergie disponible) = CPU temps/NUM_CPUS/temps écoulé

où CPU l'utilisation est décrite en CPUfonction du temps et représente le temps passéCPU, et non le temps d'attenteCPU. Ce calcul aboutit à :

= 312,625,40/11,759,64/80 = 33 % du montant est utilisé CPU

Nombre de cœurs (33 %) * 80 = 26,4 cœurs

Nombre total de cœurs = 26,4 * (120 %) = 31,68 cœurs

Vous pouvez utiliser la plus élevée de ces deux valeurs pour calculer l'CPUutilisation de l'instance de base de données Amazon RDS ou Aurora.

Remarque : Activé IBMAIX, l'utilisation calculée ne correspond pas aux valeurs du système d'exploitation ou de la base de données. Ces valeurs sont identiques sur les autres systèmes d'exploitation.

DBA
TâcheDescriptionCompétences requises

Estimez les besoins en mémoire à l'aide des statistiques de mémoire.

Vous pouvez utiliser le AWR rapport pour calculer la mémoire de la base de données source et la faire correspondre à celle de la base de données cible. Vous devez également vérifier les performances de la base de données existante et réduire vos besoins en mémoire pour réduire les coûts, ou augmenter vos besoins pour améliorer les performances. Cela nécessite une analyse détaillée du temps de AWR réponse et de l'accord de niveau de service (SLA) de l'application. Utilisez la somme de l'utilisation de la zone globale du système Oracle (SGA) et de la zone globale du programme (PGA) comme estimation de l'utilisation de la mémoire pour Oracle. Ajoutez 20 % supplémentaires pour que le système d'exploitation détermine une taille de mémoire cible requise. Pour OracleRAC, utilisez la somme de l'utilisation estimée de la mémoire sur tous les RAC nœuds et réduisez la mémoire totale, car elle est stockée sur des blocs communs.

  1. Vérifiez les indicateurs dans le tableau des pourcentages d'efficacité de l'instance. Le tableau utilise les termes suivants :

    • Le pourcentage d'impact sur la mémoire tampon est le pourcentage de fois où un bloc particulier a été trouvé dans le cache de la mémoire tampon au lieu d'effectuer une E/S physique. Pour de meilleures performances, visez 100 %. 

    • La valeur de la mémoire tampon Nowait % doit être proche de 100 %.

    • Le pourcentage de Latch Hit doit être proche de 100 %. 

    • Le % Non-Parse CPU est le pourcentage de CPU temps consacré à des activités autres que l'analyse syntaxique. Cette valeur doit être proche de 100 %.

    Pourcentages d'efficacité des instances (objectif 100 %)

    Tampon Nowait % :

    99,99

    Rétablir NoWait  % :

    100,00

    % d'impact sur la mémoire tampon :

    99,84

    % de tri en mémoire :

    100,00

    % d'accès à la bibliothèque :

    748,77

    Analyse logicielle % :

    99,81

    Exécutez pour analyser % :

    96,61

    % de clics sur le verrou :

    100,00

    Analyser CPU pour analyser Elapsd % :

    72,73

    % Non analysé CPU :

    99,21

    % d'accès au cache Flash :

    0,00

     

     

    Dans cet exemple, toutes les mesures semblent correctes. Vous pouvez donc utiliser le SGA et PGA pour la base de données existante comme exigence de planification des capacités.

  2. Consultez la section des statistiques de mémoire et calculez leSGA/PGA.

     

    Commencer

    Fin

    Mémoire hôte (Mo) :

    452 387,3

    452 387,3

    SGAutilisation (MB) :

    220 544,0

    220 544,0

    PGAutilisation (MB) :

    36 874,9

    45 270,0

Mémoire d'instance totale utilisée = SGA + PGA = 220 Go + 45 Go = 265 Go

Ajoutez 20 % de mémoire tampon :

Mémoire d'instance totale = 1,2 * 265 Go = 318 Go

Étant donné que SGA 70 % de la mémoire de l'hôte représente 70 %, la quantité totale de mémoire requise est la suivante : PGA 

Mémoire hôte totale = 318/0,7 = 464 Go

Remarque : Lorsque vous migrez vers Amazon RDS pour Oracle, les PGA et SGA sont précalculés sur la base d'une formule prédéfinie. Assurez-vous que les valeurs précalculées sont proches de vos estimations.

DBA
TâcheDescriptionCompétences requises

Déterminez le type d'instance de base de données en fonction des E/S du disque et CPU des estimations de mémoire.

Sur la base des estimations des étapes précédentes, la capacité de la base de données Amazon RDS ou Aurora cible doit être la suivante :

  • 68 cœurs de CPU

  • 14,3 MBPS % du débit  

  • 4367 IOPS pour les E/S de disque

  • 464 Go de mémoire

Dans la base de données Amazon RDS ou Aurora cible, vous pouvez mapper ces valeurs au type d'instance db.r5.16xlarge, qui a une capacité de 32 cœurs, 512 Go et 13 600 Mbits/s de débitRAM. Pour plus d'informations, consultez le billet de AWS blog Right-size Amazon RDS instances at scale based on Oracle performance metrics.

DBA

Ressources connexes