Si vous exécutez une base de données Oracle sur votre environnement et que vous rencontrez des problèmes de performances à cause de la mémoire, vous devrez peut-être examiner l'espace d'échange configuré sur votre système.
Pour la base de données Oracle 11g, ce qui suit est la recommandation d'Oracle en termes de quantité d'espace que vous devez ajouter.
- Si la taille de votre RAM est inférieure ou égale à 2 Go, la taille de votre swap doit être 1,5 fois supérieure à la RAM. Par exemple, si la taille de votre RAM est de 2 Go, vous devez créer un espace d'échange de 3 Go
- Si la taille de votre RAM est comprise entre 2 Go et 16 Go, la taille de votre swap doit être la même que celle de la RAM. Par exemple, si la taille de votre RAM est de 4 Go, vous devez créer un espace d'échange de 4 Go
- Si la taille de votre RAM est supérieure à 16 Go, la taille de votre swap doit être de 16 Go. Par exemple, si votre taille de RAM est de 32 Go, cela suffit si vous créez un espace d'échange de 16 Go
De nombreux autres paramètres entrent également en jeu lorsque vous configurez votre base de données pour les performances. Si votre base de données nécessite une grande taille SGA pour des raisons de performances, vous pouvez envisager d'utiliser HugePages. Par défaut, la taille de la page SGA est découpée en 4k. Lorsque vous utilisez HugePages, la taille de la page SGA est réduite à un minimum de 2 Mo. Vous devez garder cela à l'esprit lorsque vous configurez votre base de données.
Vous pouvez afficher la HugePagesize actuelle comme indiqué ci-dessous.
$ grep Huge /proc/meminfo HugePages_Total: 0 HugePages_Free: 0 HugePages_Rsvd: 0 Hugepagesize: 4096 kB
Cet article Oracle vous donnera une introduction aux pages énormes, que vous voudrez peut-être envisager lorsque vous utilisez une grande mémoire.
Sous Linux, exécutez la commande free pour identifier la taille actuelle de la RAM et la taille SWAP. Par défaut, la commande free affiche la sortie en Ko. Puisque nous avons donné l'option -m, il affiche la sortie en Mo. Comme indiqué ci-dessous, ce système dispose de 3 Go de RAM et de 2 Go d'échange.
$ free -m total used free shared buffers cached Mem: 3034 2907 126 0 107 1103 -/+ buffers/cache: 1696 1338 Swap: 2047 85 1962
Vous pouvez également obtenir la taille totale de la RAM et la taille d'échange de votre système à partir du fichier /proc/meminfo comme indiqué ci-dessous. Cela affiche la sortie en kilo-octets.
$ egrep 'MemTotal|SwapTotal' /proc/meminfo MemTotal: 3107636 kB SwapTotal: 2096472 kB
Vous pouvez ajouter de l'espace d'échange à votre système en utilisant l'une des deux méthodes expliquées dans cet article Comment ajouter de l'espace d'échange.
L'exemple suivant ajoutera 1 Go de fichier d'échange à votre système Linux.
dd if=/dev/zero of=/root/myswapfile bs=1M count=1024 chmod 600 /root/myswapfile mkswap /root/myswapfile swapon /root/myswapfile