ES2228607T3 - Gestion de la carga de trabajo en un entorno informatico. - Google Patents
Gestion de la carga de trabajo en un entorno informatico.Info
- Publication number
- ES2228607T3 ES2228607T3 ES00962734T ES00962734T ES2228607T3 ES 2228607 T3 ES2228607 T3 ES 2228607T3 ES 00962734 T ES00962734 T ES 00962734T ES 00962734 T ES00962734 T ES 00962734T ES 2228607 T3 ES2228607 T3 ES 2228607T3
- Authority
- ES
- Spain
- Prior art keywords
- partition
- resources
- logical
- cpu
- group
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
- 238000005192 partition Methods 0.000 claims abstract description 315
- 238000000034 method Methods 0.000 claims abstract description 71
- 230000000694 effects Effects 0.000 claims abstract description 15
- 230000008901 benefit Effects 0.000 claims abstract description 11
- 230000003247 decreasing effect Effects 0.000 claims abstract description 6
- 230000007423 decrease Effects 0.000 claims description 10
- 238000012545 processing Methods 0.000 claims description 9
- 230000004044 response Effects 0.000 claims description 9
- 238000004590 computer program Methods 0.000 claims description 6
- 238000012986 modification Methods 0.000 claims description 4
- 230000004048 modification Effects 0.000 claims description 4
- 238000011282 treatment Methods 0.000 description 45
- 230000008859 change Effects 0.000 description 28
- 238000007726 management method Methods 0.000 description 16
- 230000008569 process Effects 0.000 description 16
- 238000009434 installation Methods 0.000 description 10
- 230000008878 coupling Effects 0.000 description 9
- 238000010168 coupling process Methods 0.000 description 9
- 238000005859 coupling reaction Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 7
- 238000012913 prioritisation Methods 0.000 description 6
- 238000013468 resource allocation Methods 0.000 description 6
- 102000004137 Lysophosphatidic Acid Receptors Human genes 0.000 description 5
- 108090000642 Lysophosphatidic Acid Receptors Proteins 0.000 description 5
- 238000012217 deletion Methods 0.000 description 5
- 230000037430 deletion Effects 0.000 description 5
- 238000005259 measurement Methods 0.000 description 5
- 239000000654 additive Substances 0.000 description 4
- 230000000996 additive effect Effects 0.000 description 4
- 238000013480 data collection Methods 0.000 description 4
- 230000000977 initiatory effect Effects 0.000 description 4
- 230000003068 static effect Effects 0.000 description 4
- 238000011221 initial treatment Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 230000001934 delay Effects 0.000 description 2
- 230000003111 delayed effect Effects 0.000 description 2
- 230000003116 impacting effect Effects 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000009849 deactivation Effects 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 230000001095 motoneuron effect Effects 0.000 description 1
- 238000013439 planning Methods 0.000 description 1
- 238000011176 pooling Methods 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 238000005204 segregation Methods 0.000 description 1
- 230000036962 time dependent Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Debugging And Monitoring (AREA)
- Hardware Redundancy (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Un método para administrar carga de trabajo en un entorno de ordenador, comprendiendo dicho método: determinar que se ha ajustado una asignación de recursos de CPU a una partición de dicho entorno de ordenador; y ajustar dinámicamente dicha asignación a través de dicha partición y otra partición de dicho entorno de ordenador; en el que dicha partición comprende una o más clases de servicio de trabajo, y en el que dicha determinación está caracterizada porque comprende: proyectar un efecto en una clase de servicio seleccionada de dichas una o más clases de servicio de aumentar un peso de procesador asociado con dicha partición (600); proyectar un efecto en una o más clases de servicio de dicha otra partición de disminuir un peso de procesador de dicha otra partición (604), y determinar si el beneficio a dicha clase de servicio seleccionada anula un impacto negativo para el trabajo de dicha otra partición (606), en que el ajuste ha de hacerse cuando el beneficio anule el impacto negativo.
Description
Gestión de la carga de trabajo en un entorno
informático.
El invento se refiere, en general, a administrar
o gestionar cargas de trabajo dentro de un sistema de ordenadores,
y, en particular, a administrar cargas de trabajo en un sistema con
particiones.
La constitución de particiones lógicas permite el
establecimiento de una pluralidad de imágenes de sistema dentro de
una única máquina física o complejo de procesador central (CPC).
Cada imagen del sistema es capaz de funcionar como si fuera un
sistema de ordenador separado. Es decir, cada partición lógica puede
ser reiniciada independientemente, cargada inicialmente con un
sistema operativo que puede ser diferente para cada partición
lógica, y hecha funcionar con diferentes programas de software
usando diferentes dispositivos de entrada/salida (E/S).
Ejemplos de los sistemas de ordenador con
particiones lógicas están descritos, por ejemplo, en el documento US
4.564.903, concedido el 14 de Enero de 1986; el documento US
4.843.541, concedido el 27 de Junio de 1989; y el documento US
5.564.040, concedido el 8 de Octubre de 1996, y el documento
EP-A2-0917056 que describe un
sistema de ordenador con una pluralidad de particiones que
proporciona capacidades de migración de recursos y
escalabilidad.
Las realizaciones comerciales de sistemas con
particiones lógicas incluyen, por ejemplo, procesadores IBM S/390®
con la característica de Administrador™ de Recursos de
Procesador/Sistemas (PR/SM™), que está descrito, por ejemplo, en la
publicación de IBM Guía de Planificación de Administrador de
Recursos de Procesador/Sistemas,
GA22-7236-04, Marzo de 1999.
Un aspecto importante de un sistema con
particiones lógicas es la administración de cargas de trabajo que se
ejecutan dentro de las particiones de ese sistema. En sistemas
S/390, por ejemplo, se usan administradores de cargas de trabajo
para administrar la carga de trabajo dentro y entre las particiones.
Los administradores de cargas de trabajo intentan equilibrar la
carga de trabajo de las particiones moviendo trabajo a los recursos
físicos del sistema. A fin de mover el trabajo, sin embargo, es
importante asegurar que los datos necesitados por el trabajo
cambiado de sitio están en la situación movida. Esta necesidad a
menudo restringe el movimiento de trabajo. Así, es deseable mejorar
más la administración de cargas de trabajo en sistemas de
ordenador.
Por consiguiente, el invento proporciona un
método, sistema y programa de ordenador como se ha definido en las
reivindicaciones adjuntas.
En una realización, el método incluye la
administración de cargas de trabajo a través de dos o más
particiones de una pluralidad de particiones del entorno de
ordenador, en el que la administración incluye ajustar dinámicamente
la asignación de un recurso que se puede compartir de al menos una
partición de las dos o más particiones, de tal modo que los
objetivos de la carga de trabajo de las dos o más particiones estén
siendo equilibradas.
En otra realización del presente invento, un
método de administrar carga de trabajo de un entorno de ordenador
incluye la administración de carga de trabajo a través de dos o más
particiones de una pluralidad de particiones del entorno de
ordenador, en el que dos o más particiones comparten al mismo tiempo
un recurso que se puede compartir. La administración incluye ajustar
dinámicamente la asignación del recurso que se puede compartir de al
menos una partición de las dos o más particiones.
Una realización preferida del invento permite la
redistribución dinámica de recursos que se pueden compartir a través
de particiones lógicas bajo la dirección de un administrador de
carga de trabajo. Estos recursos incluyen, por ejemplo, recursos de
CPU, recursos de procesador lógico, recursos de E/S, coprocesadores,
recursos de canal, adaptadores de red, y recursos de memoria.
Típicamente, el ajuste dinámico de recursos físicos, de acuerdo con
objetivos de carga de trabajo, es proporcionado a través de un
administrador de carga de trabajo (WLM), sysplex e integración PR/SM
sin requerir compartir datos de sysplex paralelos.
Adicionalmente, en la realización preferida, se
ha previsto la administración dinámica WLM de recursos CPU a través
de particiones lógicas (LPAR); así como la administración dinámica
(CHPID) de trayecto de canal a través de los LPAR; formación de
colas de prioridad de E/S basadas en WLM en el subsistema de canal;
y administración dinámica del WLM de memoria a través de los LPAR.
En una puesta en práctica, los grupos de LPAR permiten compartir
recurso a través de la asignación de recursos basada en la
prioridad.
Otra realización del invento proporciona un
método de administrar grupos de particiones de un entorno de
ordenador, incluyendo la identificación de un grupo de una
pluralidad de particiones del entorno de ordenador. El método
incluye además determinar un recurso que se puede compartir para ser
asignado al grupo, en el que al menos una parte del recurso que se
puede compartir es asignado a la pluralidad de particiones del
grupo.
Otra realización proporciona un método de
administrar grupos de particiones de un entorno de ordenador, que
incluye determinar que un grupo del entorno de ordenador ha sido
modificado, en el que el grupo incluye una pluralidad de las
particiones del entorno de ordenador; y ajustar dinámicamente,
dentro de la asignación de grupo, un recurso del grupo, en respuesta
a la determinación.
En la realización preferida, se consideran
recursos para los grupos a fin de determinar qué recursos han a ser
asignados a un grupo particular y forzar la asignación de aquellos
recursos. Considerar proporciona un manejo en los recursos que están
asignados para cambiar, de modo que el WLM puede tomar propias
decisiones de lo que hay que hacer a continuación. Considerar
permite que subconjuntos de recursos estén previstos en la máquina
de tal manera que la máquina pueda comprender lo que quiere hacer el
software y el software comprenda la configuración de la máquina.
Otra realización preferida del invento
proporciona un método para administrar recursos de una unidad de
tratamiento central (CPU) dentro de un entorno de ordenador,
incluyendo determinar que una asignación de recursos de CPU a una
partición del entorno de ordenador ha de ser ajustada, y ajustar
dinámicamente la asignación a través de la partición y otra
partición del entorno de ordenador.
Preferiblemente, el ajuste dinámico es en
respuesta a objetivos de carga de trabajo de al menos la partición,
y es realizado a través de una pluralidad de particiones del entorno
de ordenador.
En la realización preferida, un administrador de
carga de trabajo distribuye recursos de CPU a través de particiones
lógicas ajustando dinámicamente los pesos del procesador CPU
asociados con las particiones lógicas. El WLM comprende, por
ejemplo, cuando una carga de trabajo importante está retrasada
porque el peso de la partición que está siendo ejecutada dentro es
muy bajo. El WLM puede ayudar a esta carga de trabajo, por ejemplo
aumentando el peso de esta partición y disminuyendo el peso de otra
partición, proporcionando por ello una capacidad de CPU adicional a
la carga de trabajo importante. Esto permite que los recursos de CPU
sean movidos dinámicamente a las particiones necesitadas, cuando los
requisitos de carga de trabajo cambian.
El presente invento proporciona además programas
de ordenador para poner en práctica los métodos anteriores. Tales
programas de ordenador comprenden generalmente instrucciones
ejecutables por una máquina, que están codificadas en un medio
utilizable por ordenador o dispositivo de almacenamiento de programa
legible por una máquina, y pueden ser incluidos como una parte de un
sistema de ordenador o vendidos de forma separada (posiblemente por
transmisión sobre una red).
El presente invento también proporciona sistemas
que corresponden a los métodos anteriores, formados típicamente por
la combinación de un programa de ordenador para poner en práctica un
método con hardware apropiado.
Se apreciará que tales programas de ordenador y
sistemas se beneficiarán de las mismas características preferidas
que los métodos del invento.
A continuación se describirán diferentes
realizaciones preferidas del invento en detalle sólo a modo de
ejemplo con referencia a los dibujos siguientes:
La fig. 1a representa un ejemplo de un entorno de
ordenador;
La fig. 1b representa otra realización de un
entorno de ordenador;
La fig. 2 representa componentes adicionales de
un entorno de ordenador;
La fig. 3 representa un ejemplo de grupos de
partición lógica;
Las figs. 4a-4b representan un
ejemplo de la lógica asociada con una partición que une un
grupo;
La fig. 5 representa una realización de la lógica
asociada con retirar o eliminar una partición de un grupo;
La fig. 6 representa una realización de la lógica
asociada con la determinación de si un peso de partición puede ser
aumentado para ayudar a una clase de servicio receptor de la
partición;
La fig. 7 representa una realización de la lógica
asociada ajustando dinámicamente la configuración de procesadores
lógicos;
La fig. 8 representa una realización de un
subsistema de canal;
La fig. 9 representa una realización de la lógica
asociada con la selección de una operación de E/S que ha de ser
procesada;
La fig. 10 representa una realización de la
lógica asociada con la determinación de si una configuración de E/S
ha de ser ajustada;
La fig. 11 representa una realización de la
lógica asociada con el agrupamiento de datos de la fig. 10.
La fig. 12 representa una realización de la
lógica asociada con la comprobación de equilibrio de la fig. 10;
Las figs. 13a-13b representan una
realización de la lógica asociada con la corrección de un
desequilibrio de una configuración de E/S;
La fig. 14 representa una realización de la
lógica asociada con la determinación de los subsistemas
afectados;
La fig. 15 representa una realización de la
lógica asociada con el ajuste de un objetivo de velocidad E/S
explícito; y
Las figs. 16a-22c representan
distintos ejemplos de configuraciones de E/S usadas en la
determinación de entropía.
Hay previstas capacidades de administración de
carga de trabajo que permiten el ajuste dinámico de la asignación de
recursos de un entorno de ordenador para equilibrar la carga de
trabajo de ese entorno. En un ejemplo, el entorno de ordenador
incluye una pluralidad de particiones lógicas y la carga de trabajo
es administrada a través de dos o más de las particiones.
Se ha descrito una realización de un entorno de
ordenador usando capacidades de administración de carga de trabajo
con referencia a la fig. 1a. Un entorno de ordenador 100 está
basado, por ejemplo, en la Arquitectura de Sistemas de Empresa
(ESA)/390 ofrecida por International Business Machines Corporation,
Armonk, Nueva York. La ESA/390 está descrita en una publicación de
IBM titulada "Arquitectura de Sistemas de Empresa/390 Principios
de Funcionamiento," Publicación IBM nº
SA22-7201-04, Junio de 1997. Un
ejemplo de un entorno de ordenador basado en ESA/390 es el Servidor
de Empresa Paralelo 9672 ofrecido por International Business
Machines Corporation.
El entorno de ordenador 100 incluye, por ejemplo,
un complejo procesador central (CPC) 102 que tiene uno o más
procesadores centrales 106 (por ejemplo, CP1-CP4),
una o más particiones 108 (por ejemplo, particiones lógicas
(LP1-LP4)), y al menos un administrador de partición
lógica 110, cada uno de los cuales está descrito más adelante.
Los procesadores centrales 106 son recursos de
procesador físico que están asignados a las particiones lógicas. En
particular, cada partición lógica 108 tiene uno o más procesadores
lógicos (mostrados no por separado para mayor claridad), cada uno de
los cuales representa todo o una parte de un procesador físico 106
asignado a la partición. Los procesadores lógicos de una partición
particular 108 pueden estar o bien dedicados a la partición (de modo
que el recurso de procesador subyacente 106 esté reservado para esa
partición) o bien compartidos con otra partición (de modo que el
recurso de procesador subyacente esté potencialmente disponible para
otra partición).
En el ejemplo particular mostrado, cada una de
las particiones lógicas LP1-LP4 funcionan como un
sistema separado que tiene un sistema operativo residente 112 (que
puede diferir para cada partición lógica) y una o más aplicaciones
114. En una realización, el sistema operativo 112 es el OS/390™ o el
sistema operativo MVS/EGA™ ofrecido por International Business
Machines Corporation.
Adicionalmente, cada sistema operativo (o un
subconjunto del mismo) incluye un administrador de carga de trabajo
116 para administrar la carga de trabajo dentro de una partición y
entre particiones. Un ejemplo de un administrador de carga de
trabajo es el WLM ofrecido por International Business Machines
Corporation. El WLM está descrito, por ejemplo, en el documento
US-5.473.773, concedido el 5 de Diciembre de 1995; y
el documento US-5.675.739, concedido el 7 de Octubre
de 1997.
Las particiones lógicas 108 son administradas por
un administrador 110 de particiones lógicas puesto en práctica por
un microcódigo que funciona en procesadores 106. Las particiones
lógicas 108 (LP1-LP4) y el administrador 110 de
particiones lógicas comprenden cada uno, uno o más programas que
residen en partes respectivas del almacenamiento central asociado
con los procesadores centrales. Un ejemplo del administrador 110 de
particiones lógicas es el PR/SM.
En otra realización de un entorno de ordenador,
dos o más complejos de procesador central son acoplados entre sí
para formar un sysplex, como se ha representado en la fig. 1b. Como
ejemplo, un complejo de procesador central (CPC) 102 está acoplado a
uno o más CPC 120 mediante, por ejemplo, de una instalación de
acoplamiento 122.
En el ejemplo mostrado, el CPC 120 incluye una
pluralidad de particiones lógicas 124 (por ejemplo,
LP1-LP3), que son administradas por un administrador
126 de particiones lógicas. Una o más de las particiones lógicas
incluye un sistema operativo, que puede tener un administrador de
carga de trabajo y uno o más programas de aplicación (no mostrados
en este ejemplo por claridad). Adicionalmente, el CPC 120 incluye
una pluralidad de procesadores centrales 128 (por ejemplo,
CP1-CP3), cuyos recursos están asignados entre la
pluralidad de particiones lógicas. En particular, los recursos están
asignados entre uno o más procesadores lógicos 130 de cada
partición. (En otras realizaciones, cada CPC puede tener una o más
particiones lógicas y uno o más procesadores centrales).
La instalación de acoplamiento 122 (a.k.a., un
procesador de almacenamiento exterior estructurado (SES)) contiene
memoria accesible por los complejos procesadores centrales y realiza
operaciones solicitadas por programas en los CPC. La instalación de
acoplamiento es usada para compartir información de estado usada
para tomar decisiones de redistribución de recursos compartidos. (En
una realización, cada complejo de procesador central está acoplado a
una pluralidad de instalaciones de acoplamiento). Los aspectos del
funcionamiento de una instalación de acoplamiento están descritos en
detalle en referencias tales como Elko y col.,
US-5.317.739, concedida el 31 de Mayo de 1994;
US-5.561.809, concedida el 1 de Octubre de 1996;
US-5.706.432, concedida el 6 de Enero de 1998; y
las patentes y solicitudes referidas a ellas.
En una realización, uno o más de los procesadores
centrales están acoplados al menos a un subsistema de canal, que es
usado en comunicación con dispositivos de E/S. Por ejemplo, un
procesador central 200 (fig. 2) está acoplado a un almacenamiento
principal 202 y al menos a un subsistema de canal 204. El subsistema
de canal 204 está además acoplado a una o más unidades de control
206. Las unidades de control están a continuación acopladas a uno o
más dispositivos de E/S 208.
El subsistema de canal dirige el flujo de
información entre los dispositivos de entrada/salida y la memoria
principal. Alivia las unidades de tratamiento central de la tarea de
comunicar directamente con los dispositivos de entrada/salida y
permite procesar datos para proseguir al mismo tiempo con el
tratamiento de entrada/salida. El subsistema de canal usa uno o más
trayectos de canal 214 como enlaces de comunicación en la
administración del flujo de información a o desde los dispositivos
de entrada/salida 208.
Cada trayecto de canal 214 incluye, por ejemplo,
un canal 210 de subsistema de canal 204, una unidad de control 206 y
un enlace 212 entre el canal y la unidad de control. En otras
realizaciones, un trayecto de canal puede tener múltiples canales,
unidades de control, y/o enlaces. Además, en otro ejemplo, es
también posible tener uno o más cambios dinámicos como parte del
trayecto de canal. Un cambio dinámico está acoplado a un canal y a
una unidad de control y proporciona la capacidad de interconectar
físicamente cualesquiera dos enlaces que están unidos al cambio. Se
han descrito otros detalles relativos a subsistemas de canal en el
documento US-5.526.484, concedido el 11 de Junio de
1996.
En una realización preferida del presente
invento, distintos recursos físicos son redistribuidos dinámicamente
a través de particiones lógicas de un entorno de ordenador bajo la
dirección de uno o más administradores de carga de trabajo. Esta
redistribución dinámica es transparente a los subsistemas de
aplicación. Como ejemplos, los recursos físicos que han de ser
redistribuidos incluyen recursos de CPU, recursos de procesador
lógico, recursos de E/S, coprocesadores, recursos de canal,
adaptadores de red, y recursos de memoria. Como un ejemplo, un
coprocesador es un microprocesador (distinto de una CPU) dentro de
un CPC que sirve para a una función particular. Ejemplos de
coprocesadores incluyen, por ejemplo, subsistemas de canal, tarjetas
de adaptador de red y coprocesadores criptográficos. Los recursos
físicos anteriores son ofrecidos solamente como ejemplos; otros
recursos que se pueden compartir pueden también ser
redistribuidos.
A fin de facilitar la redistribución dinámica de
recursos, en una realización, son agrupadas juntas particiones
lógicas a fin de compartir los recursos entre las particiones del
grupo. Cada grupo puede variar de tamaño desde 1 partición a n
particiones. (En un ejemplo, uno o más de los grupos incluyen una o
más particiones, pero menos que todas las particiones del entorno de
ordenador). En particular, cada grupo incluye, por ejemplo, una o
más imágenes de sistema operativo que funcionan en dominios
independientes de una máquina, que son administrados por una función
administradora de carga de trabajo común para distribuir cargas de
trabajo y recursos. En un ejemplo, estos dominios son particiones
lógicas que funcionan en un modo compuesto por particiones lógicas y
los sistemas operativos OS/390 que funcionan en las particiones
lógicas. Las particiones lógicas de un grupo pueden ser un
subconjunto de las particiones de un sistema (por ejemplo, un CPC) o
un sysplex, un sistema entero o sysplex, o pueden ser particiones de
sysplex o sistemas diferentes (en, por ejemplo, un único CPC).
Una realización de dos grupos de particiones
lógicas (o agrupaciones) de un complejo procesador central está
representada en la fig. 3. Como se ha mostrado, hay un Grupo de
Partición Lógica A 300 y un Grupo de Partición Lógica B 302, cada
uno de los cuales incluye una o más particiones lógicas. El
agrupamiento de particiones lógicas permite compartir recursos entre
las particiones de un grupo a través de la asignación de recursos
(por ejemplo, asignación de recursos basada en la prioridad).
Como ejemplos, los recursos que han de ser
compartidos incluyen recursos de CPU, recursos de E/S, y memoria,
así como coprocesadores o cualesquiera otros recursos que se pueden
compartir que la máquina podría proporcionar. Un grupo particular de
particiones lógicas puede o no tener acceso a todos los recursos de
una máquina particular. De hecho, múltiples grupos de particiones
lógicas podrían ser definidos para funcionar al mismo tiempo en una
sola máquina. A fin de administrar efectivamente cada grupo de
particiones lógicas, los recursos que constituyen un grupo
particular de particiones lógicas son efectivamente considerados de
ese grupo.
La delimitación incluye identificar qué recursos
son asignables a cada grupo. En particular, la delimitación define
qué recursos están restringidos al grupo y pueden ser administrados
para el grupo. Las particiones lógicas que forman un grupo de
particiones lógicas pueden ser conceptuadas como un contenedor de
los recursos. Estos contenedores existen dentro de los límites de un
conjunto total de recursos disponible para las particiones lógicas.
En un ejemplo, este es el conjunto total de recursos disponible en
un CPC particular.
Las particiones lógicas que forman un grupo
particular de particiones lógicas (por ejemplo, Grupo de Particiones
Lógicas A) están asignadas a una parte particular del recurso total
que se puede compartir. Por ejemplo, supóngase que el recurso
compartible es un recurso de CPU. Con recursos de CPU compartidos,
las particiones lógicas que están incluidas en el Grupo de
Particiones Lógicas A están asignadas a una parte particular del
recurso de CPU de complejo de procesador central total. Estos
recursos están siendo compartidos por las particiones lógicas dentro
de un grupo particular, así como, potencialmente, con particiones
lógicas en otros grupos de particiones lógicas y particiones lógicas
no incluidas en ninguno de los grupos de particiones lógicas. Así,
un administrador de carga de trabajo que está intentando tomar
decisiones sobre recursos que se mueven dentro de un grupo (desde,
por ejemplo, una partición en el grupo de particiones lógicas a otra
partición en el grupo) es tener una comprensión de los recursos que
comprende el grupo, así como una comprensión de qué contiene el
mayor contenedor (por ejemplo, el CPC). Realimentación de mediciones
(por ejemplo, estado de la información almacenada en la instalación
de acoplamiento) usada para tomar decisiones sobre la administración
de recursos de carga de trabajo debe ser suficiente para comprender
los contenedores definidos por el cliente como antes.
Una vez se ha establecido esta comprensión, los
cambios dirigidos por el administrador de carga de trabajo a las
asignaciones de recursos en las particiones lógicas de un grupo dado
son típicamente hechos de tal manera que conserven el tamaño del
contenedor constante (es decir, los recursos asignados al grupo de
particiones lógicas). Por ejemplo, supóngase que el recurso que ha
de ser administrado es el recurso de CPU, y supóngase además que
cada partición lógica está asignada a un peso de tratamiento de CPU
que indica prioridad. A fin de administrar los pesos relativos a la
CPU, la suma de los pesos relativos para las particiones lógicas en
un grupo dado ha de permanecer constantes antes y después del cambio
dirigido, por medio, por ejemplo, de un administrador de carga de
trabajo. Esto mantiene la asignación especificada por el cliente de
los recursos a los grupos y otras particiones lógicas presentes en
la máquina.
A pesar de lo anterior, en algunos casos, puede
ser deseable y posible que el grupo de particiones utilice recursos
mayores que el contenedor definido, cuando los recursos no están
siendo usados por sus propietarios designados. Sin embargo, tan
pronto como ocurre discusión para los recursos, los recursos son
administrados por el administrador (LPAR) de la partición lógica de
acuerdo con los tamaños del contenedor definido (por ejemplo, pesos
de tratamiento en este ejemplo). Puede haber, sin embargo, otros
casos cuando el grupo no debe ser dejado expandirse más allá de su
contenedor. Esto es también posible con delimitación. Otros recursos
pueden necesitar ser completamente delimitados a un único grupo a
fin de conseguir una imagen exacta de uso de los recursos. La
limitación de este modo impide que particiones lógicas fuera de un
grupo dado accedan a ese recurso.
Además de lo anterior, se ha prestado también
consideración al efecto de cambios externos en la disponibilidad de
recursos dentro de un grupo de particiones lógicas. Por ejemplo, un
usuario puede cambiar la asignación de recursos mediante algún medio
externo (no bajo dirección del administrador de carga de trabajo).
Esto podría hacerse debido a un cambio en cargas de trabajo reales
que están en una máquina o un desplazamiento en prioridades de
negocio entre grupos y/o otras particiones lógicas. Cuando se han
hecho estos cambios, estos cambios han de ser comprendidos por el
administrador de carga de trabajo y los efectos de estos cambios han
de ser distribuidos racionalmente. Los cambios podrían ocurrir
cuando una partición lógica es añadida o retirada de un grupo;
cuando alguna otra partición lógica exterior al grupo es añadida o
retirada; o simplemente, cuando un cambio de peso de tratamiento es
efectuado a través de medios externos. Cuando estos cambios externos
son realizados, el tamaño del recipiente puede cambiar y el
administrador de carga de trabajo es ahora el administrador de ese
contenedor dimensionado de nuevo.
Cuando recursos atribuidos a una partición lógica
particular de un grupo son cambiados externamente, puede ser
necesaria una redistribución de recursos dentro de un grupo. Por
ejemplo, cuando una partición lógica es eliminada de un grupo, el
peso de tratamiento asociado con la partición lógica es eliminado
del grupo. Si el peso asignado por el administrador de carga de
trabajo corriente a la partición lógica es mayor que el peso de la
partición lógica que está siendo eliminada (es decir, el peso de
tratamiento asociado con la partición lógica inicialmente), la
diferencia de peso es añadida a otras particiones lógicas en el
grupo. Esto es hecho, por ejemplo, en proporción a la distribución
existente de pesos en las otras particiones lógicas en el grupo. Si
el peso asignado por el administrador de carga de trabajo corriente
es menor que el peso inicial de la partición lógica, la diferencia
de peso es restada de las otras particiones lógicas en el grupo. De
nuevo, esto es hecho en proporción a las otras asignaciones de peso
de la partición lógica, como un ejemplo.
Como se ha descrito antes, un grupo está
delimitado con el fin de obtener un manejo sobre los recursos que
son asignados a un grupo y los recursos que son permitidos que
cambien, de manera que el administrador de carga de trabajo pueda
tomar decisiones apropiadas de qué hacer a continuación. El marco
identifica los grupos y proporciona información de nuevo al programa
que el programa puede comprender. Cuando un grupo es modificado, los
recursos son dinámicamente ajustados para satisfacer la
modificación.
En una realización, puede haber grupos separados
(agrupaciones) para cada recurso. Por ejemplo, el Grupo A de
Particiones Lógicas puede ser para recursos de CPU, mientras el
Grupo B de Particiones Lógicas puede ser para recursos de E/S. Sin
embargo, en otras realizaciones, es también posible que un grupo de
particiones lógicas es para un subconjunto o la totalidad de los
recursos.
A fin de establecer el marco del grupo LPAR, en
un ejemplo, las particiones lógicas se identifican a sí mismas a uno
o más grupos de particiones. Una realización de la lógica asociada
con la unión de un grupo está descrita con referencia a las figs.
4a-4b. Por ejemplo, para unir un grupo de
particiones lógicas, el sistema operativo (por ejemplo, OS/390) que
funciona en una partición lógica indica al administrador del LPAR de
qué grupo de LPAR la partición lógica ha de ser parte, OPERACIÓN
400. Como ejemplo, una instrucción es usada para pasar el nombre del
grupo LPAR al administrador de LPAR. El sistema operativo especifica
un nombre para cada tipo de recurso que ha de ser administrado
dentro de los grupos LPAR. Así, si hay otros recursos, PREGUNTA 402,
entonces otros nombres son especificados. Por ejemplo, se da un
nombre de grupo para recursos de la CPU y se da otro nombre para
recursos de E/S. El mismo nombre de grupo LPAR puede ser
especificado para cada tipo de recurso, si se desea.
Esta declaración por OS/390 o bien establece un
nuevo grupo LPAR sobre la máquina (si la partición lógica es la
primera partición lógica que usa ese nombre) o hace que esta
partición lógica se una a un grupo LPAR existente del mismo nombre
para ese tipo de recurso. Por ejemplo, una vez que se ha
especificado el nombre del grupo, OPERACIÓN 404 (fig. 4b), se toma
una determinación como si es un nuevo nombre, PREGUNTA 406. Si es
así, un nuevo grupo es creado, OPERACIÓN 408. De otro modo, un grupo
existente es unido, OPERACIÓN 410. Después de ello, los recursos son
delimitados al grupo, OPERACIÓN 412.
En particular, los recursos del tipo de grupo que
están limitados al grupo LPAR son ahora hechos disponibles para que
la partición lógica los utilice, si el WML que funciona en el grupo
LPAR determina que debe y cuando lo haga. Los recursos de un tipo
particular para un grupo de LPAR que necesita delimitación incluyen
al menos dos variedades: recursos aditivos y recursos fijos.
Recursos aditivos: En algunos casos, unir
un grupo de LPAR inherentemente añade recursos al grupo de LPAR que
justo ha unido la parte lógica. Un ejemplo de esto es el peso de
tratamiento de la CPU, que es, por ejemplo, asignada por el cliente
a una partición lógica en una consola de hardware. El peso de
tratamiento corriente (en uso) de la partición lógica es
inicializado desde este peso asignado por el cliente, cuando la
partición lógica es activada. Cuando la partición lógica une un
grupo de LPAR para recursos de CPU, el peso de tratamiento asignado
por el cliente para esa partición lógica resulta parte del peso de
tratamiento total disponible para usar dentro del grupo de LPAR, y
así, puede ser reasignada dentro del grupo de LPAR por el WML. La
partición lógica que justo ha unido el grupo de LPAR ahora tiene el
potencial para usar el conjunto mayor de recursos del grupo de LPAR,
al que se hizo justo una contribución.
Recursos Fijos: es algunos casos, un
conjunto de recursos es predefinido como perteneciente a un grupo
particular de LPAR. Un ejemplo de esto son los trayectos de canal
administrados (flotante). Un trayecto de canal administrado es un
trayecto de canal cuyos recursos pueden ser reasignados para ayudar
a conseguir objetivos de carga de trabajo. El conjunto de los
trayectos de canal administrados para usar por un grupo de LPAR
particular es inicialmente definido mediante un proceso de
definición de configuración de E/S que asocia trayectos de canal
(CHPID) con un grupo de LPAR. Cuando una partición lógica se una a
este grupo de LPAR, es ahora permitido acceder a este conjunto de
trayectos de canal. La partición lógica por sí misma no contribuye a
nada a este grupo común de recursos. (Este grupo común de recursos
puede ser aún cambiado dinámicamente, pero el punto es que los
recursos no vengan y vayan como particiones lógicas que se unen y
dejan un grupo de LPAR).
El marco de LPAR puede también ser hecho efectivo
de modo diferente para recursos que dependen del tipo de
recurso.
Recursos Aditivos: El sistema operativo en
un grupo de LPAR es capaz de preguntar al conjunto completo de
recursos de este tipo para el grupo de LPAR. Como ejemplo, para
pesos de tratamiento de la CPU, esto es llevado a cabo mediante una
instrucción. El sistema operativo aprende el conjunto total de este
tipo de recurso dentro del grupo de LPAR, la asignación de los
recursos a las particiones lógicas en el grupo, y el tamaño completo
del grupo común de recursos disponible en la máquina corriente.
Todos estos componentes son usados para comprender cuánta parte del
recurso físico total ha de ser asignada a una partición lógica. El
sistema operativo actualiza entonces las asignaciones a las
particiones lógicas en el grupo de LPAR para reasignar recursos
dentro del grupo. El sistema operativo no es dejado, en un ejemplo,
que cambie la cantidad total de recurso asignado al grupo de LPAR.
El administrador de LPAR hace efectivo esto asegurando que todas las
partes del grupo de LPAR son tenida en cuenta para ello en una
actualización y particiones no lógicas fuera del grupo de LPAR
tengan sus recursos afectados.
Recursos Fijos: El sistema operativo en un
grupo de LPAR pregunta el conjunto de recursos que es asociado con
su grupo de LPAR para este tipo de recurso. Por ejemplo, con
trayectos de canal administrados, una lista de trayectos de canal
administrados que son definidos para un grupo particular de LPAR
puede ser recuperado desde el administrador de LPAR mediante una
instrucción. El administrador de LPAR también protege estos recursos
para estar seguro de que son solo utilizados por el grupo de LPAR
apropiado. Para canales administrados, esto significa permitir sólo
que un trayecto de canal administrado sea configurado en línea a una
partición lógica que ha declarado un nombre de grupo de LPAR que
coincide con el definido para el trayecto de canal administrado.
Cuando una partición lógica que es parte de un
grupo de LPAR es reinicio, re-Ipled, o desactivación
del sistema, cualquier afiliación que tenía la partición lógica con
uno o más grupos de LPAR es eliminada. Una realización de la lógica
asociada con la eliminación de una partición lógica desde un grupo
está descrita con referencia a la fig. 5. Como parte del reinicio,
el administrador de la partición lógica elimina un nombre o nombres
de grupo de partición de LPAR declarados desde la partición lógica,
OPERACIÓN 500. A continuación, una o más acciones distintas son
realizadas para completar la retirada de asignación de recurso del
grupo de LPAR para la partición lógica, dependiendo del recurso,
PREGUNTA 502.
Si el recurso es un recurso aditivo, entonces
sucede lo siguiente: recursos tales como este, que fueron añadidos a
un grupo de LPAR cundo una partición lógica es unida al grupo de
LPAR, son eliminados del grupo de LPAR, OPERACIÓN 504. Esto puede
implicar un ajuste en la asignación real de este tipo de recurso a
los miembros restantes del grupo de LPAR. Por ejemplo, en el caso de
pesos de tratamiento, el peso de tratamiento inicial para la
partición lógica que deja el grupo es ahora eliminado del marco del
grupo de LPAR. Si el WML ha cambiado el peso de tratamiento real
para la partición lógica, se necesita hacer ajustes. Si el peso de
tratamiento corriente de la partición lógica es mayor que su peso de
tratamiento inicial, la diferencia entre los dos es redistribuida a
los miembros restantes del grupo de LPAR en proporción a sus pesos
de tratamiento corriente. Si el peso de tratamiento corriente de la
partición lógica es menor que su peso de tratamiento inicial, la
diferencia entre los dos es eliminada de los miembros restantes del
grupo de LPAR en proporción a sus pesos de tratamiento corrientes.
El resultado de estos ajustes reestablece el contenedor de peso de
tratamiento para el grupo de LPAR resultante.
Por otro lado, si el recurso es un recurso fijo,
entonces ocurre lo siguiente: recursos tales como estos son
simplemente eliminados de la configuración de la partición lógica
que es reiniciada, OPERACIÓN 506. Por ejemplo, para trayectos de
canal administrados, los trayectos de canal son desconfigurados de
la partición lógica que es reiniciada. Esto reestablece de nuevo que
solo los miembros del grupo de LPAR tienen acceso al recurso del
grupo de LPAR.
Debe observarse también que algunos recursos
administrados por el WML en un entorno de grupo de LPAR pueden no
tener una necesidad para el marco del grupo. Un ejemplo de tal
recurso es el número de procesadores centrales lógicos (CP) en línea
para una partición lógica. El comportamiento efectivo de una
partición lógica particular en un grupo de LPAR puede estar
significativamente influenciado por el número de CP lógicos que
están en línea con la partición lógica. El número de CP lógicos que
una partición lógica puede tener definido y/o en línea es una
característica de una partición lógica si está o si no está en un
grupo de LPAR, así este recurso no forma parte realmente de un grupo
común mayor de recursos. Su efecto en un grupo de LPAR sin embargo
es que puede cambiar qué tipo de carga de trabajo puede ser hecha
funcionar efectivamente en un miembro del grupo de LPAR frente a
otra.
En un ejemplo, un recurso que ha de ser
compartido entre una pluralidad de particiones lógicas es un recurso
de CPU. El administrador de carga de trabajo del OS/390 redistribuye
recursos de CPU a través de particiones lógicas ajustando
dinámicamente uno o más pesos relativos de procesador asociados con
las particiones lógicas. El WML comprende cuando una carga de
trabajo importante es retrasada porque el peso de la partición que
está funcionando dentro es muy bajo. El WML puede ayudar a esta
carga de trabajo aumentando el peso de esta partición y disminuyendo
el peso de otra partición, proporcionando por ello capacidad de CPU
adicional a la carga de trabajo importante. Los recursos de CPU se
mueven dinámicamente a las particiones donde son necesarios, cuando
cambian los requerimientos de carga de trabajo.
En una realización, el marco de la administración
WML de pesos de partición lógica es un grupo de particiones lógicas.
Como ejemplo, el WLM ajusta los pesos de partición lógica, pero
mantiene constante la suma de los pesos de las particiones en el
grupo. Manteniendo constante la suma, conserva el mismo recurso de
CPU completo asignado al grupo con relación a otros grupos
independientes en el mismo ordenador físico. Por ello, cuando el WML
aumenta el peso de una partición, disminuye el peso de otra
partición en el mismo grupo.
La administración de pesos de partición lógica es
una mejora de las técnicas de asignación de recursos orientados a
objetivos del WML, que están descritas, por ejemplo, en el documento
US 5.473.773, concedido el 5 de Diciembre de 1995; y en el documento
US 5.675.739 concedido el 7 de Octubre de 1997.
Como se ha descrito en esas patentes, el WML
controla la asignación de recursos de CPU dentro de una partición
lógica ajustando las prioridades de expedición de CPU. Las
prioridades de expedición de CPU son asignadas para trabajar a un
nivel de clase de servicio. Sin embargo, hay distintas situaciones
en las que el ajuste de las prioridades de expedición no ayudan a la
clase de servicio. Por ejemplo:
- 1)
- La clase de servicio está ya sola en la mayor prioridad de expedición de la CPU permitida para trabajar sin sistema.
- 2)
- Cambiar las prioridades de expedición de la CPU para ayudar a la clase de servicio tendrá un impacto negativo demasiado grande en otras clases de servicios que son de la misma o mayor importancia.
Así, cuando el WML encuentra que una clase de
servicio está fallando sus objetivos debido al retraso de la CPU,
que no puede ser ayudada ajustando prioridades de la CPU, el WML
considera ajustar el peso de la partición asociada con la clase de
servicio que falla.
La clase de servicio a la que el WML está
considerando asignar recursos adicionales es denominada la clase de
servicio receptora. Cuando el WML ha encontrado una clase de
servicio receptora que falla objetivos debido al retraso de la CPU
en una partición dada que no puede ser ayudada por una de las
razones enumerada antes, el WML considera aumentar ese peso de la
partición. Una realización de la lógica seguida por el WML para
determinar si un peso de partición puede ser incrementado para
ayudar a la clase de servicio receptora es descrita como sigue, con
referencia a la fig. 6:
- 1)
- Proyectar el efecto en la clase receptora de aumentar el peso de la partición, OPERACIÓN 600. Aumentar el peso de la partición aumenta la capacidad de CPU de la partición. Como la demanda de CPU del trabajo en la clase receptora se ha supuesto que es constante, aumentar la capacidad de CPU de la partición disminuye el porcentaje de esta capacidad que demanda la clase de servicio receptora. La proyección del beneficio a la clase de servicio receptora está basada en esta disminución en el porcentaje de capacidad de CPU disponible tanto de la clase de servicio receptora como del otro trabajo en la demanda del sistema.
- 2)
- Encontrar otra partición en el grupo de particiones lógicas para ser una candidata a ver su peso reducido, OPERACIÓN 602. Esta partición es conocida como la partición donante candidata. La partición donante candidata es elegida, por ejemplo, buscando la partición en la que el trabajo menos importante ha de ser probablemente impactado disminuyendo el peso de la partición.
- 3)
- Proyectar el efecto en todas las clases de servicios con trabajo funcionando en la partición donante candidata de reducir su peso, OPERACIÓN 604. Disminuir el peso de la partición donante candidata disminuye la capacidad de CPU de la partición donante candidata. Esta disminución en la capacidad de CPU significa que aumentará la demanda de CPU de las clases de servicio con trabajo funcionando en el donante candidato como un porcentaje de la capacidad del donante candidato. La proyección del efecto negativo de reducir el peso de donante candidato está basada en este aumento en el porcentaje de capacidad de CPU disponible que demandan estas clases de servicio.
- 4)
- Determinar si este cambio en peso tiene valor neto, PREGUNTA 606. Es decir, el beneficio a la clase de servicio receptora anula el impacto negativo a trabajar en la partición donante candidata basada en los objetivos e importancia de las clases de servicio implicadas.
- 5)
- Si ajustar los pesos tiene valor neto, poner en práctica el cambio propuesto para los pesos de la partición, OPERACIÓN 608. Si no hay valor neto, entonces se hace una determinación de si hay más particiones donantes candidatas, PREGUNTA 610. Si es así, es elegida otra partición donante candidata, OPERACIÓN 612, y el tratamiento continua en la operación 3, OPERACIÓN 604. Si no hay más particiones donantes candidatas, entonces el tratamiento finaliza, OPERACIÓN 614.
Para permitir que funcione el WML en una
partición para hacer una proyección sobre el efecto de cambiar pesos
de partición en el trabajo que funciona en otra partición, cada
partición tiene acceso a una estructura de datos compartida que
contiene datos de prestaciones acerca de cada partición lógica en el
grupo. Estos datos de prestaciones del nivel de partición incluyen,
por ejemplo:
\bullet Requerimientos de CPU de trabajo que
funcionan en la partición por clase de servicio;
\bullet Como lo está haciendo de bien cada
clase de servicio hacia su objetivo en la partición;
\bullet Uso de CPU por prioridad de expedición
de CPU para la partición.
En una realización preferida del presente invento
puesta en práctica en un sistema OS/390, esta estructura de datos
compartida es construida y mantenida en una instalación de
acoplamiento. Sin embargo, otros intentos de compartir datos podrían
ser usados para poner en práctica esta estructura de datos tales
como mensajes o disco compartido.
Lo descrito antes es una capacidad para
redistribuir dinámicamente recursos de CPU de un entorno de
ordenador. Los recursos son redistribuidos a través de particiones
lógicas, como ejemplo, ajustando dinámicamente los pesos de la
partición lógica.
Además para ajustar dinámicamente los recursos de
CPU de un entorno de ordenador, los recursos del procesador lógico
pueden también ser ajustados dinámicamente.
Una partición lógica está configurada con uno o
más procesadores lógicos, que están distribuidos en las unidades de
tratamiento central físicas de complejos de procesador central para
ejecutar el trabajo. Para permitir que una partición consuma su
capacidad de CPU asignada, procesadores lógicos suficientes han de
estar configurados a la partición lógica. Por ejemplo, considérese
el caso de la Partición Lógica A que funciona en un CPC con diez
CPU. Si un administrador de carga de trabajo asigna a la Partición
Lógica A el 50% de la capacidad del CPC, la Partición Lógica A
necesita al menos cinco procesadores lógicos que estén configurados
para ello. (Cinco procesadores lógicos podrían funcionar en cinco de
las CPU o 50% de la capacidad de los CPC). Debe asignársele a la
Partición Lógica A posteriormente el 95% de la capacidad de los CPC,
la Partición Lógica A sería entonces configurada con diez
procesadores lógicos. Como el WML puede ajustar dinámicamente la
capacidad asignada a la Partición Lógica A con una configuración de
procesador lógica definida estáticamente, diez procesadores lógicos
son configurados a la Partición Lógica A con el fin de acomodar
todas las asignaciones de capacidad posibles. Sin embargo, a la
Partición Lógica A debe asignársele, por ejemplo, solo el 20% de la
capacidad de los CPC, se plantean dos problemas desde los
procesadores lógicos definidos estáticamente: 1) Cada uno de los
diez procesadores lógicos, por término medio, será habilitado para
consumir recursos físicos de la CPU a la velocidad de sólo 0,2 de
una capacidad física de la CPU (20% de diez CPU dividido por diez
procesadores lógicos es igual a 0,2 CPU por procesador lógico). Esto
puede restringir severamente cargas de trabajo cuyo caudal es
controlado por una sola tarea, ya que esa sola tarea será solamente
capaz de ejecutar a 0,2 de la capacidad física de la CPU - esto es
denominado a menudo como el efecto de motor corto; 2) La eficiencia
de software y hardware es reducida significativamente cuando hay que
administrar diez procesadores lógicos, cuando solo se requieren dos
procesadores lógicos.
A fin de acceder a las deficiencias anteriores,
la configuración de una partición lógica no es definida
estáticamente, sino que en vez de ello es ajustada dinámicamente. En
un ejemplo, es el WML el que administra la partición y hace el
ajuste dinámico. El WML puede hacer esto para cada partición lógica
de un entorno de ordenador (o dentro de un grupo de LPAR). Una
realización de la lógica asociada con el ajuste dinámico de la
configuración de los procesadores lógicos está descrita con
referencia a la fig. 7.
Inicialmente, una partición lógica está
configurada con el número mínimo de procesadores lógicos requeridos
para permitirla consumir la capacidad asignada a la partición lógica
por el administrador de carga de trabajo (o la capacidad que es
usada realmente, si es mayor), OPERACIÓN 700. Cuando la asignación
de capacidad de la partición lógica (o uso de capacidad) cambia,
PREGUNTA 702, se hace una evaluación para determinar si el número de
procesadores lógicos configurado a la partición lógica debe ser
alterado, OPERACIÓN 704. En un ejemplo, el número de procesadores
lógicos configurado a una partición lógica permanece próximo al
número de CPU físicas necesario para proporcionar la capacidad de
CPC asignada a (o usada por) una partición lógica. Así, cada
procesador lógico ejecuta próximo a la capacidad de una CPU física y
el número de procesadores lógicos a administrar es minimizado.
Con el fin de hacer la evaluación de si cambiar
la configuración lógica, se usa la siguiente ecuación en un
ejemplo:
L=
piso[max(W,U)xP+1.5]
\hskip0.5cmsujeto a un máximo de L=P,
donde
L=número de procesadores lógicos configurados a
una partición lógica;
W=porcentaje de capacidad de CPC asignada a la
partición lógica;
U=porcentaje de la capacidad de CPC que es usada
corrientemente por la partición lógica; y
P=número de CPU físicas en un CPC, OPERACIÓN
705.
L es evaluado por el administrador de carga de
trabajo basado en los valores corrientes de P, W y U a, por ejemplo,
intervalos regulares y frecuentes (por ejemplo cada 10 segundos). Se
usan umbrales para determinar si el valor real de L
(L-act) para la partición lógica debe ser aumentado
o disminuido. Si el valor de L calculado de nuevo
(L-calc) es mayor que el valor corriente de
L-act, PREGUNTA 706, luego L-act es
aumentado a L-calc, OPERACIÓN 708. De otro modo, si
L-calc es un valor inferior en dos o más al de
L-act, PREGUNTA 710, luego L-act es
ajustado a un valor de L-calc menos uno, OPERACIÓN
712. Si L-calc es igual a L-act o
solamente un valor inferior en uno a L-act, no se
hace cambio en el valor de L-act para la partición
lógica, OPERACIÓN 714. Mediante el uso de estos umbrales, se evitan
cambios innecesarios de L-act debidos a pequeñas
fluctuaciones de carga de trabajo, mientras aún se responde a
demandas de cargas de trabajo de capacidad rápidamente
creciente.
Para más ilustración, considérese el siguiente
ejemplo: Supóngase P=10 W=U=24%. Una configuración estática de
procesadores lógicos requeriría L(estática)=10 para manejar
el caso W debe crecer a más del 90%. Sin embargo, en una realización
preferida del presente invento:
L(Dinámica)=piso[max)(.24,.24)x10+1,5]x3.
Así, en este ejemplo, L(estática) se restringiría a ejecutar
una única tarea a 0,24 de una CPU física, mientras que
L(Dinámica) permite ejecutar una sola tarea a 0,80 de una CPU
física, proporcionando con ello un incremento del 233% en caudal
para cargas de trabajo controladas por prestación de una sola tarea.
Adicionalmente, la eficiencia de software y hardware es
significativamente mejorada ya que, en este ejemplo, solamente se
administran 3 procesadores lógicos en vez de los diez procesadores
lógicos necesarios para L(estática).
Otro recurso que puede compartirse de un entorno
de ordenador que ha de ser administrado es un recurso asíncrono, tal
como un recurso de E/S. En particular, han de ser administradas
operaciones o solicitudes de E/S dentro de un coprocesador (por
ejemplo un subsistema de canal). Esta administración incluye la
priorización de las operaciones de E/S, de tal modo que las
operaciones de E/S con una mayor prioridad resulten procesadas más
rápido, y/o a las operaciones de E/S con una mayor prioridad le son
asignadas más ancho de banda del canal.
En sistema de ordenadores multiprogramados de
gran escala contemporáneos, la iniciación y ejecución de largos
procesos de funcionamiento, tales como operaciones de E/S para leer,
escribir, y controlar dispositivos de E/S unidos, es típicamente
realizada mediante el uso de varios elementos de ordenador que
funcionan de modo independiente (véase fig. 8). Por ejemplo, un
programa que se ejecuta en un procesador central 800 puede requerir
una operación de E/S con un dispositivo unido 804; sin embargo, la
iniciación y ejecución reales de la operación de E/S con el
dispositivo unido es realizada por uno o más procesadores separados
y que ejecutan independientemente que trabajan juntos, típicamente
llamados un subsistema de canal 802. La metodología de tratamiento
asíncrona de E/S es empleada generalmente a fin de optimizar y usar
eficientemente el procesador central para otro trabajo al mismo
tiempo que la ejecución de los dispositivos de E/S de ejecución
relativamente larga. Es decir, para minimizar el tiempo de
tratamiento total de exceso del procesador, y el tiempo de espera
del procesador que de otro modo sería requerido a fin de acceder y
de leer/escribir en los dispositivos de E/S unidos. Tal metodología
está diseñada para conseguir un solapamiento, o concurrencia de
ejecución máximos de operaciones de E/S con la ejecución de otro
trabajo de procesador en un gran sistema multiprogramado.
En tales sistemas de tratamiento asíncrono de
E/S, el procesador central inicia la ejecución de una operación de
E/S solicitada por programa mediante el uso de una instrucción de
E/S, tal como la instrucción S/390 START SUBCHANNEL. Tal instrucción
es típicamente responsable de:
- 1.
- Poner en cola (añadir) la solicitud de operación de E/S en una cola de trabajo de E/S de subsistema de canal; y
- 2.
- Señalar el subsistema de canal de ejecución asincrónicamente para procesar la cola de trabajo de E/S.
Subsiguientemente, el procesador central es libre
de realizar otro trabajo/instrucciones y no está implicado
directamente en la ejecución real de las operaciones de E/S
solicitadas con el dispositivo de E/S.
Debido a 1) la naturaleza asíncrona del proceso
anterior, 2) el funcionamiento independiente del procesador central
y de los procesadores de subsistema de canal, 3) el tiempo de
ejecución relativamente largo de operaciones de E/S en comparación
con la velocidad de ejecución de los procesadores centrales, y 4) el
hecho de que algunos de los recursos de subsistema de canal o todos,
tales como los trayectos de canal que conectan el dispositivo al
subsistema de canal, pueden estar ocupados realizando otras
operaciones cuando es solicitada una operación de E/S mediante un
programa, es muy probable que múltiples solicitudes de E/S sean
puestas en cola al mismo tiempo en las colas de trabajo de E/S del
subsistema de canal. Es decir, la instrucción START SUBCHANNEL es
ejecutada por los procesadores centrales a una mayor velocidad que
la capacidad del subsistema de canal de realizar las operaciones de
E/S solicitadas, causando de modo continuo por ello colas de trabajo
de E/S profundas de nivel N de solicitudes de operaciones de E/S
pendientes.
A fin de procesar las solicitudes de E/S
pendientes, los microprocesadores que comprenden el subsistema de
canal inspeccionan sus respectivas colas de trabajo de E/S (véase
fig. 8), retiran de la cola una o más solicitudes de E/S de estas
colas e intentan iniciar las solicitudes de E/S retiradas de las
colas con sus respectivos dispositivos de E/S. La iniciativa para
esta actividad depende del microprocesador y de las colas de trabajo
en cuestión dentro del subsistema de canal. Por ejemplo, el
procesador de E/S del subsistema de canal que interactúa con el
procesador central podría iniciar este proceso periódicamente cuando
no está ocupado realizando otra tarea, como resultado de una o más
señales de START SUBCHANNEL del procesador central, o una
combinación de ambas.
Un ejemplo de las distintas colas de trabajo de
un subsistema de canal están descritas con referencia a la fig. 8.
Como se ha mencionado previamente, las solicitudes de E/S son
puestas en cola en una cola de trabajo 806 de procesador de E/S por
ejemplo, por la instrucción START SUBCHANNEL. Las solicitudes de E/S
son a continuación retiradas de la cola de la cola de trabajo del
procesador de E/S por un procesador 808 de E/S. Las solicitudes que
son retiradas de la cola del procesador de E/S son puestas en cola
por el procesador de E/S sobre una cola de trabajo 810 del
procesador de canal. Después de ello, esas solicitudes son retiradas
de la cola por un procesador de canal 812 y puestas de nuevo en cola
sobre una cola de trabajo 814 de una unidad de control. El
procesador de canal retira entonces de las colas las solicitudes de
la cola de trabajo de la unidad de control para que sean enviadas a
través del trayecto de canal a la unidad de control y posteriormente
al dispositivo de E/S.
Corrientemente, dentro de la familia de sistemas
de productos S/390, se realizan procesos de retirada de la cola de
subsistema de canal e iniciación de trabajo sobre la base de Primero
en llegar, Primero en salir (FIFO). Este proceso el lógicamente el
más simple de poner en práctica, y está destinado a optimizar el
caudal, y ha sido en el pasado, una estrategia aceptable para la
transferencia de trabajo entre los distintos elementos de
tratamiento asíncrono dado que la profundidad media de la cola de
trabajo pendiente es relativamente somera y que los tiempos
pendientes de trabajo de E/S siguen siendo de una duración
relativamente corta (es decir, que el número medio de solicitudes de
E/S pendientes en las distintas colas de trabajo de E/S no causan un
alargamiento significativo del tiempo total de respuesta de E/S para
operaciones de E/S asociadas con programas críticos de elevada
importancia y/o en tiempo real).
Sin embargo, en sistemas operativos que
proporcionan funciones de priorización de aplicación/programa a fin
de soportar las demandas de usuario para el tratamiento en el tiempo
de un trabajo crítico o dependiente del tiempo, una estrategia de
tratamiento FIFO para solicitudes de E/S pendientes resulta cada vez
menos aceptable, ya que la profundidad media de las colas de trabajo
de FIFO aumenta. Por ejemplo, volúmenes de acceso paralelo usados en
unión con el Servidor de Almacenamiento de Empresa de IBM aumentan
la profundidad media de la cola en el subsistema de canal. Esto es
típicamente debido al hecho de que solicitudes de E/S de menor
importancia o menos críticas de tiempo pueden ser puestas en cola
delante de las solicitudes más importantes en las colas de trabajo
de FIFO y por ello serían iniciadas antes de las solicitudes de E/S
más críticas. Frecuentemente, el trabajo menos crítico realiza E/S
que vincula recursos durante largos periodos de tiempo, aumentando
el retraso encontrado para un trabajo más importante. Esto da como
resultado típicamente una probabilidad incrementada de retraso para
las solicitudes de E/S más importantes.
Un incremento en el tiempo de retraso, también
llamado tiempo pendiente de E/S (que podría ser o bien retraso total
en tiempo real o bien retraso en tiempo relativo cuando es comparado
con la velocidad del procesador central) es a menudo debido a la
incapacidad del subsistema de canal y de los dispositivos unidos
para mantener una velocidad de ejecución de E/S que no impacte en la
terminación temporalmente de las solicitudes críticas de E/S. (Dicho
de modo diferente, la incapacidad de mantener una velocidad de
ejecución que no da como resultado un alargamiento inaceptable del
tiempo de ejecución de los programas críticos de alta
importancia/tiempo). Como se ha establecido antes, la probabilidad
de un alargamiento inaceptable en el tiempo total de respuesta de
E/S para solicitudes críticas de E/S aumenta generalmente cuando se
usa una metodología de tratamiento de trabajo FIFO. Esta
probabilidad de retraso es además ampliada cuando la velocidad y
número de procesadores centrales aumenta a un régimen mayor que el
aumento de velocidad de los dispositivos de E/S unidos y otros
elementos de subsistema de canal requeridos, tales como los
trayectos de canal a los que están unidos los dispositivos. En
general, la disparidad en el régimen del incremento de velocidad del
procesador central de E/S sobre el régimen de incremento de
velocidad de E/S continúa creciendo en entornos de sistemas grandes
contemporáneos dando como resultado una probabilidad crecientemente
mayor de retrasos en colas y mayores tiempo de respuesta de E/S
(bien en tiempo real en tiempo relativo) para trabajo crítico.
A fin de minimizar la frecuencia de tiempos de
respuesta de E/S alargados para operaciones de E/S de gran
importancia y críticas de tiempo, como ejemplos, debido a los
retrasos en las colas en el subsistema de canal, se ha definido una
técnica de manejo de la prioridad para procesar una o más de las
colas de trabajo de E/S pendientes del subsistema de canal.
Ejemplos de la puesta en práctica de una técnica
de tratamiento de prioridades entre dos procesadores o procesos que
se ejecutan de modo independiente incluyen lo siguiente:
- 1.
- Un procesador (o proceso) de puesta en cola añade solicitudes de E/S a una cola de trabajo de E/S de subsistema de canal (la cola particular depende de la fase de tratamiento) usando una técnica de secuencia de prioridades basada en un número de prioridad especificado por programa (por ejemplo por WLM). El subsistema de canal elimina subsiguientemente la primera solicitud de E/S de mayor prioridad de la cola de trabajo, usando una técnica de FIFO; o
- 2.
- Un procesador (o proceso) de puesta en cola añade solicitudes de E/S a la parte inferior de la cola de trabajo de E/S, usando una técnica de puesta en cola de FIFO. El subsistema de canal, usando una técnica de selección de prioridades, busca subsiguientemente todos los elementos de solicitud de E/S en la cola de trabajo y elimina y procesa la solicitud de E/S con el mayor número de prioridad especificado por programa.
La técnica de puesta en cola de FIFO (técnica #
2) requiere menos instrucciones, y por ello, permite que el
procesador central complete el proceso de programación de solicitud
de E/S más rápidamente. Esto libera al procesador central para
realizar otro trabajo más rápidamente. Para el proceso de puesta en
cola/retirada de cola entre los distintos microprocesadores que
constituyen el subsistema de canal, la técnica para elegir depende
típicamente de cuál de los procesadores participantes es el más
restringido con respecto a su capacidad de tratamiento y requisitos
de temporalidad. El decir, si el procesador de puesta en cola es el
más restringido o limitado entonces se elige la segunda técnica. Si
el procesador de retirada de cola, es el más restringido o limitado,
entonces se elige típicamente la primera
técnica.
técnica.
Independientemente de cuál de estas técnicas se
emplee, el resultado es que el subsistema de canal da preferencia a
la iniciación y ejecución de solicitudes de E/S pendientes basado en
una metodología de priorización, no en una metodología de tiempo de
llegada o FIFO.
Además, en una realización, independientemente de
las técnicas de puesta en cola y selección empleadas, se usan
distintos criterios para priorizar y/o seleccionar una solicitud que
ha de ser procesada. En un ejemplo, estos criterios incluyen lo
siguiente:
- 1.
- La selección de solicitudes de E/S pendientes basada en un número de prioridad especificado por programa en el que cada número diferente corresponde a un único nivel de prioridad. Por ejemplo, un intervalo de números únicos consecutivos ha de ser previsto y el intervalo de números total ha de ser igual o mayor que el número total de categorías de trabajo distintas que requieren diferenciación por prioridad. Por ejemplo, si el sistema proporciona la capacidad de ejecutar al mismo tiempo N sistemas operativos diferentes, tal como es posible con un sistema típico S/390, entonces las técnicas de prioridad de subsistema de canal han de ser previstas para N o más niveles de prioridad distintos. Cada nivel de prioridad, desde el menor a mayor nivel o viceversa, estaría representado por un único número en el intervalo de 0 a N-1.
- 2.
- La selección de prioridad de solicitudes de E/S pendientes usando una técnica que aplica también "equidad" a todas las solicitudes puestas en cola independientemente de su prioridad. Esto se desea típicamente a fin de minimizar la probabilidad de que solicitudes de menor prioridad no sean procesadas durante períodos extendidos de tiempo lo que podría ocurrir, por ejemplo, debido a un número desproporcionadamente grande de solicitudes de mayor prioridad que son presentadas al subsistema de canal durante un periodo extendido de tiempo. La selección por equidad también podría aplicarse a solicitudes pendientes de igual prioridad dependiendo de otras consideraciones. Por ejemplo, para proporcionar equidad para solicitudes pendientes que han sido ya retiradas de colas, iniciadas de modo insatisfactorio, y vueltas a poner en cola uno o más veces con otras solicitudes de igual prioridad que no han sido aún seleccionadas. Tal técnica está descrita con referencia a la fig. 9. Esta técnica se aplica tanto a la prioridad como a equidad a una pluralidad de categoría diferentes de solicitudes pendientes.
- 3.
- Controles externos de usuario/operador para:
- 1.
- Habilitar/inhabilitar globalmente las técnicas de tratamiento por prioridad. Este control puede ser requerido a fin de forzar el tratamiento por FIFO de las solicitudes pendientes, si las técnicas de prioridad son innecesarias o incapaces de acomodar adecuadamente un entorno de ejecución de programa atípico.
- 2.
- Para sistemas que proporcionan la ejecución al mismo tiempo de múltiples particiones lógicas, un control externo que permite que el usuario especifique un valor de prioridad "por defecto" para solicitudes de E/S asociadas con una partición lógica dada. Esto es usado cuando el sistema operativo que se ejecuta en la partición lógica no esta diseñado para especificar un valor de prioridad para sus solicitudes de E/S, pero que es sin embargo para competir satisfactoriamente con otros sistemas operativos que se ejecutan en otras particiones lógicas que especifican priorización de E/S.
- 3.
- Para sistemas que proporcionan la ejecución al mismo tiempo de múltiples particiones lógicas, un control externo que permite que el usuario especifique un intervalo mínimo y máximo de valores de prioridad de subconjunto para cada partición lógica, a partir del conjunto total de valores proporcionados por el subsistema de canal. Este control es usado cuando múltiples sistemas operativos que se ejecutan en particiones lógicas separadas usan priorización de E/S independientemente y sin conocimiento de lo que usan otras particiones. Es decir, para permitir una segregación basada en prioridad de las solicitudes iniciadas por cada partición que usa.
Para los artículos 3.2 y 3.3 anteriores, en una
realización, el procesador central asigna implícitamente el valor de
prioridad por defecto especificado por el usuario o la prioridad
mínima/máxima permitida especificada por el usuario para el programa
que se ejecuta en la partición lógica de una manera que sea
transparente al programa que funciona en la partición. En sistemas
S/390, esto puede conseguirse al mismo tiempo por el gestor de
partición lógica (hipervisor) y la instrucción START SUBCHANNEL del
procesador central.
Cuando el programa que funciona en la partición
lógica ejecuta START SUBCHANNEL, a fin de iniciar una operación de
E/S, la ejecución interpretativa de la instrucción START SUBCHANNEL
en el procesador central adquiere implícitamente tanto el número de
prioridad por defecto como los números de prioridad mínimo/máximo
permitidos a partir de una tabla de descripción de estado (SD) de
Ejecución Interpretativa de Inicio (SIE). Esta tabla es creada y
cargada al procesador central por el hipervisor de partición lógica,
cuando ejecuta la instrucción de SIE a fin de colocar la partición
en un Estado de Ejecución. La ejecución interpretativa de START
SUBCHANNEL usa entonces los valores de prioridad por defecto de
tabla de descripción de estado de SIE y mínimo/máximo para ajustar
implícitamente el valor de prioridad apropiado a la solicitud de E/S
sin implicación por el programa que funciona en la partición
lógica
Cuando un valor de prioridad no es especificado
por el programa que se ejecuta en la partición lógica, la
interpretación de START SUBCHANNEL asigna el valor de prioridad por
defecto especificado por el usuario a la solicitud de E/S. Cuando el
programa que se ejecuta en una partición lógica especifica un número
de prioridad cuando ejecuta START SUBCHANNEL, la ejecución
interpretativa de START SUBCHANNEL compara el valor de prioridad
especificado por el programa con los valores de prioridad
mínimo/máximo especificados por el hipervisor en la tabla de
descripción de estado. Cuando la prioridad especificada por el
programa es menor que el valor mínimo especificado por el
hipervisor, el valor mínimo a partir de la tabla de descripción de
estado sustituye implícitamente al valor especificado por el
programa. Cuando el valor de prioridad especificado por el programa
es mayor que la prioridad máxima especificada por el hipervisor, el
valor de prioridad máximo a partir de la tabla de descripción de
estado sustituye al valor especificado por el programa.
Una técnica de selección de prioridad puede ser
considerada usando cero o más de los criterios anteriores. Una
realización de una técnica para seleccionar una solicitud que ha de
ser procesada, que usa al menos alguno de los criterios anteriores
está descrita con referencia a la fig. 9.
Inicialmente, es accedida una cola de trabajo
pendiente, OPERACIÓN 900. Por ejemplo o bien la cola de trabajo del
procesador de E/S, la cola de trabajo del procesador de canal o bien
la cola de trabajo de la unidad de control es accedida. Después de
ello, el cómputo de solicitudes pendientes retiradas de la cola es
incrementado en 1 (por ejemplo, DQCOUNT=DQCOUNT+1), OPERACIÓN
902.
Subsiguientemente, se toma una determinación en
cuanto a que categoría de solicitudes pendientes ha de ser tratada,
OPERACIÓN 904. En un ejemplo, la categoría seleccionada es igual a
DQCount MODULUS el número de categorías. Así, como en este ejemplo
hay cuatro categorías, la categoría seleccionada es igual a DQCount
MODULUS 4. Si el resaltado es 0, entonces es retirada de la cola la
primera solicitud de cualquier prioridad, OPERACIÓN 906. Sin embargo
si la categoría seleccionada es 1, entonces la primera solicitud de
mayor prioridad no retirada previamente de la cola es seleccionada,
OPERACIÓN 908. Además, si la categoría seleccionada es dos, entonces
la primera solicitud de mayor prioridad retirada de la cola
previamente e iniciada insatisfactoriamente es seleccionada,
OPERACIÓN 910. Sin embargo, si el resultado es 3, entonces la
primera solicitud de cualquier prioridad no retirada de la cola
previamente es seleccionada, OPERACIÓN 912. Después de ello, la
solicitud seleccionada es retirada de la cola y tratada, OPERACIÓN
914.
Descrito en detalle antes, hay un mecanismo de
priorización para solicitudes asíncronas dentro de un coprocesador.
Aunque los ejemplos están descritos con referencia a solicitudes de
E/S y subsistemas de canal, estos son solamente ejemplos. La
aproximación es igualmente aplicable a otras solicitudes asíncronas
y coprocesadores. Además, aunque el ejemplo descrito antes está
descrito con referencia a formación de colas, puede usarse un
mecanismo de priorización similar para ajustar la asignación de
recursos (por ejemplo ancho de banda) en el canal, que es capaz de
ejecutar de modo concurrente múltiples operaciones, dando más del
recurso de canal a las operaciones de mayor prioridad, en vez de
ejecutarlas todas ellas de igual modo.
Además, aunque se han descrito aquí distintos
ejemplos lo han sido con referencia a un sistema dividido de modo
lógico, las capacidades de prioridad de E/S son utilizables dentro
de un sistema que no tiene o soporta particiones lógicas.
Como otro beneficio, la configuración de E/S (por
ejemplo, la configuración de trayecto de canal) de un entorno de
ordenador puede ser cambiada dinámicamente a fin de mover el recurso
de canal disponible a donde se necesita o para eliminar el recurso
de canal excesivo, sin intervención humana. Esto reduce las
experiencias requeridas para configurar E/S, mejora la total
disponibilidad del sistema, maximiza la utilización de canales
instalados y usa las prioridades relativas de cargas de trabajo para
distribuir la capacidad E/S disponible. En una realización, son
tenidos en cuenta uno o más factores antes de hacer un cambio, a fin
de determinar el "mejor" cambio a hacer. Estos factores
incluyen, por ejemplo, el impacto al tiempo de respuesta, o
velocidad E/S; el impacto al tiempo de respuesta para conseguir
objetivos de carga de trabajo específicos; estando ocupado el puerto
de destino; las características de disponibilidad resultantes (por
ejemplo, añadir trayectos sin puntos únicos de fallo en común); y la
complejidad resultante (o entropía) de la configuración de E/S.
Se ha descrito en detalle una realización de la
lógica asociada con ajustar dinámicamente una configuración E/S con
referencia a las figs. 10-14. Inicialmente, el
tratamiento de equilibrio de base es invocado, por ejemplo, por un
componente administrador de carga de trabajo del entorno de
ordenador al comienzo de intervalos de tiempo programados
regularmente, por ejemplo, cada 10 segundos. La función del
tratamiento de equilibrio de base es equilibrar continuamente la
velocidad de E/S uniformemente a través de los subsistemas (por
ejemplo, unidades de control lógico) (con canales definidos
flotantes (es decir, administrados)); asegurar que todos los
dispositivos pueden ser accedidos a través de dos o más trayectos,
preferiblemente sin puntos únicos de fallo en común; y reequilibrar
subsistemas después de un fallo de hardware. Este tratamiento
incluye dos componentes: recogida de datos, OPERACIÓN 1000 (fig. 10)
y comprobación del equilibrio, OPERACIÓN 1002. La recogida de datos
es puesta en marcha una vez que cada intervalo dentro de cada
partición lógica del entorno (suponiendo que el entorno está
compuesto por particiones lógicas o dentro de cada sistema si no se
dividió en particiones lógicamente); y la comprobación de equilibrio
es realizada sólo una vez por intervalo por LPAR agrupado (de nuevo,
suponiendo agrupamiento).
La puesta en serie de parte de la recogida de
datos del tratamiento es obtenida por el hecho de que el WLM sólo
invoca la técnica de equilibrio de base una vez por intervalo en
cualquier sistema. Adicionalmente, se ha usado la comprobación del
número de versión cuando se actualiza la información recogida. Por
ejemplo, bloques de control almacenados dentro de la instalación de
acoplamiento son puestos en serie para actualizar la información
recogida. Estos bloques de control permiten una recogida de datos a
nivel de grupo, que permite la administración de canales a través de
miembros de un grupo en el mismo CPC.
A fin de poner en serie la comprobación del
equilibrio, se usa la puesta en serie con un marco de grupo
específicamente para este propósito. Típicamente, cuando el
equilibrio es solicitado inmediatamente después de la recogida de
datos, se solicita la puesta en serie del ancho de grupo. Si la
puesta en serie es obtenida, prosigue la comprobación del
equilibrio; si no, entonces la comprobación del equilibrio tiene
lugar dentro del LPAR agrupado, y no se necesita ejecutar de nuevo
durante este intervalo.
El tratamiento de recogida de datos de la fig. 10
está además descrito con referencia a la fig. 11. En una
realización, los datos de medición son recogidos y actualizados,
para cada subsistema (por ejemplo, unidad de control lógico)
definido, OPERACIÓN 1100. La medición de datos incluye, por ejemplo,
el tiempo de conexión, el tiempo pendiente, la ocupación del
subsistema, la ocupación del dispositivo, el tiempo de ocupación del
puerto de destino, y las cuentas de ocupación del puerto de destino.
Los datos de medición actualizados son almacenados en bloques de
control en la memoria del procesador, junto con bloques de control
dentro de la memoria compartida, tales como la instalación de
acoplamiento.
Después de actualizar los datos de medición, es
calculada una velocidad de E/S de objetivo por defecto para cada
subsistema, OPERACIÓN 1102. La velocidad de E/S indica si un ancho
de banda de canal adicional es necesario o deseado. Como ejemplo, la
velocidad de E/S de objetivo por defecto es ponderada por el tiempo
de conexión. A fin de realizar este cálculo, son realizadas las
operaciones siguientes, en un caso: Para cada subsistema
administrado por DCM, es obtenida la velocidad corriente o real,
junto con la cantidad de tiempo de conexión suministrada por ese
subsistema durante el intervalo pasado. La velocidad de E/S es luego
multiplicada por el tiempo de conexión para obtener un resultado.
Los resultados para los subsistemas son a continuación sumados
juntos para obtener una suma. La suma es a continuación dividida por
el tiempo de conexión total a fin de determinar una velocidad de E/S
de objetivo por defecto ponderada por el tiempo de conexión.
Volviendo a la fig. 10, después de realizar la
acumulación de datos, es realizada la comprobación del equilibrio
como se ha descrito aquí, OPERACIÓN 1002. Se ha descrito una
realización de la lógica asociada con comprobación del equilibrio
con referencia a la fig. 12. Inicialmente, la puesta en serie es
realizada para determinar si la comprobación del equilibrio debe ser
realizada en este caso, PREGUNTA 1200. Si el intento de colocar en
serie el ancho de grupo no es satisfactorio, a continuación la
lógica de comprobación de equilibrio no es realizada, OPERACIÓN
1202. Sin embargo, si la puesta en serie es obtenida, a continuación
los subsistemas son buscados para aquellos que están fuera de su
intervalo objetivo, OPERACIÓN 1204.
Por ejemplo, la velocidad de E/S real es obtenida
para todos los subsistemas y a continuación se hace un promedio. (En
un ejemplo, sólo aquellos subsistemas administrados por
administración dinámica CHPID (DCM) están incluidos en el promedio).
Una vez que se ha determinado el promedio, es creado un intervalo.
En un ejemplo, el intervalo es, por ejemplo, más o menos del 5% del
valor del promedio. Después de ello, la velocidad de E/S objetivo de
cada subsistema es comparada con el intervalo objetivo. Si no se ha
especificado velocidad de E/S objetivo, a continuación es usada la
velocidad de E/S objetivo por defecto. Como resultado de las
comparaciones, son creadas dos listas, OPERACIÓN 1206. Una de las
listas incluye aquellos subsistemas que exceden del intervalo
objetivo y la otra incluye aquellos subsistemas que no coinciden
dentro del intervalo. En cada caso, los subsistemas que han sido
modificados recientemente (por ejemplo, en los últimos 10 segundos)
son excluidos de las listas.
Después de ello, la lista de objetivos errados es
clasificada, OPERACIÓN 1208. En un ejemplo, el WLM es usado para
clasificar esta lista, ya que el WLM está en la posición para
determinar qué subsistemas son más importantes. Así, el WLM ordena
los subsistemas en el orden en el que al WLM le gustaría que fueran
atendidos o se les diera servicio.
Después de la clasificación de la lista, se da
servicio a uno o más de los subsistemas de la lista, por ejemplo,
desplazando la capacidad desde los subsistemas infrautilizados a los
subsistemas suprautilizados, OPERACIÓN 1210. Como muchos de los
subsistemas a los que se les puede dar servicio en el tiempo
asignado son ajustados.
Una realización de la lógica asociada ajustando
la capacidad se ha descrito con referencia a las figs.
13a-13b. Inicialmente, es seleccionado un subsistema
de la lista, OPERACIÓN 1300 (fig. 13a). En un ejemplo, es el primer
subsistema en la lista que es seleccionada. Después de ello, se toma
una determinación de si el problema es la ocupación del puerto de
destino, OPERACIÓN 1302. En particular, se toma una determinación de
si la contención es elevada (por ejemplo, tiempo de ocupación del
puerto de destino), y si lo es, varía con respecto a los diferentes
enlaces que se conectan a él. Si la ocupación del puerto de destino
es elevada en todos los enlaces, entonces significa que se necesita
añadir otro trayecto de canal. Sin embargo, si esta es elevada sólo
en un enlace, entonces un trayecto de canal es movido a otro enlace,
OPERACIÓN 1304. Así, un trayecto existente es movido desde el enlace
con excesivo tiempo de ocupación del puerto de destino a otro
enlace, y el tratamiento continúa poniendo en práctica el cambio,
OPERACIÓN 1306 (fig. 13b). Ejemplos de cómo llevar a cabo el cambio
están descritos en el documento US-5.527.379,
concedida en Octubre de 1993; el documento
US-5.257.368, concedida en Octubre de 1993; y el
documento U.S. 5.220.654, concedida en Junio de 1993.
Después de haber realizado el cambio, se toma una
determinación sobre si hay otros sistemas que no están en el
intervalo objetivo, PREGUNTA 1308. Si no, entonces se completa el
tratamiento de la corrección de desequilibrio. Sin embargo, si otros
subsistemas no están dentro del intervalo, entonces el tratamiento
continua con la OPERACIÓN 1300 "SELECCIONAR EL SIGUIENTE
SUBSISTEMA EN LA LISTA" (fig. 13a).
Volviendo a la PREGUNTA 1302, si el problema no
es debido a la contención, entonces el tratamiento continúa, como se
ha descrito aquí.
En particular, en un ejemplo, los trayectos de
canal posibles que han de ser añadidos a los subsistemas han sido
determinados, OPERACIÓN 1310. Esta determinación incluye la
comprobación dentro de la topología física de todos los canales que
pueden pertenecer al subsistema particular, y a continuación para
cada canal, determinar caminos (trayectos) posibles que pertenezcan
al subsistema. Un trayecto es una permutación de conectividad a
través de los elementos del hardware que conectan tanto el canal
como el subsistema. Todos estos trayectos (o un subconjunto, si se
desea) están incluidos en los trayectos posibles.
Similarmente, se toma una determinación para
eliminar los trayectos posibles, OPERACIÓN 1312. Como un ejemplo, si
hay múltiples subsistemas en el mismo canal, a continuación uno de
los trayectos conectados al subsistema de que se comparte es
considerado un candidato a eliminar.
Después de ello, se toma una determinación en
cuanto a qué subsistemas serán impactados por el cambio, OPERACIÓN
1314. Además, también se ha determinado un índice de entropía que
indica la complejidad de una configuración que ha de ser cambiada,
como se ha descrito más adelante.
Se ha descrito una realización de la lógica
asociada con la determinación de los subsistemas verificados con
referencia a la fig. 14. Inicialmente, un lista de bloque de control
de subsistema (SSCB) para subsistemas y una lista CHPID para canales
son retiradas para su uso más adelante, OPERACIÓN 1400. Después de
ello, un id de trayecto de canal es recuperado desde un bloque de
selección de decisión (DSB) asociado con el canal propuesto y es
añadido a la lista CHPID, OPERACIÓN 1402. En particular, cada
trayecto tiene un bloque de selección de decisión asociado con él.
El bloque de selección de decisión es un bloque de control que
incluye información diferente, incluyendo, por ejemplo, el id del
trayecto de canal (CHPID), un puntero de bloque de control de
subsistema (SSCB) que indica la unidad de control lógico asociada
con el trayecto de canal, y una disposición de SSCB verificados.
Cada SSCB incluye todos los canales conectados al subsistema.
Después de ello, todos los CHPID asociados con el
SSCB que han de ser asistidos son también añadidos a la lista de
CHPID, OPERACIÓN 1404. En particular, el puntero SSCB es recuperado
desde el DSB que indica el SSCB que ha de ser asistido. Todos los
CHPID en el SSCB son a continuación añadidos a la lista de
CHPID.
Después de ello, para cada CHPID en la lista, los
SSCB asociados con el trayecto de canal son añadidos a la lista
SSCB, OPERACIÓN 1406. En un ejemplo, esta información es obtenida
desde una tabla de trayecto de canal que indica los SSCB conectados
a cada CHPID.
Subsiguientemente, se toma una determinación en
cuanto a si se añadieron cualesquiera SSCB a la lista, PREGUNTA
1408. Si es así, entonces para cada SSCB en la lista, los CHPID no
son ya añadidos en la lista CHPID, OPERACIÓN 1410, como se ha
descrito antes con la OPERACIÓN 1404.
Después de ello, se toma otra determinación en
cuanto a si se añadieron cualesquiera CHPID, PREGUNTA 1412. Si se
añadieron más CHPID a la lista, luego continúa el tratamiento con la
OPERACIÓN 1406. Sin embargo, si no hay SSCB o CHPID añadidos a las
listas, PREGUNTAS 1408, 1412, entonces para cada SSCB en la lista,
es creado un elemento de disposición DSB, OPERACIÓN 1414. Es decir,
cada uno de los SSCB son añadidos a la disposición de SSCB
verificados. Adicionalmente, cada uno de los elementos de
disposición es actualizado con velocidades de E/S real y objetivo,
el delta corriente entre las velocidades de E/S objetivo y real, y
un puntero SSCB, OPERACIÓN 1416.
Volviendo a la fig. 13a, en añadidura a lo
anterior, es calculado el índice de disponibilidad para cada
trayecto, OPERACIÓN 1316. En un ejemplo, el índice de disponibilidad
es un número que indica cuántos puntos únicos de fallo tiene el
trayecto propuesto en común con trayectos existentes al subsistema.
Si un trayecto de canal ha de ser añadido, a continuación se desea
no tener puntos únicos de fallo. Si un trayecto de canal ha de ser
borrado, entonces el trayecto con el mayor número de puntos únicos
de fallo es típicamente cambiado.
Subsiguientemente, se proyecta el impacto a los
sistemas verificados, OPERACIÓN 1318. En particular, en un ejemplo,
la carga de corriente en cada subsistema es observada para
determinar como será de diferente si se hace el cambio. Usando esta
información, se selecciona la mejor opción, OPERACIÓN 1320. A fin de
seleccionar la mejor opción, pueden considerarse diferentes factores
incluyendo, por ejemplo, los siguientes:
- -
- ¿Que opción mueve el subsistema más cerca del objetivo?
- -
- ¿Que opción proporciona la mejor disponibilidad?
- -
- ¿Que opción proporciona la mejor simetría (menos entropía)?
- -
- ¿Reducirá esta opción el número total de trayectos por debajo de dos?
- -
- ¿Violará esta opción alguno objetivo explícito (WLM puede proporcionar objetivos explícitos para ser usados en vez de los objetivos por defecto)?
- -
- ¿Violará esta opción algún límite de arquitectura?
- -
- ¿Violará esta opción la configuración como se ha definido por la instalación?
- -
- ¿Alcanzará esta opción a usar recursos que no están disponibles normalmente?
En un ejemplo particular, inicialmente, son
eliminados cualesquiera bloques de selección de decisión (DSB) que
no pueden ser puestos en práctica bajo ninguna circunstancia. Esto
incluiría, por ejemplo, aquellos que violan los límites de la
arquitectura, aquellos que reducen el número total de trayectos por
debajo de dos, aquellos que violan la configuración como se ha
definido por la instalación (por ejemplo, usar más que el número
máximo de trayectos de canal flotante permitidos en la definición) y
aquellos que intentan usar recursos que no están disponibles
normalmente (por ejemplo, aquellos que intentan usar puertos que no
están disponibles). (Esta función podría moverse más pronto en el
tratamiento, de manera que el índice de disponibilidad y el impacto
proyectado a los subsistemas no están calculados para los DSB que
nunca podrían ser seleccionados).
Si corrientemente sólo hay un trayecto al
subsistema (posible poco tiempo después de que comience el
subsistema o después de un fallo), seleccione un trayecto con el
mejor índice de disponibilidad. Si más de uno tiene índices de
disponibilidad equivalente, seleccione el trayecto que tiene el
menor índice de entropía que moverá el subsistema objetivo dentro
del objetivo de velocidad de E/S objetivo. Si hay más de uno,
seleccione aquel cuyo delta total proyectado ("\Sigma de Delta
Proyectado" a partir del DSB) es menor.
Si hay corrientemente más de un trayecto al
subsistema, encuentre el conjunto de DSB con el mejor índice de
disponibilidad. Busque ese conjunto para opciones que tengan el
subsistema objetivo dentro de la tolerancia de la velocidad de E/S
objetivo y tengan el menor índice de entropía. Si hay más de uno,
seleccione aquel cuyo delta total proyectado ("\Sigma de Delta
Proyectado" a partir del DSB) es menor.
Si no hay tal opción, encuentre el conjunto de
trayectos con el siguiente mejor índice de disponibilidad, e
inténtelo de nuevo.
Si no hay opciones que tengan el subsistema
dentro de la tolerancia, seleccione el que tiene el subsistema más
próximo al objetivo, independientemente de su índice de
disponibilidad o índice de entropía. (La técnica descrita antes para
seleccionar la mejor opción es solo un ejemplo. Pueden hacerse
distintas sumas, eliminaciones y modificaciones, y cualesquiera
otras técnicas adecuadas pueden ser usadas para seleccionar la mejor
opción.)
Después del intento por seleccionar la mejor
opción, se toma una determinación en cuanto a si el nuevo objetivo
puede ser alcanzado sin impactar en subsistemas con objetivos
explícitos, PREGUNTA 1322. En otras palabras, es la mejor opción la
que va a impactar negativamente en los subsistemas con objetivos
explícitos que fueron ajustados por el WML. Si es así, entonces el
administrador de carga de trabajo es invocado para elegir el
trayecto apropiado, OPERACIÓN 1324. Específicamente el administrador
de carga de trabajo toma el trayecto y selecciona nuevos objetivos
para el donante.
Subsiguientemente, o si el nuevo objetivo puede
ser alcanzado sin impactar negativamente en los subsistemas con
objetivos explícitos, el cambio es llevado a cabo, OPERACIÓN 1306, y
el tratamiento continúa con una determinación en cuanto a si existen
otros subsistemas que no están en el intervalo objetivo, PREGUNTA
1308.
Como se ha establecido antes, el WML puede
ajustar un objetivo de velocidad de E/S explícito, que ha de ser
usado en vez del objetivo de velocidad de E/S promedio por defecto.
En una realización, el WML ajusta un objetivo explícito, cuando el
WML encuentra que la clase de servicio no está satisfaciendo sus
objetivos. Una realización de la lógica asociada con el ajuste del
objetivo de velocidad de E/S del subsistema explícito está descrita
con referencia a la fig. 15.
Inicialmente, se toma una determinación en cuanto
a si la E/S está provocando el mayor retraso, PREGUNTA 1500. Si no
es así, entonces con propósitos actuales el tratamiento está
completo. Sin embargo, si la E/S están provocando el mayor retraso,
entonces se intenta el ajuste de prioridad de E/S, OPERACIÓN 1502.
Después de ello, se toma una determinación en cuanto a si la clase
de servicio está satisfaciendo sus objetivos, PREGUNTA 1504. Si la
clase de servicio está ahora satisfaciendo sus objetivos, entonces
el tratamiento está completo. Sin embargo, si la clase de servicio
no está aún satisfaciendo sus objetivos, entonces se realiza una
búsqueda para subsistemas que están siendo usados por la clase de
servicio y tienen una velocidad de E/S baja, OPERACIÓN 1506. Para
uno o más subsistemas que están localizados, se ajustan nuevos
objetivos de velocidad de E/S del subsistema. En un ejemplo, se ha
ajustado aumentando el objetivo corriente por una cantidad definida
y entonces proyectando el impacto sobre el subsistema. Si el impacto
es suficiente, (por ejemplo, por encima de un valor receptor),
entonces el tratamiento está completo. Si no, el objetivo es
aumentado otra vez, y el tratamiento es repetido.
Descrita antes en detalle está la administración
CHPID dinámica (DCM) que proporciona ajuste dinámico de
configuraciones de E/S. El DCM está ventajosamente integrado con el
WML, que permite que se tomen decisiones con una comprensión de
cargas de trabajo y objetivos. Además, el DCM permite la
administración de canales a través de particiones múltiples (por
ejemplo, de un grupo de particiones). Esto permite la suma de
recursos cuando son necesarios, así como la eliminación de recursos
en exceso.
Como se ha descrito antes, con la administración
CHPID dinámica (DCM), el "mejor" canal es seleccionado para
añadir a (o eliminar de) un subsistema. Con el fin de hacer esto,
son examinados uno o más atributos, incluyendo, por ejemplo, la
complejidad (o entropía) de la configuración de E/S resultante.
La entropía incrementada provoca que la
configuración de E/S resulte demasiado complicada, dando como
resultado un tiempo excesivo en el tratamiento de los DCM,
resultados inexactos debido a números excesivos de subsistemas que
son impactados, complejidad en informe de prestaciones y complejidad
en la determinación del problema. Así, en una realización preferida
del presente invento, hay prevista una capacidad para determinar la
entropía relativa de elecciones diferentes, de manera que la
entropía relativa pueda ser considerada junto con otras
consideraciones, tales como la velocidad y la disponibilidad de E/S,
cuando se hace una elección de cómo ha de ser ajustada una
configura-
ción.
ción.
Determinando la entropía relativa, es calculado
un índice de entropía. Por ejemplo, en el caso en que un trayecto
está siendo añadido, el índice de entropía es la suma de canales y
subsistemas en la configuración resultante. Además, en el caso en
que un trayecto está siendo borrado, el índice de entropía refleja
el conjunto de canales y subsistemas interconectados al subsistema
objetivo después de que se haya borrado el trayecto. No incluye
canales y subsistemas que no estarán ya en el conjunto.
Para calcular el grado de entropía para cada
opción, se usa el número de canales y subsistemas que están
conectados a la vez, suponiendo que la decisión es llevada a cabo.
Una premisa básica de la técnica de la entropía es calcular un
índice que permita una comparación de dos o más topologías
propuestas y una determinación de cual es más simétrica, o tiene
menos entropía. El propósito de esto es evitar grandes topologías
interconectadas, lo que se sospecha que hará la técnica de velocidad
de E/S menos exacta, y hará más duro para la gente analizar los
problemas de prestaciones después del hecho, debido a la topología
excesivamente compleja.
Una realización de la técnica de determinación de
entropía está descrita con referencia a distintos ejemplos. Por
ejemplo, la fig. 16a representa un ejemplo de una configuración 1600
que incluye dos canales 1602 conectados a dos subsistemas 1604. Si
el subsistema 22 necesita un recurso adicional, puede obtenerlo al
menos de dos sitios. Puede o bien recibirlo desde el canal 1 o desde
el canal 3. Si lo obtiene desde el canal 3, la configuración
resultante tiene ahora tres canales y dos subsistemas (fig. 16b).
Esto da a la configuración un índice de entropía de cinco (3+2). Si,
sin embargo, el subsistema 22 recibe el recurso adicional desde el
canal 1 (fig. 16c), la configuración resultante no tiene más canales
o subsistemas de los que tenía originalmente, y el índice de
entropía resultante es dos. En este ejemplo, la segunda opción tiene
la entropía menor.
Considérese otro ejemplo. En el ejemplo
representado en la fig. 17a, el subsistema 23 necesita un recurso
adicional. Puede obtenerse desde el canal 2 o 4. Si el canal 2 es
usado, (fig. 17b) el índice de entropía resultante es cinco (es
decir, tres canales interconectados a dos subsistemas en una
configuración; el canal 4 no es contado, ya que no está conectado.)
Si el canal 4 es usado (fig. 17c), el índice resultante es tres.
Así, la segunda opción tiene la entropía
menor.
menor.
A continuación, considérense casos e los que la
configuración está dividida, para determinar como esto afecta a la
entropía.
Con referencia a la fig. 18a, si el subsistema 23
tiene exceso de capacidad, el canal 2 o 3 podría ser eliminado. Si
el canal 2 es eliminado (fig. 18b), la configuración es dividida, y
el índice de entropía de ambas configuraciones desciende. Si el
canal 3 es eliminado (fig. 18c) hay aún una configuración, pero con
un índice de entropía inferior que el índice original. Parece que la
decisión que rompe la configuración, hacia la mitad, da como
resultado dos redes menos complicadas, y es la mejor elección, en
una realización.
En un borrado o eliminación, si el índice de la
configuración existente (fig. 19a) es conocido, así como el índice
de la configuración propuesta que contiene el subsistema a mano
(lado derecho de la fig. 19b), el índice de la otra configuración
(lado izquierdo de la fig. 19b) puede ser calculado por
substracción. En este ejemplo, el índice de la otra configuración es
igual a 2 (4-3=1 y 2-1=1, así
1+1=2). Si la substracción da como resultado cero para el número de
subsistemas o canales, como en la fig. 19c, entonces la entropía ha
sido reducida sin dividir la configuración. (Por ejemplo, 2
subsistemas - 2 subsistemas = 0). La división es preferida, en una
realización.
En el siguiente ejemplo, el subsistema 23 tiene
exceso de recursos (fig. 20a). Los canales 2 o 3 pueden ser
eliminados. Si el canal 3 es eliminado (fig. 20b), el índice de
entropía resultante es 7. Si el canal 2 es eliminado (fig. 20c), la
configuración es dividida en dos configuraciones con la
configuración a mano (configuración con subsistema 23) teniendo un
índice de entropía de 5 y teniendo la segunda configuración
resultante un índice de entropía en 3. En una realización, se
prefiere dividir la configuración.
Otros ejemplos son ahora considerados para
determinar si solo se desea un borrado o eliminación para buscar una
división, no el valor de entropía resultante.
En el ejemplo representado en la fig. 21a, el
subsistema 23 tiene demasiado ancho de banda. Cualquier canal 2 o 4
puede ser eliminado. Si el canal 2 es eliminado (fig. 21b), se
obtiene un nuevo índice de entropía de 6, con el índice de entropía
de la segunda configuración resultante en 3. Si el canal 4 es
eliminado (fig. 21c), se obtiene un nuevo índice de entropía de 5,
con el índice de entropía de la segunda configuración resultante en
4. La configuración con índices de entropía de 5 y 4 es la mejor
elección. Así el tipo de división es el objeto, en una
realización.
En el ejemplo representado en la fig. 22a, el
subsistema 23 necesita un recurso adicional. El subsistema 21 puede
ser eliminado desde el canal 2 (fig. 22b), dando al subsistema 23
todos los recursos del canal 2; o el subsistema 25 puede ser
eliminado desde el canal 4 (fig. 22c), dando 23 todos los recursos
del canal 4.
Si el subsistema 21 es eliminado desde el canal
2, el índice de entropía resultante es 7, y el de la segunda
configuración resultante es 2. Si el subsistema 25 es eliminado
desde el canal 4, el índice de entropía resultante es ahora 6, y la
segunda configuración resultante es 3. La segunda elección parece
mejor, en una realización, porque la división está más cerca de ser
igualada.
Con el fin de calcular qué opción está más
próxima a estar en la mitad (es decir "igualada"), se determina
la diferencia en el número de canales y subsistemas entre el nuevo
índice de entropía y el de la segunda configuración resultante. En
este ejemplo, la primera elección resulta en índices de entropía de
7 y 2, así la diferencia es 5 (es decir, el índice de simetría). La
segunda selección da como resultado índices de entropía de 6 y 3,
así la diferencia es 3. Aquel con la menor diferencia es la mejor
elección en esta realización.
Para concluir, en una realización, han de
eliminarse opciones que no mueven el subsistema más cerca de la
velocidad de E/S objetivo. Además, el índice de entropía es
calculado añadiendo el número total de canales y subsistemas que
están interconectados en la configuración resultante. Si el índice
de entropía no cambia, el cambio es simétrico. La configuración con
el menor índice de entropía es típicamente seleccionada. Evítese
seleccionar una configuración con más de ocho canales, incluso si
ello significa seleccionar uno con un índice de entropía más
elevado. Si no hay alternativa, selecciónese una configuración con
más de ocho canales, y con un poco de suerte en el siguiente
intervalo la configuración será dividida.
Aunque se han descrito variaciones de las
realizaciones anteriores con referencia a configuraciones de E/S,
las capacidades descritas aquí son igualmente aplicables a otras
redes, tales como redes de área de almacenamiento, así como a
otras.
Lo descrito antes son distintos mecanismos para
administrar recursos de un entorno de ordenador. Los recursos
compartibles físicos son administrados a través de particiones
lógicas de un entorno de ordenador. Las particiones lógicas son
agrupadas para permitir compartir recursos a través, por ejemplo, de
asignaciones de recursos basados en la prioridad. Este hecho de
compartir recursos incluye, por ejemplo, administración dinámica de
recursos de CPU a través de las LPAR; administración CHPID dinámica
a través de las LPAR; poner en cola la prioridad de E/S en el
subsistema de canal; y administración dinámica de la memoria a
través de las LPAR.
En un ejemplo, el administrador de carga de
trabajo del sistema es al menos parcialmente responsable de esta
administración. Los recursos compartibles son redistribuidos
dinámicamente a través de las LPAR bajo la dirección del
administrador de carga de trabajo transparente a los subsistemas de
aplicación. Los recursos son proporcionados a las particiones
necesarias basados en la actividad de vigilancia y los objetivos de
los clientes. Adicionalmente, el ajuste dinámico de recursos físicos
de acuerdo con objetivos de carga de trabajo a través, por ejemplo,
del WLM, sysplex e integración PR/SM, es realizado sin necesidad de
compartir datos de sysplex paralelos.
En la realización descrita antes, se han descrito
distintos entornos de ordenador y sistemas. Se apreciará que estos
son solamente ejemplos y no están destinados a limitar el marco del
presente invento. De modo similar, los diagramas de flujo
representados aquí son solo ejemplares. Puede haber muchas
variaciones a estos diagramas o las operaciones. Por ejemplo, las
operaciones pueden cuando sea apropiado ser realizadas en un orden
diferente, o pueden añadirse, borrarse o modificarse operaciones,
dentro del marco de las reivindicaciones adjuntas.
Claims (13)
1. Un método para administrar carga de trabajo en
un entorno de ordenador, comprendiendo dicho método: determinar que
se ha ajustado una asignación de recursos de CPU a una partición de
dicho entorno de ordenador; y ajustar dinámicamente dicha asignación
a través de dicha partición y otra partición de dicho entorno de
ordenador; en el que dicha partición comprende una o más clases de
servicio de trabajo, y en el que dicha determinación está
caracterizada porque comprende: proyectar un efecto en una
clase de servicio seleccionada de dichas una o más clases de
servicio de aumentar un peso de procesador asociado con dicha
partición (600); proyectar un efecto en una o más clases de servicio
de dicha otra partición de disminuir un peso de procesador de dicha
otra partición (604), y determinar si el beneficio a dicha clase de
servicio seleccionada anula un impacto negativo para el trabajo de
dicha otra partición (606), en que el ajuste ha de hacerse cuando el
beneficio anule el impacto negativo.
2. Un método según reivindicación 1ª, en el que
dicho ajuste dinámico es en respuesta a objetivos de carga de
trabajo de al menos dicha partición.
3. Un método según la reivindicación 1ª o 2ª, en
el que dicho ajuste dinámico comprende modificar un primer peso de
procesador de CPU asignado a dicha partición y un segundo peso de
procesador de CPU asignado a dicha otra partición.
4. Un método según la reivindicación 3ª, en el
que dicha modificación comprende: aumentar dicho primer peso de
procesador de CPU; y disminuir dicho segundo peso de procesador de
CPU.
5. Un método según la reivindicación 4ª, en el
que dicho primer peso de procesador de CPU es aumentado en una
cantidad igual a la disminución de dicho segundo peso de procesador
de CPU, en el que una suma de dicho primer peso de procesador de CPU
y dicho segundo peso de procesador de CPU permanecen constantes.
6. Un método según una cualquiera de las
reivindicaciones 1ª a 5ª, en el que dicha partición y dicha otra
partición están dentro de un grupo de particiones.
7. Un método según una cualquiera de las
reivindicaciones 1ª a 6ª, en el que dicha selección está basada en
la importancia del trabajo que ha de ser ejecutado en dicha otra
partición.
8. Un producto de programa de ordenador que
comprende un código de programa de ordenador almacenado en un medio
de almacenamiento legible por ordenador, que cuando es ejecutado en
un sistema de tratamiento de datos, instruye al sistema de
tratamiento de datos para poner en práctica el método según la
reivindicación 1ª.
9. Un sistema de administración de carga de
trabajo en un entorno de ordenador, comprendiendo dicho sistema
(116): medios para determinar que ha de ajustarse una asignación de
recursos de CPU a una partición de dicho entorno de ordenador; y
medios para ajustar dinámicamente dicha asignación a través de dicha
partición y otra partición de dicho entorno de ordenador; y en el
que dicha partición comprende una o más clases de servicio de
trabajo, y caracterizado porque dichos medios de
determinación comprenden: medios para proyectar un efecto en una
clase de servicio seleccionada de dichas uno o más clases de
servicio de aumentar un peso de procesador asociado con dicha
partición (600); medios para proyectar un efecto en una o más clases
de servicio de dicha otra partición de disminuir un peso de
procesador de dicha otra partición (604); y medios para determinar
si el beneficio para dicha clase de servicio anula un impacto
negativo para el trabajo de dicha otra partición (606), en el que ha
de hacerse el ajuste cuando el beneficio anula el impacto
negativo.
10. Un sistema según la reivindicación 9ª, en el
que dichos medios para ajustar dinámicamente responden a objetivos
de carga de trabajo de al menos dicha partición.
11. Un sistema según la reivindicación 8ª o 9ª,
en el que dichos medios para ajustar dinámicamente comprenden:
medios para modificar un primer peso de procesador de CPU asignado a
dicha otra partición.
12. Un sistema según la reivindicación 11ª, en el
que dichos medios de modificación comprenden: medios para aumentar
dicho primer peso de procesador de CPU; y medios para disminuir
dicho segundo peso de procesador de CPU.
13. Un sistema según una cualquiera de las
reivindicaciones 9ª a 13ª, que comprende además: medios para
seleccionar dicha otra partición, en los que dicha selección está
basada en la importancia del trabajo que ha de ser ejecutado en
dicha otra partición.
Applications Claiming Priority (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US408470 | 1999-09-28 | ||
US09/407,212 US6587938B1 (en) | 1999-09-28 | 1999-09-28 | Method, system and program products for managing central processing unit resources of a computing environment |
US407212 | 1999-09-28 | ||
US09/407,391 US7007276B1 (en) | 1999-09-28 | 1999-09-28 | Method, system and program products for managing groups of partitions of a computing environment |
US407391 | 1999-09-28 | ||
US09/408,470 US7051188B1 (en) | 1999-09-28 | 1999-09-28 | Dynamically redistributing shareable resources of a computing environment to manage the workload of that environment |
Publications (1)
Publication Number | Publication Date |
---|---|
ES2228607T3 true ES2228607T3 (es) | 2005-04-16 |
Family
ID=27410700
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES00962734T Expired - Lifetime ES2228607T3 (es) | 1999-09-28 | 2000-09-28 | Gestion de la carga de trabajo en un entorno informatico. |
Country Status (14)
Country | Link |
---|---|
EP (1) | EP1256039B1 (es) |
JP (1) | JP3872343B2 (es) |
CN (1) | CN100397341C (es) |
AT (1) | ATE283512T1 (es) |
AU (1) | AU7437600A (es) |
BR (1) | BRPI0014350B1 (es) |
CA (1) | CA2382017C (es) |
CZ (1) | CZ20021093A3 (es) |
DE (1) | DE60016283T2 (es) |
ES (1) | ES2228607T3 (es) |
HU (1) | HU228286B1 (es) |
IL (2) | IL148728A0 (es) |
PL (1) | PL365894A1 (es) |
WO (1) | WO2001023974A2 (es) |
Families Citing this family (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4292693B2 (ja) * | 2000-07-07 | 2009-07-08 | 株式会社日立製作所 | 計算機資源分割装置および資源分割方法 |
US7203719B2 (en) * | 2001-08-22 | 2007-04-10 | International Business Machines Corporation | Method and system to measure distributed system's relative size |
JP2003067351A (ja) * | 2001-08-28 | 2003-03-07 | Nec System Technologies Ltd | 分散型コンピュータの構成制御システム |
US6694419B1 (en) | 2002-04-12 | 2004-02-17 | Barsa Consulting Group, Llc | Method and system for automatically measuring partition memory needs in a partitioned computer system |
US6968441B1 (en) | 2002-04-12 | 2005-11-22 | Barsa Consulting Group, Llc | Method and system for managing interdependent resources of a computer system |
US6738886B1 (en) | 2002-04-12 | 2004-05-18 | Barsa Consulting Group, Llc | Method and system for automatically distributing memory in a partitioned system to improve overall performance |
US7290260B2 (en) | 2003-02-20 | 2007-10-30 | International Business Machines Corporation | Dynamic processor redistribution between partitions in a computing system |
JP2005165813A (ja) * | 2003-12-04 | 2005-06-23 | Matsushita Electric Ind Co Ltd | 分散計算機システム管理方法 |
JP2006079495A (ja) * | 2004-09-13 | 2006-03-23 | Hitachi Ltd | ストレージシステム及び論理区画の設定方法 |
JP4503470B2 (ja) * | 2005-03-17 | 2010-07-14 | 富士通株式会社 | サーバ管理装置及び計算機サーバ |
DE102005014717B4 (de) | 2005-03-31 | 2022-09-29 | Fujitsu Technology Solutions Intellectual Property Gmbh | Computersystem und Verfahren zur Aufteilung und Zuteilung von Rechenleistung innerhalb eines Computersystems |
US7844709B2 (en) * | 2006-09-20 | 2010-11-30 | International Business Machines Corporation | Method and apparatus for managing central processing unit resources of a logically partitioned computing environment without shared memory access |
US20090055831A1 (en) * | 2007-08-24 | 2009-02-26 | Bauman Ellen M | Allocating Network Adapter Resources Among Logical Partitions |
US8209687B2 (en) | 2007-08-31 | 2012-06-26 | Cirba Inc. | Method and system for evaluating virtualized environments |
US7734900B2 (en) | 2008-01-11 | 2010-06-08 | International Business Machines Corporation | Computer configuration virtual topology discovery and instruction therefore |
US7739434B2 (en) | 2008-01-11 | 2010-06-15 | International Business Machines Corporation | Performing a configuration virtual topology change and instruction therefore |
US7487506B1 (en) | 2008-01-16 | 2009-02-03 | International Business Machines Corporation | Autonomous management of system throughput |
CN101778428B (zh) * | 2009-01-14 | 2013-07-24 | 电信科学技术研究院 | 一种确定时频资源的方法、系统和装置 |
CN101819540B (zh) * | 2009-02-27 | 2013-03-20 | 国际商业机器公司 | 在集群中调度任务的方法和系统 |
CN101706743B (zh) * | 2009-12-07 | 2012-09-05 | 北京航空航天大学 | 一种多核环境下的虚拟机调度方法 |
US8869160B2 (en) * | 2009-12-24 | 2014-10-21 | International Business Machines Corporation | Goal oriented performance management of workload utilizing accelerators |
US8589941B2 (en) * | 2010-04-23 | 2013-11-19 | International Business Machines Corporation | Resource affinity via dynamic reconfiguration for multi-queue network adapters |
US8959220B2 (en) | 2010-11-02 | 2015-02-17 | International Business Machines Corporation | Managing a workload of a plurality of virtual servers of a computing environment |
US8984109B2 (en) | 2010-11-02 | 2015-03-17 | International Business Machines Corporation | Ensemble having one or more computing systems and a controller thereof |
US9081613B2 (en) | 2010-11-02 | 2015-07-14 | International Business Machines Corporation | Unified resource manager providing a single point of control |
US9253016B2 (en) | 2010-11-02 | 2016-02-02 | International Business Machines Corporation | Management of a data network of a computing environment |
US8966020B2 (en) | 2010-11-02 | 2015-02-24 | International Business Machines Corporation | Integration of heterogeneous computing systems into a hybrid computing system |
CN102063331B (zh) * | 2011-01-07 | 2013-04-17 | 同济大学 | 用于空间计算并行化的自适应负载平衡方法 |
CN103974149A (zh) * | 2013-02-01 | 2014-08-06 | 鼎点视讯科技有限公司 | 分配带宽方法及装置 |
CN103279389B (zh) * | 2013-04-28 | 2016-06-22 | 中国工商银行股份有限公司 | 一种主机批量负载的调度方法以及调度系统 |
US9715268B2 (en) | 2015-05-08 | 2017-07-25 | Microsoft Technology Licensing, Llc | Reducing power by vacating subsets of CPUs and memory |
US10034407B2 (en) * | 2016-07-22 | 2018-07-24 | Intel Corporation | Storage sled for a data center |
CN106371922A (zh) * | 2016-08-29 | 2017-02-01 | 成都支付通卡友电子商务有限公司 | 动态负载平衡批量处理系统 |
US10452436B2 (en) * | 2018-01-03 | 2019-10-22 | Cisco Technology, Inc. | System and method for scheduling workload based on a credit-based mechanism |
US10922139B2 (en) * | 2018-10-11 | 2021-02-16 | Visa International Service Association | System, method, and computer program product for processing large data sets by balancing entropy between distributed data segments |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2682770B2 (ja) * | 1992-05-15 | 1997-11-26 | 富士通株式会社 | 仮想計算機システムのcpu制御方式 |
CA2100540A1 (en) * | 1992-10-19 | 1994-04-20 | Jonel George | System and method for performing resource reconfiguration in a computer system |
JPH0991257A (ja) * | 1995-09-25 | 1997-04-04 | Nec Corp | Cpu管理方式 |
US5925102A (en) * | 1997-03-28 | 1999-07-20 | International Business Machines Corporation | Managing processor resources in a multisystem environment in order to provide smooth real-time data streams, while enabling other types of applications to be processed concurrently |
JP4634548B2 (ja) * | 1997-11-04 | 2011-02-16 | ヒューレット・パッカード・カンパニー | マルチプロセッサコンピュータシステム及びその動作方法 |
US6647508B2 (en) * | 1997-11-04 | 2003-11-11 | Hewlett-Packard Development Company, L.P. | Multiprocessor computer architecture with multiple operating system instances and software controlled resource allocation |
-
2000
- 2000-09-28 HU HU0301326A patent/HU228286B1/hu unknown
- 2000-09-28 EP EP00962734A patent/EP1256039B1/en not_active Expired - Lifetime
- 2000-09-28 ES ES00962734T patent/ES2228607T3/es not_active Expired - Lifetime
- 2000-09-28 BR BRPI0014350A patent/BRPI0014350B1/pt active IP Right Grant
- 2000-09-28 CN CNB008135339A patent/CN100397341C/zh not_active Expired - Lifetime
- 2000-09-28 CZ CZ20021093A patent/CZ20021093A3/cs unknown
- 2000-09-28 IL IL14872800A patent/IL148728A0/xx active IP Right Grant
- 2000-09-28 WO PCT/GB2000/003720 patent/WO2001023974A2/en active IP Right Grant
- 2000-09-28 JP JP2001526677A patent/JP3872343B2/ja not_active Expired - Lifetime
- 2000-09-28 PL PL00365894A patent/PL365894A1/xx not_active Application Discontinuation
- 2000-09-28 DE DE60016283T patent/DE60016283T2/de not_active Expired - Lifetime
- 2000-09-28 AU AU74376/00A patent/AU7437600A/en not_active Abandoned
- 2000-09-28 AT AT00962734T patent/ATE283512T1/de not_active IP Right Cessation
- 2000-09-28 CA CA002382017A patent/CA2382017C/en not_active Expired - Lifetime
-
2002
- 2002-03-17 IL IL148728A patent/IL148728A/en unknown
Also Published As
Publication number | Publication date |
---|---|
IL148728A0 (en) | 2002-09-12 |
HUP0301326A2 (en) | 2003-08-28 |
IL148728A (en) | 2007-08-19 |
HU228286B1 (en) | 2013-02-28 |
JP2003514270A (ja) | 2003-04-15 |
DE60016283T2 (de) | 2005-12-01 |
EP1256039B1 (en) | 2004-11-24 |
WO2001023974A3 (en) | 2002-09-12 |
CA2382017A1 (en) | 2001-04-05 |
BRPI0014350B1 (pt) | 2017-03-21 |
PL365894A1 (en) | 2005-01-10 |
BR0014350A (pt) | 2003-07-29 |
CN100397341C (zh) | 2008-06-25 |
CA2382017C (en) | 2007-06-26 |
DE60016283D1 (de) | 2004-12-30 |
EP1256039A2 (en) | 2002-11-13 |
CN1391671A (zh) | 2003-01-15 |
AU7437600A (en) | 2001-04-30 |
CZ20021093A3 (cs) | 2002-06-12 |
WO2001023974A2 (en) | 2001-04-05 |
ATE283512T1 (de) | 2004-12-15 |
JP3872343B2 (ja) | 2007-01-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
ES2228607T3 (es) | Gestion de la carga de trabajo en un entorno informatico. | |
JP3813056B2 (ja) | 優先順位に基づくチャネル・サブシステム保留入出力作業キューの処理 | |
JP3807916B2 (ja) | コンピュータ環境の区画のグループを管理する方法およびシステム | |
JP3672236B2 (ja) | コンピュータ環境の中央処理装置を管理する方法、システム、およびプログラム製品 | |
JP3659324B2 (ja) | コンピュータ環境の論理プロセッサを管理する方法、システム、およびプログラム製品 | |
US11036556B1 (en) | Concurrent program execution optimization | |
US7051188B1 (en) | Dynamically redistributing shareable resources of a computing environment to manage the workload of that environment | |
US6519660B1 (en) | Method, system and program products for determining I/O configuration entropy | |
EP3253027B1 (en) | Resource allocation method and apparatus for virtual machines | |
RU2569805C2 (ru) | Виртуальная архитектура неоднородной памяти для виртуальных машин | |
US7568052B1 (en) | Method, system and program products for managing I/O configurations of a computing environment | |
US10686721B2 (en) | Storage device access mediation | |
JP2010097566A (ja) | 情報処理装置、及び情報処理システムにおけるバッチ処理の割り当て方法 | |
CN116057513A (zh) | 指令分派路由 |