Ignorer les liens de navigation | |
Quitter l'aperu | |
Manuel de référence des paramètres réglables Oracle Solaris 11.1 Oracle Solaris 11.1 Information Library (Français) |
1. Présentation du réglage du système Oracle Solaris
2. Paramètres réglables du noyau Oracle Solaris
3. Paramètres réglables ZFS d'Oracle Solaris
Sources des informations relatives aux paramètres réglables
Réglage des considérations relatives au ZFS
Pré-extraction au niveau des fichiers ZFS
Profondeur de la file d'attente des E/S du périphérique ZFS
Réglage de ZFS lors de l'utilisation de stockage flash
Considérations relatives à l'annulation du mappage SCSI pour les périphériques flash
Réglage du ZFS pour les produits de la base de données
Réglage du ZFS pour une base de données Oracle
Utilisation de ZFS avec les considérations relatives à MySQL
5. Paramètres réglables de la suite des protocoles Internet
6. Paramètres des utilitaires du système
A. Historique des modifications des paramètres réglables
Veuillez prendre en compte les considérations suivantes lors de l'utilisation de ZFS avec un produit de la base de données.
Si la base de données utilise une taille de bloc de disque ou d'enregistrement fixe pour les E/S, définissez la propriété ZFS recordsize correspondante. Vous pouvez effectuer cette opération par système de fichiers, même si plusieurs systèmes de fichiers partagent un seul pool.
Grâce à la conception copie-écriture du ZFS, le réglage de la valeur recordsize permet d'optimiser les performances OLTP aux dépens des requêtes de reporting par lots.
ZFS effectue les sommes de contrôle de tous les blocs stockés sur le disque. Ainsi, la couche de la base de données ne doit pas effectuer cette somme de contrôle des données une nouvelle fois. Si les sommes de contrôle sont calculées par le ZFS et non au niveau de la couche de la base de données, toutes les différences peuvent être détectées et corrigées avant que les données ne soient renvoyées à l'application.
Les E/S directes de l'UFS sont utilisées pour surmonter certaines déficiences en termes de conception de l'UFS et pour supprimer la double mise en mémoire tampon des données. Dans le ZFS, les déficiences de conception de l'UFS n'existent pas et le ZFS utilise les propriétés primarycache et secondarycache pour gérer la mise en mémoire tampon des données dans l'ARC. Notez que l'utilisation de la propriété secondarycache (L2ARC) afin d'optimiser les lectures aléatoires nécessite également que la propriété primarycache soit activée.
Conservez un espace de pool utilisé à moins de 90 % afin de maintenir les performances.
ZFS est recommandé pour toute version de base de données Oracle en mode d'instance unique. ZFS peut être utilisé avec une base de données Oracle RAC lorsque celle-ci est disponible en tant que système de fichiers partagés NFS (network file system).
Veuillez prendre en considération les recommandations suivantes pour régler le ZFS pour une base de données Oracle :
Vérifiez que vous exécutez la dernière version de Solaris
Commencez par la dernière version de Solaris 10 ou Solaris 11, avec la version Solaris 10 9/10 en tant que point de départ minimum.
Créez des LUN pour vos pools de stockage ZFS, le cas échéant
Utilisez vos outils de baies de stockage pour créer des LUN qui seront présentées au pool de stockage ZFS. Ou envisagez d'utiliser des disques entiers pour vos pools de stockage ZFS mis en miroir. Pour plus d'informations, reportez-vous au Chapitre 3, Gestion des pools de stockage Oracle Solaris ZFS du manuel Administration d’Oracle Solaris 11.1 : Systèmes de fichiers ZFS.
Créez un pool de stockage pour les fichiers de données pour les tables, index, annulations et données temporaires
Envisagez de créer un pool de stockage mis en miroir afin de fournir un niveau plus élevé de redondance de données. Par exemple :
# zpool status dbpool pool: dbpool state: ONLINE scan: none requested config: NAME STATE READ WRITE CKSUM dbpool ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c0t5000C500335F95E3d0 ONLINE 0 0 0 c0t5000C500335F907Fd0 ONLINE 0 0 0 mirror-1 ONLINE 0 0 0 c0t5000C500335BD117d0 ONLINE 0 0 0 c0t5000C500335DC60Fd0 ONLINE 0 0 0 errors: No known data errors
Pour les bases de données avec une forte activité de fichiers de journalisation, par exemple une base de données OLTP typique avec un grand nombre de validations, utilisez une LUN distincte pour un périphérique de journal distinct.
Créez un pool de stockage pour le journal d'archivage
S'il est disponible, un disque interne du système peut gérer ce type de charge. Le système de fichiers archivelog peut également être un système de fichiers dans dbpool.
# zpool create archivepool c0t5000C500335E106Bd0
Créez les systèmes de fichiers ZFS et définissez les propriétés de système de fichiers spécifiques à l'aide des directives suivantes.
Créez des systèmes de fichiers distincts pour les composants de rétablissement, d'archive, d'annulation et de base de données temporaire à l'aide de la taille d'enregistrement par défaut de 128 Ko. La règle générale consiste à définir la valeur recordsize = db_block_size du système de fichiers pour les systèmes de fichiers contenant les fichiers de données Oracle. Pour les composants d'index et de données de table, créez un système de fichiers dont la taille d'enregistrement est de 8 Ko. Envisagez également de fournir des indications relatives à la mise en cache des métadonnées pour vos systèmes de fichiers de base de données à l'aide de la propriété primarycache . Pour plus d'informations sur les propriétés du système de fichiers ZFS, reportez-vous à la section Présentation des propriétés ZFS du manuel Administration d’Oracle Solaris 11.1 : Systèmes de fichiers ZFS.
Créez les systèmes de fichiers pour les fichiers de données de la table et les fichiers de données d'index avec la valeur taille recordsize égale à 8 Ko. Utilisez la valeur par défaut pour la valeur primarycache.
# zfs create -o recordsize=8k -o mountpoint=/my_db_path/index dbpool/index # zfs set logbias=throughput dbpool/index # zfs get primarycache,recordsize,logbias dbpool/index NAME PROPERTY VALUE SOURCE dbpool/index primarycache all default dbpool/index recordsize 8K local dbpool/index logbias throughput local
Créez des systèmes de fichiers pour les données temporaires et l'espace de la table d'annulation à l'aide des valeurs recordsize et primarycache par défaut.
# zfs create -o mountpoint=/my_db_path/temp dbpool/temp # zfs set logbias=throughput dbpool/temp # zfs create -o mountpoint=/my_db_path/undo dbpool/undo # zfs set logbias=throughput dbpool/undo
Créez un pool de stockage avec un périphérique de journalisation distinct pour les fichiers de journalisation. Pour les bases de données avec une forte activité de fichiers de journalisation, par exemple une base de données OLTP typique avec un grand nombre de validations, utilisez une LUN distincte.
Partitionnez le disque en deux tranches, dont une petite tranche, s0, entre 64 et 150 Mo, pour le périphérique de journalisation distinct. La tranche s1 contient l'espace disque restant pour le fichier de journalisation.
# zpool create redopool c0t50015179594B6F11d0s1 log c0t50015179594B6F11d0s0 # zpool status redopool pool: redopool state: ONLINE scan: none requested config: NAME STATE READ WRITE CKSUM redopool ONLINE 0 0 0 c0t50015179594B6F11d0s1 ONLINE 0 0 0 logs c0t50015179594B6F11d0s0 ONLINE 0 0 0 errors: No known data errors
Créez un système de fichiers de journalisation dans le pool de journalisation. Utilisez les valeurs par défaut du système de fichiers pour recordsize et primarycache.
# zfs create -o mountpoint=/my_db_path/redo redopool/redo # zfs set logbias=latency redopool/redo
Créez un système de fichiers pour les fichiers d'archivage dans le pool d'archivage en activant la compression ; utilisez la valeur par défaut recordsize et définissez primarycache sur metadata.
# zfs create -o compression=on -o primarycache=metadata -o mountpoint= /my_db_admin_path/archive archivepool/archive # zfs get primarycache,recordsize,compressratio,compression,available, used,quota archivepool/archive NAME PROPERTY VALUE SOURCE archivepool/archive primarycache metadata local archivepool/archive recordsize 128K default archivepool/archive compressratio 1.32x - archivepool/archive compression on local archivepool/archive available 40.0G - archivepool/archive used 10.0G - archivepool/archive quota 50G local
Envisagez de régler les files d'attente des E/S de la baie de stockage (pour les systèmes avec des baies de stockage HDS ou EMC)
ZFS regroupe les E/S en lecture et en écriture et gère la priorité des E/S avant de les envoyer au niveau du pilote qui gère le périphérique. Le paramètre zfs_vdev_max_pending définit le nombre maximal d'E/S envoyées par le ZFS à tout périphérique de pool de stockage.
Dans un environnement de stockage hérité, les paramètres ssd_max_throttle et sd_max_throttle définissent le nombre maximum d'E/S simultanées envoyées par le pilote vers le stockage. En définissant la valeur par défaut de zfs_vdev_max_pending sur la valeur du paramètre [s]sd_max_throttle, nous empêchons le ZFS de mettre les E/S en file d'attente vers une nouvelle couche SD non nécessaire.
Si les valeurs ssd:ssd_max_throttle ou sd:sd_max_throttle se trouvent dans le fichier /etc/system de votre environnement système existant, définissez alors le paramètre zfs:zfs_vdev_max_pending sur la même valeur. Par exemple, si l'administrateur de la baie de stockage demande le paramètre suivant :
set ssd:ssd_max_throttle=20
Définissez alors ce paramètre comme suit :
set ssd:ssd_max_throttle=20 set zfs:zfs_vdev_max_pending=20
La définition de ce paramètre permet au ZFS de contrôler chaque file d'attente de LUN. En d'autres termes, le nombre total d'E/S en attente dans le stockage peut augmenter comme suit :
number of LUNs * ZFS_VDEV_MAX_PENDING
Allouez suffisamment de mémoire et de ressources de swap
Vous pouvez réduire la consommation de mémoire du ZFS en réglant le paramètre zfs_arc_max sur une valeur faible. Nous recommandons toujours d'allouer une mémoire suffisante aux métadonnées de cache pour la partie de la base de données utilisée de manière active (qui est estimée à 1,5 % avec une taille d'enregistrement du ZFS de 8 Ko et ce, proportionnellement à la taille des enregistrements). Le système de fichiers contenant les fichiers d'index est le système bénéficiant le plus de la mise en mémoire cache du système de fichiers car il est le dernier à invalider en cas de mémoire insuffisante. Le paramètre zfs_arc_max est exprimé en octets et accepte les valeurs décimales ou hexadécimales. L'exemple suivant définit ce paramètre sur 2 Go :
set zfs:zfs_arc_max=2147483648 or set zfs:zfs_arc_max=0x80000000
Pour empêcher que des applications n'échouent en raison d'un manque de mémoire, vous devez configurer une certaine quantité d'espace de swap. La quantité de swap équivalente à l'ensemble de la mémoire système est pour cela toujours suffisante. Cet espace de swap n'est pas prévu pour être utilisé, mais est nécessaire en tant que zone de réservation. Pour plus d'informations sur l'augmentation de l'espace de swap, reportez-vous à la section Gestion de vos périphériques de swap et de vidage ZFS du manuel Administration d’Oracle Solaris 11.1 : Systèmes de fichiers ZFS.
Recommandations de configuration complémentaires de la base de données Oracle
Configuration de votre base de données Oracle sur des systèmes de fichiers ZFS dans le livre blanc suivant :
http://www.oracle.com/technetwork/server-storage/solaris/config-solaris-zfs-wp-167894.pdf
Livre blanc Réglage SGA dynamique de la base de données Oracle sur Oracle Solaris avec DISM :
Guides d'installation d'Oracle 11g
Oracle Database Quick Installation Guide 11g Release 2 (11.2) for Oracle Solaris on SPARC (64-Bit)
http://docs.oracle.com/cd/E11882_01/install.112/e24349/toc.htm
Oracle Database Quick Installation Guide 11g Release 2 (11.2) for Oracle Solaris on x86-64 (64-Bit)
http://docs.oracle.com/cd/E11882_01/install.112/e24351/toc.htm
Veuillez prendre en compte les considérations suivantes lors de l'utilisation de ZFS avec MySQL.
Taille d'enregistrement ZFS
Faites correspondre la propriété recordsize à la taille du bloc moteur de stockage pour de meilleures performances OLTP.
InnoDB
Avec une application dont l'encombrement mémoire est connu, telle qu'une application de base de données par exemple, vous pouvez limiter la taille de l'ARC de manière à ce que l'application n'ait pas besoin de récupérer la mémoire nécessaire à partir du cache ZFS.
Créez un pool distinct pour les journaux.
Définissez un autre chemin pour les données et connectez-vous au fichier my.cnf.
Définissez la propriété ZFS recordsize sur 16 Ko pour les fichiers de données InnoDB et utilisez la valeur par défaut recordsize pour les journaux InnoDB avant de procéder à la création de fichiers de données.