|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | |
|
Membre régulier
![]() Inscription : novembre 2005 Messages : 462 ![]() |
Bonjour les forumnautes...
quand je saisie vmstat sur mons erveur UNIX Solaris.. j'ai la réponse suivante... Citation:
Merci d'avance pour vos réponses... En fait, j'ai un problème de performance sur un serveur qui contient 7 instances... quand les utilisateurs saississent les données de début de mois, les réponses rament grave... j'ai effectué des explain sur les ordres et ils ne sont pas en cause... j'ai regardé les sga et je voudrais les comparer maintenant avec la taille mémoire du serveur... |
|
|
|
00
|
|
|
#2 | |
|
Expert Confirmé
![]() Inscription : février 2006 Messages : 3 433 ![]() |
Je ne sais pas si vmstat donne la taille mémoire de la machine. Une technique qui marche souvent consiste à consulter le syslog de la machine (/var/adm/messages sur Solaris) et de rechercher les lignes qui affichent la taille de la RAM de la machine au boot:
Citation:
Avez-vous tracé une connection client et utiliser tkprof pour avoir une trace complète d'une session base de données ? Il peut être intéressant aussi d'utiliser Statspack avec un intervalle de snapshot de quelques minutes qui donne beaucoup d'informations sur la fonctionnement de l'instance y compris les grosses requêtes. Statspack est particulièrement intéressant pour comparer un état normal de la base avec une état ralenti de la base. |
|
|
|
00
|
|
|
#3 |
|
Membre régulier
![]() Inscription : novembre 2005 Messages : 462 ![]() |
Merci pour ta réponse...
Je pense effectivement que mon serveur est bien petit par rapport aux instances présentes... j'ai fait un diagnostic : J'ai un serveur de 4 Gigas de RAM => Ok J'ai 8 instances dont les SGA font 400 mégas chacunes... La PGA de chaque instance fait 11 Méga Un rapide calcul nous donne la taille mémoire prise par les 8 instances : (8 x 400 M) + (8 x 11 M) = 3200 M + 88 M = 3288 Mégas = 3,2 Gigas Les problèmes de perf apparaissent quand, 1 fois par mois, tous les utilisateurs effectuent, en même temps, leurs manip de recyclage des données... 1°) Ais-je raison de dire que la place mémoire restante du serveur, est trop petite (4 Gigas - 3,2 Gigas = 800 Mégas !) ? 2°) Et si oui, comment faire, sans changer de serveur, pour améliorer tout ça ... 3°) Dois-je réduite la sga ? 4°) J'ai vu que les Java_POOL_SIZE étaient paramétrées à la même taille que les SHARED_POOL_SIZE (environ 2 Gigas)... Si je réduit la JAVA_POOL_SIZE à 500 Méga et que j'accentue la JAVA_POOL_SIZE à 3.5 Gigas, les performances seront-elles meilleures ... Merci pour vos réponses... |
|
|
00
|
|
|
#4 |
|
Expert Confirmé
![]() Inscription : février 2006 Messages : 3 433 ![]() |
Comment calculez-vous la PGA ? Même avec PGA_AGGREGATE_TARGET la PGA est allouée dynamiquement et peut varier.
S'il reste vraiment 800 Mo de libre: 1. il faudrait essayer de faire le lien avec les 119 Mo de libre donnés par vmstat 2. le problème de performance ne vient sans doute pas de là. Pour réduire la SGA ou les Java Pool Size, c'est quelque chose qu'il faudrait tester dans un certain nombre de cas représentatifs: on ne peut pas vraiment prévoir dans quel sens cela va jouer à priori. Est-ce que l'application utilise Java dans la base de données ? Si le problème de performance est lié à un traitement donné, il faudrait plutôt mettre la trace SQL et utiliser tkprof pour avoir une idée plus précise de ce qui se passe au moins dans une session de la base à ce moment là. |
|
|
00
|
|
|
#5 |
|
Membre régulier
![]() Inscription : novembre 2005 Messages : 462 ![]() |
La PGA je l'ai trouvé avec l'ordre : SELECT * FROM v$pgastat WHERE name LIKE '%total%';
total PGA inuse ==============================> 8080384 bytes total PGA allocated ===========================> 11568128 bytes total freeable PGA memory =====================> 0 bytes total PGA used for auto workareas ================> 0 bytes total PGA used for manual workareas ==============> 0 bytes[/QUOTE] Mon paramètre PGA_AGGREGATE_TARGET est à 0... Le poblème c'est que mon TKPROF va me renseigner sur 1 une seule instance, or là, 8 instances, en même temps, effectuent des mises à jours sur un même serveur... 1°) Le TKPROF va-t-il me dire où ça coince si j'installe une trace sur 1 des 8 instances ? D'autant plus que ces bases là étant très petites, les ordre consommateurs passent très bien en periode 'normale' et les explains sont bons... 2°) Si l'application client-serveur n'utilise pas JAVA, la zone JAVA_POOL_SIZE sera-t-elle utilisée ? Si elle ne l'est pas, prends-elle de la place mémoire que l'on, pourrait rétrocéder à la SHARED ? 3°) J'ai du mal à comprendre pourquoi ma JAVA est égale à ma SHARED... Comment Oracle se débrouille-t-il pour 'switcher' entre les deux... sont-ce deux 'zones' différentes de la SGA, ou bien suivant le déroulement des actions, l'une prend la main sur l'autre ? Merci pour vos réponses ... |
|
|
00
|
|
|
#6 |
|
Expert Confirmé
![]() Inscription : septembre 2004 Messages : 2 942 ![]() |
Attention : Solaris met en cache les IO, et donc, utilise de la RAM
d'où la différence entre le vmstat et le calcul. Avoir ce cache kernel permet de transformer des "physicals I/O" d'un point de vue oracle en "Cache I/O". 100 Mo de free, c'est clairement pas assez. quand ces 100 Mo sont utilisés, les I/O se font alors réellement physiquement et là, ça va ramer. |
|
|
00
|
|
|
#7 |
|
Expert Confirmé
![]() Inscription : septembre 2004 Messages : 2 942 ![]() |
Un bon moyen pour réduire la charge, notamment mémoire peut être de mettre en place MTS.
|
|
|
00
|
|
|
#8 |
|
Membre régulier
![]() Inscription : novembre 2005 Messages : 462 ![]() |
Merci Léo mais pour le MTS, cela n'en vaut vraiment pas la peine car il n'y a pas assez d'utilisateurs...
Néanmoins, si cela ne vous prends pas trop de temps, pouvez-vous répondre à mes questions 2°) et 3°)... Et puis aussi, quand ma PGA_AGGREGATE_TARGET est à zéro, la PGA prise par les utilisateurs est-elle limitée ? Merci d'avance pour vos réponses... |
|
|
00
|
|
|
#9 |
|
Expert Confirmé
![]() Inscription : septembre 2004 Messages : 2 942 ![]() |
Si java n'est pas utilisé, ça sert à rien d'avoir une JAVA POOL car oui, ça consomme des ressources pour les autres zones mémoires
Avant de réduire la SGA, faudrait au minimum connaitre les ratio des bases afin de voir quelle zone pourrait être baissée (shared ou buffer typiquement?) Pour le sens de PGA_AGGREGATE_TARGET, je t'invite à lire la doc ! http://download-uk.oracle.com/docs/c....htm#sthref666 Setting PGA_AGGREGATE_TARGET to 0 automatically sets the WORKAREA_SIZE_POLICY parameter to MANUAL. This means that SQL workareas are sized using the *_AREA_SIZE parameters. Pour conclure : si tu ne peux pas mutualiser la mémoire par MTS et si tu ne peux pas baisser les SGA, tu dois rajouter de la RAM. |
|
|
00
|
|
|
#10 | ||
|
Expert Confirmé
![]() Inscription : février 2006 Messages : 3 433 ![]() |
Citation:
Citation:
|
||
|
|
00
|
|
|
#11 | |
|
Membre régulier
![]() Inscription : novembre 2005 Messages : 462 ![]() |
merci pour vos réponses éclairées...
Une petite dernière... j'ai vu sur une de nos instances la chose suivante : Citation:
Comment est-ce possible ? Merci encore pour vos disponibilités... |
|
|
|
00
|
|
|
#12 | |
|
Membre régulier
![]() Inscription : novembre 2005 Messages : 462 ![]() |
Et puis une autre aussi ..
Quand Léo me dit : Citation:
SGA_MAX_SIZE ==================> 400 M SHARED_POOL_RESERVED_SIZE ========> 9 M SHARED_POOL_SIZE=================> 180 M JAVA_POOL_SIZE===================> 180 M PGA_AGGREGATE_TARGET=============> 0 SORT_AREA_SZE====================> 0,6 M HASH_AREA_SIZE====================> 1M DB_BLOCK_BUFFER===================> 0,2 M DB_CACHE_SIZE = 0 Etant donné que l'application ne fait pas de Java, je vais reduire la JAVA_POOL_SIZE à 0 => Mais, au lieu de réduire la SGA, j'aurais tendance à la garder telle quelle mais à : - doubler la SHARED_POOL de 180 M (la place prise par la JAVA_POOL) - à doubler la SHARED_POOL_RESERVED_SIZE... - à doubler/tripler la SORT-AREA_SIZE 1°) Mon raisonnement est-il correct ? 2°) Si oui, les perf seront elles meilleurs 3°) Si non, pourquoi ? Merci encore ... |
|
|
|
00
|
|
|
#13 |
|
Membre régulier
![]() Inscription : novembre 2005 Messages : 462 ![]() |
Pas de réponse à mon dernier post ?
|
|
|
00
|
|
|
#14 | ||
|
Expert Confirmé
![]() Inscription : février 2006 Messages : 3 433 ![]() |
Citation:
Citation:
Pour les autres questions, on ne peut pas a priori dire quel est l'effet de changer des paramètres pour la SGA. Le mieux est encore de le tester et de comparer les performances. |
||
|
|
00
|
|
|
#15 | ||
|
Membre régulier
![]() Inscription : novembre 2005 Messages : 462 ![]() |
J'espère que vous avez passé un bon week ...
Pifor, quand vous dites : Citation:
2°) La place mémoire prise par la PGA_AGGREGATE-TARGET est-elle réservée à l'ouverture d'Oracle ? Quand vous dites : Citation:
Merci encore pour vos disponibilités et vos réponses... |
||
|
|
00
|
|
|
#16 | ||
|
Expert Confirmé
![]() Inscription : février 2006 Messages : 3 433 ![]() |
Citation:
Quand vous dites : Citation:
|
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com