Muchas gracias por vuestra ayuda.
Por cierto Martí: una aportación tan explícita y didáctica como la que has
aportado, nunca puede calificarse como un "rollo".
Tu exposición me ha servido de gran ayuda para aclarar algunas dudas que tenía.
Gracias de nuevo.
Jordi.
_________________________________________________________________________
Hola,
Puede que el planteamiento sea en principio correcto pero despues existan otras
implicaciones que serain contrarias a la "separacion" de recursos que pretendes
hacer.
CPU
Sera difícil aislar el consumo de CPU del resto de trabajo, casi diria
imposible, pero habitualmente (y suponiendo que tengas mas de un procesador)
como mucho si se mete en bucle solo consumirá el 100% de 1 CPU y dejara el
resto libres (para calcular que porcentaje de CPU consume aplica una sencilla
regla de tres, yo utilizo ms de cpu si consume 300ms en 5 minutos es que esta
utilizando 1 cpu todo el tiempo.
Ojo si tienes instalado el producto de "DB2 MultiSimetrics Processor" (o algo
asi) ya que eso hace que el DB2 del AS400 pueda utilizar mas de una cpu. Ademas
algunos procesos utilizan hebras y eso puede que use mas de 1 cpu.
MEMORIA
1. Crear un subsistema para ese trabajo en principio parece buena idea.
2. Puedes asignarle a ese pool una cantidad de memoria que puede ser variable o
fija.
3. Para crear un pool de memoria haz WRKSHRPOOL y asignarle memoria por ejemplo
al *SHRPOOL2 (habitualmente el *SHRPOOL1 se utiliza para trabajos en QBATCH,
aunque no viene definido por omisión en el sistema.
4. Después debes cambiar la descripción del nuevo subsistema para que utilice
ese nuevo pool de memoria, normalmente yo recomiendo poner 2 pools el *BASE y
*SHRPOOL2.
5. Después deberás nuevas clases (WRKCLS) para ese nuevo subsistema que
utilicen el segundo pool de memoria del sistema y asignarlas a las entradas de
direccionamiento del mismo.
6. Con esto conseguimos que el trabajo subsistema corra en el pool *BASE y el
resto de trabajos dentro del subsistema en el *SHRPOOL2.
7. Doy por supuesto que tienes el ajuste automático del sistema activado
(QPFRADJ 2 o 3)
8. Para el ajuste de memoria del *SHRPOOL2, haz WRKSHRPOOL y pulsa F11 (otra
vista) hay en las columnas que ves puedes definir que porcentaje de memoria
mínimo y máximo quieres que se lleven los trabajos de ese pool (incluso si
ponen el mismo en min y max lo que haces es dejar fijo el tamaño de la memoria
utilizada.
9. Esto creo que es mejor que asignar memoria fija al subsistema ya que en caso
de equivocarnos solo hemos de cambiar el porcentaje y el ajuste auto del
sistema hará el resto.
10. Como calcular el tamaño de memoria que vas a necesitar, pues es difícil,
entiendo que tampoco debe ser mucha que por lo que explicar hay comunicaciones
por medio y seguramente estará mas tiempo esperando y leyendo a disco que
utilizando memoria y CPU. De todas formas parte de un valor conocido tirando a
alto y observa (DSPSYSSTS) la paginación y si aparecen trabajos en estado INEL
eso indica que falta memoria en ese pool, Para hacer esto es mejor que no lo
hagas en tu hora punta (mas que nada para que no te lleguen llamadas de
usuarios) y puede que sea mejor desactivar mientras haces la prueba el ajuste
automático del sistema ya que te puede distorsionar el resultado.
11. También debes saber que si tu proceso utiliza SQL el optimizador de SQL
puede que decida crear un nuevo plan de acceso si ve que ha cambiado el tamaño
del pool, eso no debería suponer un problema, pero en algunas instalaciones se
traduce en un peor tiempo de respuesta de la aplicación, ya que reconstruye el
plan de acceso demasiado a menudo.
Bueno espero que este "rollo" que os he metido ayude en algo.
Saludos.
2008/6/6 a so <[EMAIL PROTECTED]>:
Hola a [EMAIL PROTECTED],
Tenemos que mantener un intercambio de interfases entre nuestro i5 y un
servidor Oracle que estará conectado a nuestra red.
Para la subida de datos hacia el i5 se ha diseñado un programa que se encarga
de supervisar un directorio del servidor remoto y someter un trabajo por cada
fichero de interfase que encuentre. La bajada hacia el servidor se hace bajo
demanda y también somete un trabajo por cada interfase.
Dado que el trasiego de información será continuo y en la mayoría de casos
crítico, se ha creado un subsistema dedicado en exclusiva a estas interfases.
Con ello se pretende conseguir que ningún otro trabajo interrumpa (ni se vea
interrumpido) por este continuo intercambio de información.
Las pruebas realizadas hasta la fecha han sido óptimas pero necesitaría
"garantizar" el rendimiento con el fin de evitar "picos" muy altos en tiempos
de ejecución, es decir necesitaría tener reservada una cantidad "x" de CPU y de
memoria para este subsistema, de manera que se vea afectado lo menos posible
por el resto de trabajos concurrentes en el sistema.
Habíamos pensado en crear una agrupación de almacenamiento dedicada a este
subsistema, pero no sabemos bien como hacerlo (ni como dimensionarla sin
penalizar excesivamente al resto).
¿Creéis que es la mejor solución para "garantizar" un mínimo de máquina
dedicada?
Si voy bien encaminado, ¿podría alguien indicarme que pasos debería seguir para
crear y configurar una agrupación dedicada? ¿Cómo puedo calcular la cantidad de
memoria necesaria que debo otorgar a esta nueva agrupación?
Perdonad por lo extenso del mensaje y os agradezco de antemano el tiempo que
podáis dedicarle.
Saludos,
Jordi.
______________________________________________
Enviado desde Correo Yahoo! La bandeja de entrada más inteligente.__________________________________________________
Forum.HELP400 es un servicio m&#225;s de NEWS/400.
&#169; Publicaciones Help400, S.L. - Todos los derechos reservados
http://www.help400.es
_____________________________________________________
Para darte de baja visita la siguente URL:
http://listas.combios.es/mailman/listinfo/forum.help400