2009-05-21 6 views
2

Je suis nouveau au Oracle 10g Resource Manager et je cherche des conseils sur la façon de mettre en place un plan pour atteindre mes objectifs. Je vais tester le plan, mais j'espère avoir quelques conseils pour ne pas avoir à essayer des centaines de configurations différentes. J'ai les objectifs suivants:Oracle Resource Manager Plan Design

  1. Ne laissez pas les sessions non-sys ralentir considérablement les sessions sys.
  2. Ne laissez aucune session d'utilisateurs OLTP ralentir significativement les autres sessions d'utilisateurs OLTP.
  3. Ne laissez pas le traitement par lots ralentir OLTP.

Compte tenu de ces objectifs, ma première pensée est de créer les groupes de consommateurs suivants/directives du plan:

Consumer Group  Level 1  Level 2 Level 3 
SYS     100%   0%  0% 
OLTP1     0%   10%  0% 
OLTP2     0%   10%  0% 
OLTP3     0%   10%  0% 
OLTP4     0%   10%  0% 
OLTP5     0%   10%  0% 
OLTP6     0%   10%  0% 
OLTP7     0%   10%  0% 
OLTP8     0%   10%  0% 
OLTP9     0%   10%  0% 
OLTP10     0%   10%  0% 
BATCH     0%   0%  100% 

En utilisant cette méthode chaque utilisateur OLTP pourrait être mis dans un groupe OLTP différent (en supposant 10 utilisateurs). La documentation n'est pas très claire à ce sujet, mais il semble que si un utilisateur OLTP dans le groupe OLTP1 a besoin de plus de 10% de partage, il l'obtiendra tant que tout autre groupe OLTP aura 10% s'il en a besoin. Est-ce que ma compréhension est exacte? Est-ce que cela fonctionnera ou existe-t-il un meilleur moyen?

Répondre

3

Je simplifierais un peu cela, faire un groupe pour OLTP, s'ils ont les mêmes exigences. Ne créez un nouveau groupe que lorsque ce nouveau groupe a des besoins différents des autres en termes de priorité. Assurez-vous également que lorsqu'un utilisateur OLTP a démarré un processus intensif de longue durée, cette session est basculée vers le groupe de traitement par lots ou n'a pas démarré du tout. Le gestionnaire de ressources n'est activé que lorsque la consommation du processeur est de 100%. À partir de ce moment, il commencera à diviser les ressources pour s'assurer que chaque groupe obtient ce qu'il devrait obtenir en fonction de ses directives. D'autres choses à penser sont le degré max parallèle, le pool de sessions et (à partir de 11g et plus) les limites d'utilisation et d'io.

meilleures salutations, Ronald http://ronr.blogspot.com

+0

Merci pour la réponse. Je n'ai pas encore essayé de l'essayer. La raison pour laquelle j'ai créé plusieurs groupes OLTP est qu'aucune application OLTP ne va piétiner les autres applications OLTP. S'ils étaient tous dans le même groupe, une application d'emballement pourrait potentiellement utiliser tout le temps de traitement pour ce groupe en ne laissant rien pour les autres applications. En les séparant lorsque la consommation atteint 100%, l'application OLTP en runtime sera limitée à 10% et laissera beaucoup de temps de traitement pour les autres applications OLTP. Est-ce que cela semble raisonnable? –

+1

Cela semble raisonnable mais aussi un peu lourd. Vous pouvez faire basculer un tel processus d'emballement vers le groupe de traitement par lots ou peut-être même le terminer lorsqu'il atteint une limite de profil pour l'utilisation du processeur. –

+0

+1 La commutation d'action automatique semble ne pouvoir changer que lorsqu'un temps d'exécution est atteint, qu'une limite d'E/S mb est atteinte ou qu'une limite de demandes d'E/S est atteinte. Ce que je voudrais, c'est transférer une session vers le groupe de traitement par lots si cela entrave d'autres sessions OLTP, mais je ne peux pas le dire à partir de ces critères de commutation. –