jump to navigation

Oracle – Equilibrio de carga de disco

Fuente: http://www.ixora.com.au/tips/tuning/disk_load.htm

La siguiente ecuación es útil para pensar acerca del rendimiento de E/ S.

Tiempo de respuesta = Tiempo de espera + Tiempo de servicio

El tiempo de servicio es el tiempo que le toma al hardware dar servicio a una petición de E / S.

El tiempo de espera puede ser necesario si el hardware está ocupado.

¿Que es el equilibrio de carga de disco?

En el balanceo de carga en el disco, queremos reducir al mínimo el tiempo de espera mediante la propagación de las cargas de E / S lo más uniformemente posible a través de todos los componentes de hardware.  Si este no es el caso, la carga debe ser trasladada de los discos calientes a discos fríos, ya sea moviendo datafiles o moviendo los segmentos de base de datos, tales como tablas e índices.

Sin embargo, la carga balanceada no es un fin en sí mismo. Un disco puede estar muy ocupado por un único proceso de intensas secuencias de E / S, mientras que otro disco puede ser poco utilizado por un número aleatorio de procesos de E / S. Esta carga desbalanceada es perfectamente satisfactoria, porque no hay tiempo de espera.

El objetivo del disco es el balanceo de la carga para mejorar los tiempos de respuesta de la E / S, eliminando el tiempo de espera. No hay tiempo de espera en una sola secuencia de subprocesos de E / S, y así el equilibrio de carga de disco no es necesario. Algunos tiempos de espera puede ser aparentes si utiliza secuencias asincrónicas de E / S, sin embargo, esto no es más que una ilusión, porque un proceso no espera a otro. Entonces no trates de equilibrar una gran secuencia de trabajo con una delgada y aleatoria secuencia de trabajo. No habrá realmente tiempo de espera para recuperar, y usted simplemente degradara el tiempo de servicio.

Sin embargo, puede ser conveniente equilibrar una pesada carga aleatoria con una liviana de trabajo secuencial. En este caso, el ahorro en el tiempo de espera aleatorio de I / O bien puede compensar el aumento de las horas de servicio de la lógica, pero físicamente ya no secuenciales E / S.

¿Qué estadísticas se deben utilizar?

Para equilibrar el volumen de trabajo de disco, usted necesita estadísticas. La estadística más obvia de usar es el tiempo de espera en si mismo. Pero, lamentablemente, el sistema operativo de estadísticas sobre el tiempo de espera no es fiable. Mucho de lo que el sistema operativo considera como tiempo de servicio puede ser el tiempo de espera en la matriz de disco o controlador, y muchos sistemas operativos sólo calculan el reparto entre el tiempo de espera y de servicio en lugar de la medición de la misma. También, porque en el sistema operativo de E / S se miden las estadísticas en el nivel de controlador de dispositivo, estas no incluyen el tiempo de espera sostenido en los niveles superiores en el sistema operativo como en el LVM o sistema de archivos de caché por capas.

 Una medida alternativa de trabajo en el disco es Busyness. Pero lamentablemente las estadísticas del disco busyness no son más fiables que las estadísticas del tiempo de servicio que se derivan. Además, lo que parece un disco moderadamente inactivo cuando se realiza la secuencia de E / S puede repentinamente convertirse en un muy ocupado disco si se mueve al azar algunas de las E / S de trabajo a la misma, porque las eficiencias de las secuencias de E / S se perderán.

 Por lo tanto, le recomendamos que utilice un número de operaciones de E / S para realizar la medida de disco de trabajo. Esto le dará una mejor apreciación de los posibles efectos de la mezcla al azar y de otro tipo de trabajo secuencial.

 El número de operaciones de E / S que fue realizado se mide tanto por Oracle y por el sistema operativo. Oracle proporciona estadísticas para cada archivo de V$FILESTAT, y el sistema operativo proporciona estadísticas de cada uno de los discos. Para cada bases de datos en bruto, ambos tipos de estadísticas son útiles, porque rara vez hay una relación uno a uno entre los discos y datafiles. Sin embargo, para el sistema de ficheros basado en bases de datos es mejor hacer caso omiso de los datos del sistema operativo, debido a los efectos de dividir, lee en las estadísticas, y utilizar exclusivamente las estadísticas de Oracle. Por supuesto que no hay que decir que no debe haber cargas en Oracle sobre los discos, y que usted no debe compartir discos entre las bases de datos, su Oracle podría generar estadísticas engañosas.

 Este sencillo gráfico ilustra la idea de utilizar estas estadísticas para el equilibrio de carga de disco.

Click para ampliar la imagen

 ¿Qué más se debe considerar?

 Por supuesto, hay mucho más en el equilibrado de la carga en el disco que lo que este simple diagrama ilustra. Por ejemplo, si el archivo  3 contiene una aplicación clave y archivo de la tabla 1 contiene la clave principal índice, aunque luego hemos equilibrado el número de operaciones de E / S, el servicio a veces en el disco 1 será pobre porque el la cabeza del disco se corromperá entre la tabla y datafiles índice, siempre que el cuadro  acceda a través del índice de un bucle anidado.

En general, los principios de E / S separados indicados en nuestra  Planificación de tablas, deben ser observadas cuando se colocan los datafiles en los discos, así como la E / S de las características de los mismos datafiles.


Conclusión (Abril 2009)

Flores Germán  1327-0476
Cabaña Leonardo 3901-1351
Sarcansky Verónica 3901-2786

Es importante el equilibrio de la carga de disco ya que nos permite reducir al mínimo el tiempo de espera entre los procesos de E/S. La utilización de los discos que se posean será de gran importancia a la hora de realizar el equilibrio de la carga, ya que como se dijo antes, se tratara de reducir al mínimo el tiempo de espera.

Cuando trabajamos con los discos necesitamos saber como administrar el volumen de trabajo para cada disco y ahí es donde surge la pregunta de que estadística debemos usar para dicho proceso. No podemos usar el tiempo de espera en si, ya que el sistema operativo de estadísticas no es confiable. Lo mejor es utilizar un número de operaciones de E/S para realizar la medida conveniente para el trabajo. Oracle medirá el número de operaciones de E/S que fue realizado y proporcionará estadísticas para cada archivo V$FileStart, con el cual el SO proporcionará estadísticas de cada uno de los discos, aunque hay que tener mucho cuidado ya que Oracle pondría generar estadísticas engañosas si no trabajamos con cuidado.

La importancia de este proceso radica en la reducción al mínimo de los tiempos de espera en la carga de la información, ya que si la base fuera pequeña y los datos a introducir fueran pocos no habría problemas, pero si tomamos en cuenta por ejemplo las bases de los bancos, la información debería ser de acceso y control rápido, de lo contrario los demás procesos se verían perjudicados por el alto grado de espera.

 

A %d blogueros les gusta esto: