Re: strip/block size y otros temas de RAID (largo)

2009-01-02 Por tema Marcelo Espinosa Alliende
El mié, 31-12-2008 a las 18:08 -0300, Aldrin Martoq escribió:
 [Yep, el termino stripe lo use muy mal]
 
 On Wed, 2008-12-31 at 13:08 -0300, Marcelo Espinosa Alliende wrote:
  El mié, 31-12-2008 a las 11:38 -0300, Aldrin Martoq escribió:
   Tambien hay algo extran~o en la formula, por lo siguiente:
un ejemplo para ilustrar lo anterior.
carga de 500 I/Os con 10 discos para RAID5
 LecturasEscriturasI/Os RAID_5  
--
  100,00%0,00%(500 + 0) / 10= 50 
   90,00%10,00%   (450 + 200) / 10  = 65 
   75,00%25,00%   (375 + 500) /10   = 87,5 
   50,00%50,00%   (250 + 1000) / 10 = 125 
0,00%100,00%  (0 + 2000) / 10   = 200 

LecturasEscriturasI/Os RAID_10 
--  
  100,00%0,00%(500 + 0) /10 = 50
   90,00%10,00%   (450 + 100) / 10  = 55
   75,00%25,00%   (375 + 250) / 10  = 62.5
   50,00%50,00%   (250 + 500) / 10  = 75
0,00%100,00%  (0 + 1000) / 10   = 100
   
   Con 10 discos y solo lectura deberias tener performance de 9x para
   raid-5 y 5x para raid-10; pero tus calculos no muestran eso.
  no, el comportamiento en operaciones de IO es igual para ambos, aquí
  lo
  que te dice es que cada disco va a manejar ese volumen de IOs y
  punto. 
 
 A ver, si es la cantidad de operaciones por disco lo estas calculando
 mal.

jejeje...

 
 LOS SUPUESTOS aca son:
 - no hay cache o los datos no estan en el
 - la escalabilidad del numero de operaciones/disco es un buen
 indicador
 - raid 10 lee de ambos espejos (lo llamare RAID nuevo mas abajo)
 
 
 PARA RAID-5
 - si tenemos 500 lecturas a distribuir en 10 discos, cada disco debera
 ejecutar 500/9 lecturas (ya que un disco no almacena datos).

Hombre, se ocupan los 10 discos... la paridad se distribuye en todos los
discos... te imaginas si muere el disco que tiene la paridad? (según tu
lógica eso es un raid3) 

 - si tenemos 500 escrituras sobre 10 discos, cada escritura toma 2
 lecturas y 2 escrituras; luego cada disco hace 500*4/9 operaciones.
 
 La formula es:
 operaciones/disco = (lecturas + escrituras*4)/(n_discos - 1)
 

no... son n_discos a secas

 
 PARA RAID-10 viejo
 - este es el RAID10 que supongo yo esta implementado
 - aca supongo que el raid _compara_ lo que lee desde un espejo y el otro
 - luego, 500 lecturas se duplican entre espejos, osea son 100 lecturas
 por disco.

supones mal, la redundancia se ocupa en este nivel cuando no puede
acceder exitosamente a la información requerida,  lo que hacen las
controladoras decentes (yo he ocupado de HP e IBM, no he tenido la mala
suerte -al parecer- de ocupar PERC :) es utilizar el disco espejo para
aprovechar de leer data adicional, no la misma data para comparar si
está bien o no.

Wikipedia:
RAID 1 puede estar leyendo simultáneamente dos datos diferentes en dos
discos diferentes, por lo que su rendimiento se duplica.

RAID 10 es un nivel 0+1, es decir, un stripe espejado por lo que la
lógica de raid_1 aplica.

 - cuando escribe, escribe en ambos espejos. 500 escrituras son 100
 escrituras por disco.
 
 La formula seria:
 operaciones/disco = (lecturas*2 + escrituras*2)/n_discos

menos, el espejo se usa sólo como redundancia... si no puede leer por
falla del disco maestro (sectores malos, etc...) recurre al espejo para
recuperar dicha información, no es un si o sí.  explicado arriba


 
 
 PARA RAID-10 nuevo
 - aca suponemos que las lecturas son alternadas entre espejos; luego 500
 lecturas son 500/10 = 50 lecturas por disco
 - cuando escribe, escribe en ambos espejos. 500 escrituras son 100
 escrituras por disco.
 
 La formula seria:
 operaciones/disco = (lecturas + escrituras*2)/n_discos

que tiene de nuevo si esto *es* RAID_10 (ver correo original)

 
 
 Resumiendo en una tabla:
   operaciones/disco
 #disk #oper #read #write  RAID-5  RAID-10  RAID10 nuevo
 10500   100%  0%  55.56   100  50
 10500   90%   10% 72.22   100  55
 10500   75%   25% 97.22   100  62.50
 10500   50%   50% 138.89  100  75
 10500   0%100%222.22  100  100
 

tu formula para raid5 no es correcta, raid10 (de tu tabla) no opera con
la lógica que mencionas, y el raid nuevo *es* el raid_10.

 
  por mucho cache que le pongas a la controladora, si tienes más de un
  10%
  de escrituras raid10 se va a comportar mejor que raid 5 y punto... 
 
 Hmm segun tu tabla original, RAID-10 siempre es mejor y en el caso 100%
 lectura es igual que RAID-5. Segun la mia, RAID-10 nuevo es mejor
 _siempre_. Eso en la practica es claramente incorrecto. Lo que esta mal
 de tu tabla y de mi tabla son los supuestos. Veamos los supuestos:

Los mios no son supuestos, simplemente es información 

Re: strip/block size y otros temas de RAID (largo)

2008-12-31 Por tema Victor Hugo dos Santos
2008/12/30 Aldrin Martoq amar...@dcc.uchile.cl:
 On Tue, 2008-12-30 at 18:37 -0300, Victor Hugo dos Santos wrote:
 por cierto, acabo de ir a configurar la controladora para hacer
 pruebas.. pero he descubirto que la controladora (sera esta en
 particular ???), permite crear el RAID10, pero no me permite crear
 volumenes logicos en el.. o sea, se utilizo RAID10/RAID50/RAID60 debo
 de usar un solo volumen con todo el espacio de los discos.

 No hagas volumenes con la controladora, solo creas arreglos que seran
 vistos como discos en el sistema operativo...

 Por ejemplo, un arreglo RAID-10 con los sectores 0-99 de los discos 1, 2
 y 3. Luego otro arreglo RAID-5 con los sectores 100-199 de los discos 1,
 2 y 3.

bueno.. creo que me confundi y/o confundi a usted..

lo que digo, es que la controladora esta (PERC 6/I).. no me permite
utilizar parte de los disco y/o subdividirlos, cuando es un RIAD-10/50

o sea.. se voy utilizar este tipo de RAID, se va todo como un solo
volumen.. no es posible dividirlo, utilizar sectores del disco, crear
volumenes o lo que sea.. si o si, va interito.


 Para hacer justa la prueba, deberias mover uno de los discos al otro
 canal. Ej de prueba:

 ++  ++
 |D1 D2 D3|  |D4 D5 D6|
 ++ 0++ 0
 | sda r10|  | sdc r5 |
 ++ 100  ++ 100
 | sdb r5 |  | sde r10|
 ++ 200  ++ 200


 For RAID levels 0, 1, 5, and 6 only, you can use part of the
 available disk space to create one virtual disk and then use the rest
 of the disk space to create another virtual disk or disks.

 Hmmm si no se puede, usa el D1 D2 D3 con RAID-10 completo, y en el D4 D5
 D6 Raid5.

... RAID-10 necesita minimo 4.. y se lo hago, ya no podre utilizar
RAID-5, por tendre solamente 2 discos disponibles.

sugerencias ???

:-(

salu2 y buenas fiestas a todos.

-- 
-- 
Victor Hugo dos Santos
Linux Counter #224399


Re: strip/block size y otros temas de RAID (largo)

2008-12-31 Por tema Horst H. von Brand
Alvaro Herrera alvhe...@alvh.no-ip.org wrote:
 Aldrin Martoq escribió:
  En mi experiencia, LVM es LENTO, segun las ultimas pruebas que hice (un
  tarro parecido al que muestras). Cambia alguna particion (/var ?) y haz
  alguna prueba sencilla y nos avisas, pues no tengo numeros!

 Una vez los compadres de Greenplum hicieron unas mediciones de LVM y
 encontraron que era lento; o mejor dicho, que ponía un techo al
 rendimiento que se podía alcanzar: a medida que aumentabas la cantidad
 de discos, no veías ninguna mejora.  Sacando a LVM de entre medio, se
 observaba un crecimiento lineal de rendimiento con el aumento de discos.

Alguna URL? Seria interesante repetir las mediciones (LVM ha cambiado
mucho). Y me parece bien raro, LVM usa striping, asi que (para carga de
lecturas y escrituras al azar) el rendimiento debiera aumentar en forma
basicamente lineal con el numero de discos.

 Si puedes evitar LVM, evitalo.  De todas formas puedes agregar más
 espacio para las BDs en particiones nuevas; en Postgres usando
 tablespaces, en Oracle no sé cómo se hará.

Eso de todas formas, el interponer una capa de software (e indireccion)
adicional solo puede disminuir el rendimiento. Pero por otro lado, es el
precio que pagas por la flexibilidad...

  Me parece que RAID-5 seria lo mejor para performance/confiabilidad.

 Las mediciones de rendimiento que han hecho varias personas en
 pgsql-performance han mostrado que RAID-10 es muy superior a RAID-5.
-- 
Dr. Horst H. von Brand   User #22616 counter.li.org
Departamento de InformaticaFono: +56 32 2654431
Universidad Tecnica Federico Santa Maria +56 32 2654239
Casilla 110-V, Valparaiso, Chile 234   Fax:  +56 32 2797513


Re: strip/block size y otros temas de RAID (largo)

2008-12-31 Por tema Victor Hugo dos Santos
2008/12/31 Horst H. von Brand vonbr...@inf.utfsm.cl:
 Alvaro Herrera alvhe...@alvh.no-ip.org wrote:
 Aldrin Martoq escribió:

[...]

 Si puedes evitar LVM, evitalo.  De todas formas puedes agregar más
 espacio para las BDs en particiones nuevas; en Postgres usando
 tablespaces, en Oracle no sé cómo se hará.

 Eso de todas formas, el interponer una capa de software (e indireccion)
 adicional solo puede disminuir el rendimiento. Pero por otro lado, es el
 precio que pagas por la flexibilidad...

mmm.. en mi caso, LVM es esencial por los snapshots.
lo usamos principalmente para disminuir el tiempo en que los servicios
estaban detenidos por que se estaban ejecutando respaldos de los
datos, o sea:
 - se detiende los servicios
 - se crea el snap
 - se llevanta los servicios
 - se respalda los datos desde el snap

desconozco si hay alguna otra altrenativa a LVM+SNAP en ext3.

salu2

-- 
-- 
Victor Hugo dos Santos
Linux Counter #224399



Re: strip/block size y otros temas de RAID (largo)

2008-12-31 Por tema Horst H. von Brand
Aldrin Martoq amar...@dcc.uchile.cl wrote:
 On Tue, 2008-12-30 at 16:58 -0300, Horst H. von Brand wrote:
  Aldrin Martoq amar...@dcc.uchile.cl wrote:
   Hola Victor, muy largo lo que escribiste, tratare de aportar un poco ;)
   On Tue, 2008-12-30 at 12:21 -0300, Victor Hugo dos Santos wrote:
   Esto es mas lento porque en el fondo tienes un puro disco con varios
   platos,

  No. RAID significa leer y escribir varios cada vez (para lo de R).

   esto influye en el seek time y se encolan si tienes varias
   aplicaciones distintas corriendo al mismo tiempo.

  No. Si tienes varios platos (y cabezales) independientes, tienes mejor
  rendimiento. RAID los interconecta (la A), y el rendimiento se va al
  suelo.

 Fisicamente son varios discos, pero logicamente es uno solo.

Lo que importa es la interaccion entre lo fisico y lo logico.

 Actualmente, un disco usualmente tiene varios platos, supongamos 4.

OK.

 Luego, cuando leemos 1024KiB desde el sector 0, leera _al mismo tiempo_:

Leera al mismo tiempo 1024KiB desde el sector 0, nada mas. Los discos estan
en condiciones de transferir datos desde una unica cara (== cabezal) a la
vez. Salvo dispositivos mas bien exoticos.

[...]

 Entonces tienes un ancho de banda de 1024KiB/dt == 4 veces mas rapido
 que si leyeras desde un solo plato. Ahora, el costo de buscar esa
 informacion (seek) no cambia.

No. El ancho de banda no cambia.

Lo que si cambia (internamente) es que los discos manejan extenso
buffering, y si pides leer de la pista 30, sector 17, y el cabezal viene a
caer en el sector 25 aprovecha de leer el resto de la pista a partir de
alli y la guarda porque probablemente van a solicitar parte de eso
pronto. Asi el ancho de banda que ves puede ser mayor que el con el que se
leen datos fisicamente de la superficie del disco.

 Ahora, si configuramos un RAID-5 con 5 discos por ejemplo, es la misma
 historia: Cuando leemos 4096KiB desde el sector 0, leera _al mismo
 tiempo_:

 - 1024KiB del sector 0 del 1er disco,
 - 1024KiB del sector 0 del 2do disco,
 - 1024KiB del sector 0 del 3er disco,
 - 1024KiB del sector 0 del 4to disco,
 - 1024KiB del sector 0 del 5to disco (paridad)

Con esto obtienes 1024KiB de datos utiles, lo otro es unicamente para poder
verificar paridad (y corregir datos dan~ados que se hayan leido). O sea, el
tiempo de esto (idealmente) es igual a leer de un disco + el tiempo para
verificar paridad (o corregir, segun sea el caso). Pero ver mas abajo
porque esto no es tan simple.

 Tienes un ancho de banda de 4096Kib/dt == 4 veces mas rapido (porque el
 ultimo disco es para validacion de paridad).

No...

 Esto funciona porque los discos estas rotando al mismo tiempo y la
 controladora sabe manejar eso. Luego, el costo de busqueda (seek) es el
 mismo que en un solo disco. En discos/controladoras mas baratos, el seek
 time sera peor.

Idealmente, el seek es el mismo. Pero seria bien dificil asegurar
sincronizar tanto los discos (considera el remapeo transparente de
sectores malos), y definitivamente no hay como sincronizar los discos en
giro, asi que la latencia rotacional (que sera la mayor de todas!) empeora.

 Luego, poner discos en RAID es como agregar mas platos a un mismo disco:
 aumentas el ancho de banda de lectura/escritura

Respecto de datos utiles, disminuye (contencion de acceso a memoria,
calculo de paridad). Claro, si te las arreglas de forma que generalmente
requieres datos de varios de los bloques juntos sales ganando... ver
http://en.wikipedia.org/wiki/Write_Anywhere_File_Layout para detalles de
como y cuando se puede hacer eso en la practica.

 pero tienes el mismo
 tiempo de busqueda.

Empeora, por lo anterior.

 Este tipo de afinamiento (ancho de banda) lo
 controlas con el tamano del stripe y el read-ahead. Para esto, lo
 ideal es saber la distribucion del bloque que lee tu aplicacion/sistema
 operativo.

De eso se trata (en parte) el afinamiento interno que hace el RDBMS de sus
accesos a disco, y las sugerencias que hacian en Oracle sobre Sun al menos
de formatear las particiones del caso con ciertos taman~os de sector, etc.

[...]

   Creo que todo esto lo sabriamos si tuvieramos DTrace, asi no tendriamos
   que adivinar...
  ... pero se requeriria 5 veces la maquina por Slowlaris... ;-)
  [Recuerden que en Linux solia ser que lanzar un _proceso_ era mas rapido
   que lanzar una _hebra_ en Solaris, en la misma maquina!]
   Por ejemplo, podrias sacar la distribucion del taman~o del block usado
   _en tu aplicacion_, que es lo que importa al final:
   http://wikis.sun.com/display/DTrace/io+Provider#ioProvider-Examples
  Cuidado, eso cuando mucho puede dar una indicacion generica; nadie te dice
  que no hayan ajustado esos (y quien sabe que otros) parametros segun el
  sistema en el cual corre.

 Saber la distribucion del blocksize de un I/O es algo impagable. Pagaria
 un 10% de performance con tal de saber esa info y mucha otra,

No estamos hablando 

Re: strip/block size y otros temas de RAID (largo)

2008-12-31 Por tema Aldrin Martoq
On Wed, 2008-12-31 at 10:05 -0300, Alvaro Herrera wrote:
 Aldrin Martoq escribió:
  En mi experiencia, LVM es LENTO, segun las ultimas pruebas que hice (un
  tarro parecido al que muestras). Cambia alguna particion (/var ?) y haz
  alguna prueba sencilla y nos avisas, pues no tengo numeros!
 Una vez los compadres de Greenplum hicieron unas mediciones de LVM y
 encontraron que era lento; o mejor dicho, que ponía un techo al
 rendimiento que se podía alcanzar: a medida que aumentabas la cantidad
 de discos, no veías ninguna mejora.  Sacando a LVM de entre medio, se
 observaba un crecimiento lineal de rendimiento con el aumento de discos.
 Si puedes evitar LVM, evitalo.  De todas formas puedes agregar más
 espacio para las BDs en particiones nuevas; en Postgres usando
 tablespaces, en Oracle no sé cómo se hará.
 
  Me parece que RAID-5 seria lo mejor para performance/confiabilidad.
 Las mediciones de rendimiento que han hecho varias personas en
 pgsql-performance han mostrado que RAID-10 es muy superior a RAID-5.

Hmmm estaba revisando y muchos sitios dicen lo mismo. Basicamente,
RAID-5 es superior en lectura y RAID-10 es superior en escritura.

La data que muestro (LVM, RAID) fueron pruebas personales contra el
tarro, probb mis pruebas estuvieron malas en algun punto.

-- 
Aldrin Martoq amar...@dcc.uchile.cl
http://aldrin.martoq.cl/videopodcast/ http://aldrin.martoq.cl/techblog/


signature.asc
Description: This is a digitally signed message part


Re: strip/block size y otros temas de RAID (largo)

2008-12-31 Por tema Aldrin Martoq
On Wed, 2008-12-31 at 09:52 -0300, Victor Hugo dos Santos wrote:
 ... RAID-10 necesita minimo 4.. y se lo hago, ya no podre utilizar
 RAID-5, por tendre solamente 2 discos disponibles.

Tienes razon, me equivoque con 3 discos.

 sugerencias ???

Prueba separadamente: reconfigura y prueba RAID-10 y luego reconfigura y
prueba RAID-5... O si tienes mas discos/tarros, pon 4 discos en un canal
y 4 en el otro, asi podras probar simultaneamente ;)

-- 
Aldrin Martoq amar...@dcc.uchile.cl
http://aldrin.martoq.cl/videopodcast/ http://aldrin.martoq.cl/techblog/


signature.asc
Description: This is a digitally signed message part


Re: strip/block size y otros temas de RAID (largo)

2008-12-31 Por tema Aldrin Martoq
On Wed, 2008-12-31 at 10:09 -0300, Marcelo Espinosa Alliende wrote:
 El mar, 30-12-2008 a las 17:52 -0300, Aldrin Martoq escribió:
  Haz la prueba, de hecho en el primer link que mandaste el tipo muestra
  la conversa en una lista y del primer link:
  http://lists.us.dell.com/pipermail/linux-poweredge/2007-December/034160.html
  
  10GB file:
  * RAID5 : 255MB/s
  * RAID10 : 224MB/s (???)
  
  2 x 10GB file (simultaneos)
  * RAID5 : 2 x 36MB/s
  * RAID10 : 2 x 31MB/s (ouch!)
 esos datos muestran que la controladora es deficiente, los datos
 resultantes lo avalan, de hecho el mismo autor lo declara, no debieras
 poner esto como ejemplo.

Bueno, lo puse porque es similar a lo que obtuve yo en mis pruebas... y
en tal caso es lo que importa, al fin y al cabo es lo que se va a usar.


 el problema de raid 5 es que no escala bien con las escrituras... como
 lo mencionó Horst, el número IO's que raid 5 es capaz de manejar se
 determina por la formula siguiente:
  [ IO_lecturas + (4 * IO_escrituras) ] / n°_discos
 en el caso de raid 10 es
 [ IO_lecturas + (2 * IO_escrituras)] / n°_discos
 al incrementar el nº de discos mejora considerablemente la lectura
 (analogía de los platos que mencionas) , y en el caso de la escritura
 gana raid10 pues sólo se duplica la operación, no cuadriplica como en el
 caso de raid5.

Tienes razon en que me he fijado solo en la lectura. Ahora, esta parte
no la entiendo, porque 4* y 2* ?

Si tienes 4 discos, escribir un stripe:
- en raid5: significa leer 2 y escribir 2 stripes.
- en raid10: significa escribir 4 stripes.

La penalidad de raid5 es que primero leo y luego escribo, mientras que
en raid10 solo escribo. No veo la duplicidad ni cuadriplicidad _en
tiempo_ de la operacion, estoy asumiendo que escribo/leo al mismo tiempo
en todos los discos (como si fueran platos extras).



Tambien hay algo extran~o en la formula, por lo siguiente:

 un ejemplo para ilustrar lo anterior.
 
 carga de 500 I/Os con 10 discos para RAID5
 
  LecturasEscriturasI/Os RAID_5  
 --
   100,00%0,00%(500 + 0) / 10= 50 
90,00%10,00%   (450 + 200) / 10  = 65 
75,00%25,00%   (375 + 500) /10   = 87,5 
50,00%50,00%   (250 + 1000) / 10 = 125 
 0,00%100,00%  (0 + 2000) / 10   = 200 
 
 
 LecturasEscriturasI/Os RAID_10 
 --  
   100,00%0,00%(500 + 0) /10 = 50
90,00%10,00%   (450 + 100) / 10  = 55
75,00%25,00%   (375 + 250) / 10  = 62.5
50,00%50,00%   (250 + 500) / 10  = 75
 0,00%100,00%  (0 + 1000) / 10   = 100

Con 10 discos y solo lectura deberias tener performance de 9x para
raid-5 y 5x para raid-10; pero tus calculos no muestran eso.

Me parece que estas calculando la carga que lleva cada disco (divides
por el numero de discos) en vez del rendimiento (yo usaria alguna medida
de ancho de banda, como KiB/s) para el conjunto en total.

 
-- 
Aldrin Martoq amar...@dcc.uchile.cl
http://aldrin.martoq.cl/videopodcast/ http://aldrin.martoq.cl/techblog/


signature.asc
Description: This is a digitally signed message part


Re: strip/block size y otros temas de RAID (largo)

2008-12-31 Por tema Alvaro Herrera
Victor Hugo dos Santos escribió:

 mmm.. en mi caso, LVM es esencial por los snapshots.
 lo usamos principalmente para disminuir el tiempo en que los servicios
 estaban detenidos por que se estaban ejecutando respaldos de los
 datos, o sea:
  - se detiende los servicios
  - se crea el snap
  - se llevanta los servicios
  - se respalda los datos desde el snap
 
 desconozco si hay alguna otra altrenativa a LVM+SNAP en ext3.

Hay filesystems que implementan snapshots (y otras cosas) nativamente,
como ZFS.  Si de paso saltas a OpenSolaris, vas a tener la posibilidad
de usar DTrace tambien ;-)  (BTW Postgres tiene un conjunto propio de
trazas para DTrace, que yo no he probado nunca pero he oído que son muy
buenas para diagnosticar problemas de rendimiento).

Ah, y si lo que quieres es DTrace, está en otros sistemas operativos,
como FreeBSD y Mac OS X.

-- 
Alvaro Herrera  http://www.amazon.com/gp/registry/5ZYLFMCVHXC
God is real, unless declared as int


Re: strip/block size y otros temas de RAID (largo)

2008-12-31 Por tema Alvaro Herrera
Aldrin Martoq escribió:
 On Wed, 2008-12-31 at 10:05 -0300, Alvaro Herrera wrote:

   Me parece que RAID-5 seria lo mejor para performance/confiabilidad.
  Las mediciones de rendimiento que han hecho varias personas en
  pgsql-performance han mostrado que RAID-10 es muy superior a RAID-5.
 
 Hmmm estaba revisando y muchos sitios dicen lo mismo. Basicamente,
 RAID-5 es superior en lectura y RAID-10 es superior en escritura.
 
 La data que muestro (LVM, RAID) fueron pruebas personales contra el
 tarro, probb mis pruebas estuvieron malas en algun punto.

Quizás las pruebas no estaban malas sino que las hiciste con hardware
penca (por ej. he oído muchas veces que las controladores RAID Adaptec
son horribles, y algunas que solían venir con Dell hace años también).

-- 
Alvaro Herrera   http://www.PlanetPostgreSQL.org/
After a quick R of TFM, all I can say is HOLY CR** THAT IS COOL! PostgreSQL was
amazing when I first started using it at 7.2, and I'm continually astounded by
learning new features and techniques made available by the continuing work of
the development team.
Berend Tober, http://archives.postgresql.org/pgsql-hackers/2007-08/msg01009.php


Re: strip/block size y otros temas de RAID (largo)

2008-12-31 Por tema Victor Hugo dos Santos
2008/12/31 Alvaro Herrera alvhe...@alvh.no-ip.org:
 Aldrin Martoq escribió:
 On Wed, 2008-12-31 at 10:05 -0300, Alvaro Herrera wrote:

[...]

 La data que muestro (LVM, RAID) fueron pruebas personales contra el
 tarro, probb mis pruebas estuvieron malas en algun punto.

 Quizás las pruebas no estaban malas sino que las hiciste con hardware
 penca (por ej. he oído muchas veces que las controladores RAID Adaptec
 son horribles, y algunas que solían venir con Dell hace años también).

mmm.. es provable..
pero has escuchado comentarios de alguna que sea buena ??? cuales ??

salu2 y buenas fiestas.

-- 
-- 
Victor Hugo dos Santos
Linux Counter #224399



Re: strip/block size y otros temas de RAID (largo)

2008-12-31 Por tema Alvaro Herrera
Aldrin Martoq escribió:
 On Wed, 2008-12-31 at 11:12 -0300, Horst H. von Brand wrote:

No creo que strace(1) ayude mucho aca?
   Con strace puedes sacar el tamano de un write por ejemplo,
  Cierto.
   y el tiempo que tomo.
  El tiempo que tomo en retornar de la llamada al sistema, nada mas.
 Es un DTrace/Systemtap de los pobres ;)
  Si y no. Es una herramienta para otros usos.
 
 Han hecho un strace -c /bin/ls / por ejemplo? Es basicamente el mismo
 tipo de informacion que uno necesita cuando usa DTrace o Systemtap. Me
 imagino que se podria modificar para extraer mas datos relevantes que a
 uno le pueda interesar...

El problema de strace es que muestra la información a un nivel muy
lejano.  Sólo tienes el dato de cuando se entra y sale de cada syscall,
pero no sabes nada de qué cosas pasan por debajo (por ej. cuales
llamadas a read leen del disco y cuales traen cosas de algún cache).
Ni tampoco qué cosas pasan más arriba, por ejemplo dónde se hace cada
llamada a read, o por qué la aplicación parece estar haciendo un montón
de llamadas a stat() que en realidad las hace libc o alguna otra
biblioteca.

Para diagnosticar algunos problemas yo he usado oprofile, que es
bastante más que strace (pero bastante menos que DTrace).

 Uno de los problemas que me han ocurrido con strace es que las
 aplicaciones se ven afectadas (creo que el tema de signals)... Varias
 veces hacer strace a un proceso java he terminado con la jvm colgada.

Claro, eso puede ser un problema que no tienes con DTrace.  Lo otro es
que strace afecta el rendimiento de la aplicación, mientras que DTrace
es mucho menos intrusivo en este aspecto.

-- 
Alvaro Herrerahttp://www.amazon.com/gp/registry/3BP7BYG9PUGI8
Most hackers will be perfectly comfortable conceptualizing users as entropy
 sources, so let's move on.   (Nathaniel Smith)


Re: strip/block size y otros temas de RAID (largo)

2008-12-31 Por tema Aldrin Martoq
On Wed, 2008-12-31 at 12:58 -0300, Victor Hugo dos Santos wrote:
 2008/12/31 Alvaro Herrera alvhe...@alvh.no-ip.org:
  Aldrin Martoq escribió:
  On Wed, 2008-12-31 at 10:05 -0300, Alvaro Herrera wrote:
  La data que muestro (LVM, RAID) fueron pruebas personales contra el
  tarro, probb mis pruebas estuvieron malas en algun punto.
  Quizás las pruebas no estaban malas sino que las hiciste con hardware
  penca (por ej. he oído muchas veces que las controladores RAID Adaptec
  son horribles, y algunas que solían venir con Dell hace años también).
 mmm.. es provable..
 pero has escuchado comentarios de alguna que sea buena ??? cuales ??

Estoy seguro que obtendras el mejor rendimiento con el raid nativo de
linux, pero tendras un buen gasto de CPU...

Del resto, has las pruebas correspondientes no mas en el tarro que
tengas ... depende mucho de tu aplicacion.

-- 
Aldrin Martoq amar...@dcc.uchile.cl
http://aldrin.martoq.cl/videopodcast/ http://aldrin.martoq.cl/techblog/


signature.asc
Description: This is a digitally signed message part


Re: strip/block size y otros temas de RAID (largo)

2008-12-31 Por tema Alvaro Herrera
Aldrin Martoq escribió:
 On Wed, 2008-12-31 at 12:58 -0300, Victor Hugo dos Santos wrote:
  2008/12/31 Alvaro Herrera alvhe...@alvh.no-ip.org:
   Aldrin Martoq escribió:
   On Wed, 2008-12-31 at 10:05 -0300, Alvaro Herrera wrote:
   La data que muestro (LVM, RAID) fueron pruebas personales contra el
   tarro, probb mis pruebas estuvieron malas en algun punto.
   Quizás las pruebas no estaban malas sino que las hiciste con hardware
   penca (por ej. he oído muchas veces que las controladores RAID Adaptec
   son horribles, y algunas que solían venir con Dell hace años también).
  mmm.. es provable..
  pero has escuchado comentarios de alguna que sea buena ??? cuales ??
 
 Estoy seguro que obtendras el mejor rendimiento con el raid nativo de
 linux, pero tendras un buen gasto de CPU...

El problema es que no puedes tener un cache respaldado por baterias en
este caso (cosa que Victor Hugo ya dijo que tenía).  Para una base de
datos puede ser una diferencia sustancial.

 Del resto, has las pruebas correspondientes no mas en el tarro que
 tengas ... depende mucho de tu aplicacion.

/me nods

-- 
Alvaro Herrera   Valdivia, Chile   ICBM: S 39º 48' 55.3, W 73º 15' 24.7
En las profundidades de nuestro inconsciente hay una obsesiva necesidad
de un universo lógico y coherente. Pero el universo real se halla siempre
un paso más allá de la lógica (Irulan)


Re: strip/block size y otros temas de RAID (largo)

2008-12-31 Por tema Horst H. von Brand
Victor Hugo dos Santos listas@gmail.com wrote:
 2008/12/31 Alvaro Herrera alvhe...@alvh.no-ip.org:
  Aldrin Martoq escribió:
  On Wed, 2008-12-31 at 10:05 -0300, Alvaro Herrera wrote:
 
 [...]
 
  La data que muestro (LVM, RAID) fueron pruebas personales contra el
  tarro, probb mis pruebas estuvieron malas en algun punto.
 
  Quizás las pruebas no estaban malas sino que las hiciste con hardware
  penca (por ej. he oído muchas veces que las controladores RAID Adaptec
  son horribles, y algunas que solían venir con Dell hace años también).
 
 mmm.. es provable..
 pero has escuchado comentarios de alguna que sea buena ??? cuales ??

Sgun lo que lei (hace tiempo!), el RAID por software de Linux era mejor que
todas las controladoras RAID por hardware.
-- 
Dr. Horst H. von Brand   User #22616 counter.li.org
Departamento de InformaticaFono: +56 32 2654431
Universidad Tecnica Federico Santa Maria +56 32 2654239
Casilla 110-V, Valparaiso, Chile 234   Fax:  +56 32 2797513


Re: strip/block size y otros temas de RAID (largo)

2008-12-31 Por tema Alvaro Herrera
Victor Hugo dos Santos escribió:
 2008/12/31 Alvaro Herrera alvhe...@alvh.no-ip.org:

  Quizás las pruebas no estaban malas sino que las hiciste con hardware
  penca (por ej. he oído muchas veces que las controladores RAID Adaptec
  son horribles, y algunas que solían venir con Dell hace años también).
 
 mmm.. es provable..
 pero has escuchado comentarios de alguna que sea buena ??? cuales ??

Sí, algunos (LSI, Areca) ... por ej. acá hay un par de recomendaciones
http://archives.postgresql.org/pgsql-performance/2008-12/msg00121.php

Puedes seguir buscando los archivos de la lista pgsql-performance:
http://search.postgresql.org/search?q=good+raid+controller+marlowem=1l=13d=365s=r

Echale un vistazo a los artículos de Scott Marlowe o Greg Smith (Luke
Lonergan también podría haber sido pero hace mucho que no participa)

-- 
Alvaro Herrera   http://www.PlanetPostgreSQL.org/
Someone said that it is at least an order of magnitude more work to do
production software than a prototype. I think he is wrong by at least
an order of magnitude.  (Brian Kernighan)


Re: strip/block size y otros temas de RAID (largo)

2008-12-31 Por tema Aldrin Martoq
[Yep, el termino stripe lo use muy mal]

On Wed, 2008-12-31 at 13:08 -0300, Marcelo Espinosa Alliende wrote:
 El mié, 31-12-2008 a las 11:38 -0300, Aldrin Martoq escribió:
  Tambien hay algo extran~o en la formula, por lo siguiente:
   un ejemplo para ilustrar lo anterior.
   carga de 500 I/Os con 10 discos para RAID5
LecturasEscriturasI/Os RAID_5  
   --
 100,00%0,00%(500 + 0) / 10= 50 
  90,00%10,00%   (450 + 200) / 10  = 65 
  75,00%25,00%   (375 + 500) /10   = 87,5 
  50,00%50,00%   (250 + 1000) / 10 = 125 
   0,00%100,00%  (0 + 2000) / 10   = 200 
   
   LecturasEscriturasI/Os RAID_10 
   --  
 100,00%0,00%(500 + 0) /10 = 50
  90,00%10,00%   (450 + 100) / 10  = 55
  75,00%25,00%   (375 + 250) / 10  = 62.5
  50,00%50,00%   (250 + 500) / 10  = 75
   0,00%100,00%  (0 + 1000) / 10   = 100
  
  Con 10 discos y solo lectura deberias tener performance de 9x para
  raid-5 y 5x para raid-10; pero tus calculos no muestran eso.
 no, el comportamiento en operaciones de IO es igual para ambos, aquí
 lo
 que te dice es que cada disco va a manejar ese volumen de IOs y
 punto. 

A ver, si es la cantidad de operaciones por disco lo estas calculando
mal.

LOS SUPUESTOS aca son:
- no hay cache o los datos no estan en el
- la escalabilidad del numero de operaciones/disco es un buen
indicador
- raid 10 lee de ambos espejos (lo llamare RAID nuevo mas abajo)


PARA RAID-5
- si tenemos 500 lecturas a distribuir en 10 discos, cada disco debera
ejecutar 500/9 lecturas (ya que un disco no almacena datos).
- si tenemos 500 escrituras sobre 10 discos, cada escritura toma 2
lecturas y 2 escrituras; luego cada disco hace 500*4/9 operaciones.

La formula es:
operaciones/disco = (lecturas + escrituras*4)/(n_discos - 1)


PARA RAID-10 viejo
- este es el RAID10 que supongo yo esta implementado
- aca supongo que el raid _compara_ lo que lee desde un espejo y el otro
- luego, 500 lecturas se duplican entre espejos, osea son 100 lecturas
por disco.
- cuando escribe, escribe en ambos espejos. 500 escrituras son 100
escrituras por disco.

La formula seria:
operaciones/disco = (lecturas*2 + escrituras*2)/n_discos


PARA RAID-10 nuevo
- aca suponemos que las lecturas son alternadas entre espejos; luego 500
lecturas son 500/10 = 50 lecturas por disco
- cuando escribe, escribe en ambos espejos. 500 escrituras son 100
escrituras por disco.

La formula seria:
operaciones/disco = (lecturas + escrituras*2)/n_discos


Resumiendo en una tabla:
  operaciones/disco
#disk #oper #read #write  RAID-5  RAID-10  RAID10 nuevo
10500   100%  0%  55.56   100  50
10500   90%   10% 72.22   100  55
10500   75%   25% 97.22   100  62.50
10500   50%   50% 138.89  100  75
10500   0%100%222.22  100  100


 por mucho cache que le pongas a la controladora, si tienes más de un
 10%
 de escrituras raid10 se va a comportar mejor que raid 5 y punto... 

Hmm segun tu tabla original, RAID-10 siempre es mejor y en el caso 100%
lectura es igual que RAID-5. Segun la mia, RAID-10 nuevo es mejor
_siempre_. Eso en la practica es claramente incorrecto. Lo que esta mal
de tu tabla y de mi tabla son los supuestos. Veamos los supuestos:

- no hay cache: ok, yo tambien jugaba sin cache. Puede que no tengas
cache si lees/escribas data nunca vista. Pero ese no es un caso muy
real, en el mejor caso (esta en cache) RAID-5 escribe en 2 discos, igual
que RAID-10.

- RAID-10 lee de ambos discos: me parece que esto no pasa en las
controladores que he visto. Creyendole a mi tabla, RAID-10 debe ser
SIEMPRE superior a RAID-5 (ya que tienes el ancho de banda de 10 discos
en vez de 9 en modalidad lectura). Pero en la practica esto no sucede o
no lo he visto.

- el # operaciones por disco es un buen indicador: insisto en que el
real indicador debe ser el ancho de banda. el # operaciones no considera
que en la escritura de un stripe en RAID-5 hay un delay importante al
leer todos los discos y luego escribir 2 discos.

Tampoco estas considerando que en la escritura de un stripe, cuando
escribes, escribes en los 10 discos. Si bien es al mismo tiempo, el
tema del tiempo de busqueda influye en el tiempo en que termine esa
operacion (por eso insisto que son 10 escrituras al mismo tiempo).

Hay otro item que no ves con el indicador de #operaciones/disco: en
RAID-5 tienes mucho mas espacio disponible. Entonces, un stripe almacena
mas datos en un RAID-5 que en un RAID-10 (casi el doble). Esto significa
que en cualquier operacion, si lees el taman~o de un stripe completo en
RAID-5 solo ocuparas 1 vez los discos, en RAID-10 los ocuparas 2 veces.


Ya estoy 

Re: strip/block size y otros temas de RAID (largo)

2008-12-31 Por tema Mario Gonzalez
2008/12/31 Alvaro Herrera alvhe...@alvh.no-ip.org:

 Quizás las pruebas no estaban malas sino que las hiciste con hardware
 penca (por ej. he oído muchas veces que las controladores RAID Adaptec
 son horribles, y algunas que solían venir con Dell hace años también).


 Hey, ni tanto con las Adaptec! :-) He escuchado de algunos modelos
malitos pero en mi corta experiencia, he tenido buenos resultados
con esa marca.



-- 
http://www.mgonzalez.cl/



Re: strip/block size y otros temas de RAID (largo)

2008-12-31 Por tema Alvaro Herrera
Mario Gonzalez escribió:
 2008/12/31 Alvaro Herrera alvhe...@alvh.no-ip.org:
 
  Quizás las pruebas no estaban malas sino que las hiciste con hardware
  penca (por ej. he oído muchas veces que las controladores RAID Adaptec
  son horribles, y algunas que solían venir con Dell hace años también).
 
  Hey, ni tanto con las Adaptec! :-) He escuchado de algunos modelos
 malitos pero en mi corta experiencia, he tenido buenos resultados
 con esa marca.

Parece que hay otros que están de acuerdo contigo, por ej.

http://www.nabble.com/Adaptec-5805-SAS-Raid-td16056447.html

-- 
Alvaro Herrera  Developer, http://www.PostgreSQL.org/
La conclusión que podemos sacar de esos estudios es que
no podemos sacar ninguna conclusión de ellos (Tanenbaum)


Re: strip/block size y otros temas de RAID (largo)

2008-12-31 Por tema Alvaro Herrera
Victor Hugo dos Santos escribió:

 pero has escuchado comentarios de alguna que sea buena ??? cuales ??

El comentario de Mario me hizo llegar a este thread donde también hay
algunas recomendaciones y comentarios generales sobre discos y
controladoras:

http://markmail.org/message/vapnntifqchr5t4c#query:+page:1+mid:sfxodr5wuuxzgnmt+state:results

-- 
Alvaro Herrera   http://www.PlanetPostgreSQL.org/
Java is clearly an example of money oriented programming  (A. Stepanov)


strip/block size y otros temas de RAID (largo)

2008-12-30 Por tema Victor Hugo dos Santos
Hola a todos, como van las fiestas para fin de año ???

bien, estoy mirando algunos documentos de como mejorar la peformance
de accesos a los discos duros:
1 
http://thias.marmotte.net/archives/2008/01/05/Dell-PERC5E-and-MD1000-performance-tweaks.html
2 http://kbase.redhat.com/faq/docs/DOC-2893
3 http://wiki.centos.org/HowTos/Disk_Optimization
4 http://insights.oetiker.ch/linux/raidoptimization/

y tengo algunas dudas existenciales que tal vez alguno pueda
ayudarme a entender

Obs.:
1 -  El SO es un RHEL 5.2
2 - no tengo problemas de performance en estes momentos, pero quiero
descubrir hasta donde puedo llegar (en mejoria) manteniendo los datos
seguros.
3 - los 4 servidores que tengo para pruebas, son
PowerEdge 2950 ( 2 x Intel(R) Xeon(R) CPU X5460 @ 3.16GHz) y32768 MB
Controladora PERC 6/i Integrated (con bateria) con 6 (4 en el canal 0
y 2 en el canal 1) discos Seagate Cheetah NS SAS (3Gb/s 400-GB y 16 MB
de cache)
4 - dichos equipos estarian destinados a trabajar con BD (oracle y postgresql)


bien.. en estes momentos tengo un solo RAID-10 creado en la
controladora que alberga todos los 6 discos y me genera un unico
volume de 1,116.00 GB
y dentro del sistema operativo tengo las siguientes particiones y LVM

===
$ sudo fdisk -l

Disco /dev/sda: 1198.2 GB, 1198295875584 bytes
255 heads, 63 sectors/track, 145684 cylinders
Unidades = cilindros de 16065 * 512 = 8225280 bytes

Disposit. InicioComienzo  Fin  Bloques  Id  Sistema
/dev/sda1   *   1  32  257008+  83  Linux
/dev/sda2  33316825189920   8e  Linux LVM
/dev/sda33169  145684  11447597705  Extendida
/dev/sda53169   65416   57028+  8e  Linux LVM
/dev/sda6   65417  127664   57028+  8e  Linux LVM

[vic...@blue etc]$ sudo lvs
  LV  VG   Attr   LSize   Origin Snap%  Move Log Copy%  Convert
  applVG_DATOS -wi-ao  20,00G
  dataVG_DATOS -wi-ao 400,00G
  raiz VG_SYS   -wi-ao  20,00G
  swap   VG_SYS   -wi-ao   4,00G
===

despues de leer varios documentos en internet... pienso que el mejor seria:
 - crear en la controladora un volume de discos para las particiones
/boot y swap (~ 5GB)
 - crear en la controladora un volume de discos para la particion / (~ 20 GB)
 - crear en la controladora un volume de discos para las particiones
de datos /var/data con todo el espacio que sobre de los discos (unos
1.1TB ~)

bien.. hacendo esto, las particiones / y /var/data usarian el
sector 0 de los volumenes y estarian alinadas case que por defecto
con los strip size de los RAIDs

aca me entra las siguientes dudas:

* ahora, el strip size de los volumenes esta configurado en 64 K (con
Write-Back y Adaptive Read Ahead habilitados tambien), pero cuales
serian los mejores valores para:
 - particion / en general
 - base de datos oracle y postgresql (considerar instalación por
defecto, sin cambios significativos)

* no tengo certeza, pero el strip size no funciona igual que el block
size de los sistemas de archivos, o si ?? por ejemplo..
se tengo configurado el FS con blocos de 4K y envio 3 archivos de 2K
entonces, utilizaria 3 blocos y estaria ocupando 12K en el FS.
se tengo configurado el strip size en 64K y envio 3 archivos de 40K ,
estes se escriben sequencialmente/en bruto en los discos, sin
perdidas.
no se si me explique bien mi duda !!! (sorry)

* hay algun comando/script para verificar en el FS el tamano promedio
de los archivos y en base a esto saber cual es el mejor block size que
deberia de utilizar ??



bueno, considerando que:
- las particiones estan alinadas con los volumenes
- el strip size sea 64K
- el arreglo en RAID 10
entonces, formateo las particiones con el siguiente comando:
sudo  mkfs.ext3 -E stride=16 /dev/VG_DATOS/data

bueno, utilizo el valor 16 en base al calculo (stride = strip size /
block size) y se que el valor por defecto del block size para ext3 es
4K
pero sera este valor (4K) el mejor para BDs ?? alguna otra recomendacion ??


en el enlace (http://wiki.centos.org/HowTos/Disk_Optimization) indica
algunos parametros para montar las particiones:
notime  creo que no es tan necesario para las BD, por que son pocos
archivos pero de gran tamano
commit  suena interesante, principalmente por que hay la controladora
RAID tiene una bateria.
writeback   la verdad, verdadera es que no entendi del todo. :-(

y todo esto ira en el fstab:
/dev/VG_DATOS/data  /var/data   
defaults,noatime,commit=120,data=writeback 0 0

pero son realmente seguros con la actual configuracion que tengo ??
comentarios ??


bien.. por ultimo (finalmente), en el segun y ultimo link (2 y 4)
comentan sobre la posibilidad de aumentar el read-a-head de los
dispositivos RAIDs..
en el segundo enlace menciona el comando:   

Re: strip/block size y otros temas de RAID (largo)

2008-12-30 Por tema Aldrin Martoq
Hola Victor, muy largo lo que escribiste, tratare de aportar un poco ;)


On Tue, 2008-12-30 at 12:21 -0300, Victor Hugo dos Santos wrote:
 bien, estoy mirando algunos documentos de como mejorar la peformance
 de accesos a los discos duros:
 1 
 http://thias.marmotte.net/archives/2008/01/05/Dell-PERC5E-and-MD1000-performance-tweaks.html
 2 http://kbase.redhat.com/faq/docs/DOC-2893
 3 http://wiki.centos.org/HowTos/Disk_Optimization
 4 http://insights.oetiker.ch/linux/raidoptimization/
 
 y tengo algunas dudas existenciales que tal vez alguno pueda
 ayudarme a entender
 Obs.:
 1 -  El SO es un RHEL 5.2
 2 - no tengo problemas de performance en estes momentos, pero quiero
 descubrir hasta donde puedo llegar (en mejoria) manteniendo los datos
 seguros.
 3 - los 4 servidores que tengo para pruebas, son
   PowerEdge 2950 ( 2 x Intel(R) Xeon(R) CPU X5460 @ 3.16GHz) y32768 MB
   Controladora PERC 6/i Integrated (con bateria) con 6 (4 en el canal 0
 y 2 en el canal 1) discos Seagate Cheetah NS SAS (3Gb/s 400-GB y 16 MB
 de cache)
 4 - dichos equipos estarian destinados a trabajar con BD (oracle y postgresql)

En mi experiencia, LVM es LENTO, segun las ultimas pruebas que hice (un
tarro parecido al que muestras). Cambia alguna particion (/var ?) y haz
alguna prueba sencilla y nos avisas, pues no tengo numeros!


 bien.. en estes momentos tengo un solo RAID-10 creado en la
 controladora que alberga todos los 6 discos y me genera un unico
 volume de 1,116.00 GB
 y dentro del sistema operativo tengo las siguientes particiones y LVM


En mis pruebas, separar el arreglo fisico similar al _USO_ que tendra
en el sistema operativo ayuda bastante. La primera vez hice lo mismo: un
puro arreglo RAID-6 con 8 discos, al final era mas lento porque tenia
varias aplicaciones escribiendo en el disco y si bien el arreglo _era_
muy rapido, tenias lecturas/escrituras que estaban encoladas. Se veia a
simple vista: todas las lucecitas constantemente moviendose de TODOS los
discos.

Esto es mas lento porque en el fondo tienes un puro disco con varios
platos, esto influye en el seek time y se encolan si tienes varias
aplicaciones distintas corriendo al mismo tiempo.

La solucion fue respaldar todo, rehacer el arreglo en 2 arreglos RAID-5
y dejar unas aplicaciones usando 1 grupo de discos y otras aplicaciones
usando el otro grupo de discos. La cola de lecturas/escrituras disminuyo
enormemente, y ahora las lucecitas eran a un lado o al otro.


Varios:
- recuerda que los discos de un lote son mas propensos a fallar una vez
que fallo el primero: apenas falle un disco comienza a buscar
reemplazos!
http://lwn.net/Articles/237924/
- luego: cuando tienes esta cantidad de espacio, busca donde dejar los
respaldos (data y APLICACIONES).



 despues de leer varios documentos en internet... pienso que el mejor seria:
 - crear en la controladora un volume de discos para las particiones
 /boot y swap (~ 5GB)
  - crear en la controladora un volume de discos para la particion / (~ 20 
 GB)
  - crear en la controladora un volume de discos para las particiones
 de datos /var/data con todo el espacio que sobre de los discos (unos
 1.1TB ~)

Separalos en base al USO. Yo tenia varias maquinas virtuales, lo que
hice fue poner unas en 1 arreglo y otras en el otro arreglo; alternadas
segun cuando se usan.

Me parece que RAID-5 seria lo mejor para performance/confiabilidad.

Te recomiendo separar en dos grupos de 3 y 3 discos, en cada grupo crea
mas de un arreglo RAID (cada arreglo lo veras como un disco sdX). Luego
en la marcha, segun el uso, puedes mover un arreglo entre un grupo y el
otro. Algo asi:

 grupo 1grupo 2
|D1 D2 D3| |D4 D5 D6| 
|  sda   | |  sde   |
|  sdb   | |  sdf   |
|  sdc   | |  sdg   |
++ ++

Entonces, puedes dejar por ejemplo:
sda /   sde /backup
sdb /database1  sdf /database2
sdc swapsdg /test


 aca me entra las siguientes dudas:
 * ahora, el strip size de los volumenes esta configurado en 64 K (con
 Write-Back y Adaptive Read Ahead habilitados tambien), pero cuales
 serian los mejores valores para:
  - particion / en general
  - base de datos oracle y postgresql (considerar instalación por
 defecto, sin cambios significativos)

Creo que todo esto lo sabriamos si tuvieramos DTrace, asi no tendriamos
que adivinar...

Por ejemplo, podrias sacar la distribucion del taman~o del block usado
_en tu aplicacion_, que es lo que importa al final:

http://wikis.sun.com/display/DTrace/io+Provider#ioProvider-Examples


Podrias intentarlo con systemtap o por ultimo strace y nos cuentas ;)


-- 
Aldrin Martoq amar...@dcc.uchile.cl
http://aldrin.martoq.cl/videopodcast/ http://aldrin.martoq.cl/techblog/


signature.asc
Description: This is a digitally signed message part


Re: strip/block size y otros temas de RAID (largo)

2008-12-30 Por tema Victor Hugo dos Santos
2008/12/30 Aldrin Martoq amar...@dcc.uchile.cl:
 Hola Victor, muy largo lo que escribiste, tratare de aportar un poco ;)

siii.. gracias !! :D

[...]

 En mi experiencia, LVM es LENTO, segun las ultimas pruebas que hice (un
 tarro parecido al que muestras). Cambia alguna particion (/var ?) y haz
 alguna prueba sencilla y nos avisas, pues no tengo numeros!

anotado.. hare la prueba en la siguiente semana.


[...]

 En mis pruebas, separar el arreglo fisico similar al _USO_ que tendra
 en el sistema operativo ayuda bastante. La primera vez hice lo mismo: un
 puro arreglo RAID-6 con 8 discos, al final era mas lento porque tenia
 varias aplicaciones escribiendo en el disco y si bien el arreglo _era_
 muy rapido, tenias lecturas/escrituras que estaban encoladas. Se veia a
 simple vista: todas las lucecitas constantemente moviendose de TODOS los
 discos.

 Esto es mas lento porque en el fondo tienes un puro disco con varios
 platos, esto influye en el seek time y se encolan si tienes varias
 aplicaciones distintas corriendo al mismo tiempo.

sospeche desde el principio !!
pero en este caso, estas maquinas estan dedicada unica y
exclusivamente a las BD..
asi, que creo que la particion que realmente tendra carga es la de datos.


[...]

 - recuerda que los discos de un lote son mas propensos a fallar una vez
 que fallo el primero: apenas falle un disco comienza a buscar
 reemplazos!
 http://lwn.net/Articles/237924/

interesante el articulo.. pena que los links llevan a documentos que
necesitan suscripcion ($$$) para visulizarlos.

 - luego: cuando tienes esta cantidad de espacio, busca donde dejar los
 respaldos (data y APLICACIONES).

esto ya esta considerado.. vamos a tener servidores redundantes..
en otras palabras: redundantemente problematicos !! ;-)


[...]

 Separalos en base al USO. Yo tenia varias maquinas virtuales, lo que
 hice fue poner unas en 1 arreglo y otras en el otro arreglo; alternadas
 segun cuando se usan.

 Me parece que RAID-5 seria lo mejor para performance/confiabilidad.

mmm.. en esto discrepo de vos.. por que en el caso del RAID 5, la
controladora debe de calcular las paridades (o como se llame).. y esto
consume recursos.. en el caso del RAID 10 (y otros), esto no ocurre..
generando una mejor performance en este aspecto.
http://es.wikipedia.org/wiki/RAID#RAID_1.2B0
Obs.: es la primera vez que veo que un articulo en español esta mucho
mas detallado que en ingles en la wikipedia !! :)


[...]

 Creo que todo esto lo sabriamos si tuvieramos DTrace, asi no tendriamos
 que adivinar...

 Por ejemplo, podrias sacar la distribucion del taman~o del block usado
 _en tu aplicacion_, que es lo que importa al final:

 http://wikis.sun.com/display/DTrace/io+Provider#ioProvider-Examples

interesante.. lo estoy revisando.

salu2

-- 
-- 
Victor Hugo dos Santos
Linux Counter #224399



Re: strip/block size y otros temas de RAID (largo)

2008-12-30 Por tema Horst H. von Brand
Victor Hugo dos Santos listas@gmail.com wrote:
 bien, estoy mirando algunos documentos de como mejorar la peformance
 de accesos a los discos duros:

 1 
 http://thias.marmotte.net/archives/2008/01/05/Dell-PERC5E-and-MD1000-performance-tweaks.html
 2 http://kbase.redhat.com/faq/docs/DOC-2893
 3 http://wiki.centos.org/HowTos/Disk_Optimization
 4 http://insights.oetiker.ch/linux/raidoptimization/
 
 y tengo algunas dudas existenciales que tal vez alguno pueda
 ayudarme a entender
 
 Obs.:
 1 -  El SO es un RHEL 5.2

OK.

 2 - no tengo problemas de performance en estes momentos, pero quiero
 descubrir hasta donde puedo llegar (en mejoria) manteniendo los datos
 seguros.

Como dice por alli: 

First rule of optimization: Don't do it.
 Second rule of optimization (only of experts!): Don't do it (yet).

Y el dictum de Knuth: Premature optimization is the root of all evil

Para reflexion final, como dice Jon Bentley[1] (y tiene algunos cuentos muy
lindos para apoyarlo): Optimizar es ubicar el cuello de botella
(_midiendo_, porque a la hora de estimar donde esta no andamos ni cerca) y
ver como eliminarlo. Hacer que los discos se accedan mas rapido no ayuda en
(casi) nada si el problema esta en otra parte. Lo tipico es que un programa
pase 95% de su tiempo en 5% de su codigo (para una variedad de valores de 5
y 95 ;-). Entonces haciendo que el 5% vaya 2 veces mas rapido, tienes que
en vez de 100 se demora:

  95 * 1/2  + 5 * 1 = 52,5

o sea, logras que vaya casi 2 veces mas rapido. En cambio, si a traves de
un heroico esfuerzo logras disminuir el tiempo de ejecucion del 95%
restante a la mitad, tienes que se demora:

  95 * 1 + 5 * 1/2 = 97,5

En castellano, no hay diferencia.

El mismo efecto ocurre a lo ancho en sistemas, no solo programas. Me
contaron de una situacion en la cual una consulta SQL se demoraba decenas
de minutos; compraron maquinas mas grandes, discos mas rapidos, ... y
lograron disminuir el tiempo de ejecucion de la consulta (critica en cierta
aplicacion) un par de minutos (10 o 15%). Reorganizando la consulta y
agregando indices adecuados, el tiempo bajo a unos pocos segundos.

 3 - los 4 servidores que tengo para pruebas, son
   PowerEdge 2950 ( 2 x Intel(R) Xeon(R) CPU X5460 @ 3.16GHz) y32768 MB
   Controladora PERC 6/i Integrated (con bateria) con 6 (4 en el canal 0
 y 2 en el canal 1) discos Seagate Cheetah NS SAS (3Gb/s 400-GB y 16 MB
 de cache)
 4 - dichos equipos estarian destinados a trabajar con BD (oracle y postgresql)

Conviene alli organizar las bases de datos de forma que no hayan accesos
concurrentes al mismo disco (separar logs y datos, poner tablas que se
usan juntas en discos separados, ...)

 bien.. en estes momentos tengo un solo RAID-10 creado en la
 controladora que alberga todos los 6 discos y me genera un unico
 volume de 1,116.00 GB

Mala idea. Ver arriba.

RAID (salvo espejado puro o striping a secas) es letal para rendimiento:
Supongamos 3 datos + 1 paridad. Para escribir requieres a lo menos leer 2
(2 datos que no cambian, 1 cambia y no importa), calcular nueva paridad y
escribir 2 (nuevos datos y nueva paridad). Si eres paranoico (debiera
serlo!), lees 4 (3 datos + paridad), verificas; luego escribes 2 (nuevos
datos + nueva paridad). Para leer requieres leer 4 (3 datos + paridad,
luego verificar). Compara con 1 escritura y 1 lectura. Aun si logras
traslapar perfectamente I/O (== una controladora por disco), igual pagas
los costos de operaciones extra y verificar.

 y dentro del sistema operativo tengo las siguientes particiones y LVM

LVM es muy comodo, pero tiene su costo en rendimiento...

[...]

 despues de leer varios documentos en internet... pienso que el mejor seria:
  - crear en la controladora un volume de discos para las particiones
 /boot y swap (~ 5GB)

/boot solo se usa al inicio. Puede ir donde quepa, es irrelevante para el
rendimiento.

Recordar que los discos son  m u y  l e n t o s  frente a RAM, asi que
debe considerarse siempre el area swap como ultimo recurso. Idealmente
nunca se usa, esta unicamente para el caso once in a blue moon se quedo
sin memoria el sistema; entonces en vez de irse de hocico sigue funcionando
(extremadamente lento, pero sigue). Esto salvo casos extran~os de
aplicaciones que tienen memorias virtuales gigantescas, a las que rara vez
hacen referencia (servidor DNS).  O sea, si usas swap, compra mas
RAM. Por lo expuesto, puede ir donde quiera (no afecta el caso normal).

  - crear en la controladora un volume de discos para la particion / (~
  20 GB)

Sistema operativo y aplicaciones. Dependiendo de la carga exacta, _debiera_
ser totalmente irrelevante (las bibliotecas y programas se cargan en RAM, y
ya).

  - crear en la controladora un volume de discos para las particiones
 de datos /var/data con todo el espacio que sobre de los discos (unos
 1.1TB ~)

Divide los datos como indique arriba.

[...]

 aca me entra las siguientes dudas:
 
 * ahora, el strip size de los volumenes esta configurado en 64 K (con
 

Re: strip/block size y otros temas de RAID (largo)

2008-12-30 Por tema Germán Póo-Caamaño
On Tue, 2008-12-30 at 15:51 -0300, Horst H. von Brand wrote:
 [...]
 El mismo efecto ocurre a lo ancho en sistemas, no solo programas. Me
 contaron de una situacion en la cual una consulta SQL se demoraba decenas
 de minutos; compraron maquinas mas grandes, discos mas rapidos, ... y
 lograron disminuir el tiempo de ejecucion de la consulta (critica en cierta
 aplicacion) un par de minutos (10 o 15%). Reorganizando la consulta y
 agregando indices adecuados, el tiempo bajo a unos pocos segundos.

Este ejemplo es un clásico.  Y me atrevería a decir que es la norma, más
que la excepción.

Después de la segunda o tercera iteración, recién se comienza a asumir
que el problema puede estar en las consultas, la aplicación o alguna
combinación de éstas.

-- 
Germán Póo-Caamaño
http://www.calcifer.org/



Re: strip/block size y otros temas de RAID (largo)

2008-12-30 Por tema Horst H. von Brand
Aldrin Martoq amar...@dcc.uchile.cl wrote:
 Hola Victor, muy largo lo que escribiste, tratare de aportar un poco ;)

;-) 

 On Tue, 2008-12-30 at 12:21 -0300, Victor Hugo dos Santos wrote:

[...]

 Esto es mas lento porque en el fondo tienes un puro disco con varios
 platos,

No. RAID significa leer y escribir varios cada vez (para lo de R).

 esto influye en el seek time y se encolan si tienes varias
 aplicaciones distintas corriendo al mismo tiempo.

No. Si tienes varios platos (y cabezales) independientes, tienes mejor
rendimiento. RAID los interconecta (la A), y el rendimiento se va al
suelo.

 La solucion fue respaldar todo, rehacer el arreglo en 2 arreglos RAID-5
 y dejar unas aplicaciones usando 1 grupo de discos y otras aplicaciones
 usando el otro grupo de discos. La cola de lecturas/escrituras disminuyo
 enormemente, y ahora las lucecitas eran a un lado o al otro.

No es la mejor configuracion, entonces: Claramente le sacas el maximo
provecho a los discos si estan trabajando /todo/ el tiempo, no la mitad si
y la mitad no.

 Varios:
 - recuerda que los discos de un lote son mas propensos a fallar una vez
 que fallo el primero: apenas falle un disco comienza a buscar
 reemplazos!
 http://lwn.net/Articles/237924/
 - luego: cuando tienes esta cantidad de espacio, busca donde dejar los
 respaldos (data y APLICACIONES).

Esa es la idea de RAID (la I, originalmente de inexpensive: juntar
montones de discos chicos y baratos para obtener capacidades (y confiabilidad)
de disco inmenso y exageradamente caro).

[...]

  aca me entra las siguientes dudas:
  * ahora, el strip size de los volumenes esta configurado en 64 K (con
  Write-Back y Adaptive Read Ahead habilitados tambien), pero cuales
  serian los mejores valores para:
   - particion / en general
   - base de datos oracle y postgresql (considerar instalación por
  defecto, sin cambios significativos)

 Creo que todo esto lo sabriamos si tuvieramos DTrace, asi no tendriamos
 que adivinar...

... pero se requeriria 5 veces la maquina por Slowlaris... ;-)

[Recuerden que en Linux solia ser que lanzar un _proceso_ era mas rapido
 que lanzar una _hebra_ en Solaris, en la misma maquina!]

 Por ejemplo, podrias sacar la distribucion del taman~o del block usado
 _en tu aplicacion_, que es lo que importa al final:
 
 http://wikis.sun.com/display/DTrace/io+Provider#ioProvider-Examples

Cuidado, eso cuando mucho puede dar una indicacion generica; nadie te dice
que no hayan ajustado esos (y quien sabe que otros) parametros segun el
sistema en el cual corre.

 Podrias intentarlo con systemtap o por ultimo strace y nos cuentas ;)

No creo que strace(1) ayude mucho aca?
-- 
Dr. Horst H. von Brand   User #22616 counter.li.org
Departamento de InformaticaFono: +56 32 2654431
Universidad Tecnica Federico Santa Maria +56 32 2654239
Casilla 110-V, Valparaiso, Chile 234   Fax:  +56 32 2797513


LWN [Was: Re: strip/block size y otros temas de RAID (largo)]

2008-12-30 Por tema Horst H. von Brand
Victor Hugo dos Santos listas@gmail.com wrote:
 2008/12/30 Aldrin Martoq amar...@dcc.uchile.cl:

[...]

  - recuerda que los discos de un lote son mas propensos a fallar una vez
  que fallo el primero: apenas falle un disco comienza a buscar
  reemplazos!
  http://lwn.net/Articles/237924/

 interesante el articulo.. pena que los links llevan a documentos que
 necesitan suscripcion ($$$) para visulizarlos.

Los articulos de LWN son restringidos a los subscriptores por una semana (o
un poco mas). Los $$$ que pago por la subscripcion a LWN mas que lo valen.
-- 
Dr. Horst H. von Brand   User #22616 counter.li.org
Departamento de InformaticaFono: +56 32 2654431
Universidad Tecnica Federico Santa Maria +56 32 2654239
Casilla 110-V, Valparaiso, Chile 234   Fax:  +56 32 2797513


Re: LWN [Was: Re: strip/block size y otros temas de RAID (largo)]

2008-12-30 Por tema Aldrin Martoq
On Tue, 2008-12-30 at 17:00 -0300, Horst H. von Brand wrote:
 Victor Hugo dos Santos listas@gmail.com wrote:
  2008/12/30 Aldrin Martoq amar...@dcc.uchile.cl:
   - recuerda que los discos de un lote son mas propensos a fallar una vez
   que fallo el primero: apenas falle un disco comienza a buscar
   reemplazos!
   http://lwn.net/Articles/237924/
  interesante el articulo.. pena que los links llevan a documentos que
  necesitan suscripcion ($$$) para visulizarlos.
 Los articulos de LWN son restringidos a los subscriptores por una semana (o
 un poco mas). Los $$$ que pago por la subscripcion a LWN mas que lo valen.

Bueno, es un articulo viejo y esta disponible a cualquiera. Tambien hice
clic en el primer informe y lo veo perfectamente!

http://usenix.org/events/fast07/tech/schroeder/schroeder_html/index.html

-- 
Aldrin Martoq amar...@dcc.uchile.cl
http://aldrin.martoq.cl/videopodcast/ http://aldrin.martoq.cl/techblog/


signature.asc
Description: This is a digitally signed message part


Re: strip/block size y otros temas de RAID (largo)

2008-12-30 Por tema Aldrin Martoq
On Tue, 2008-12-30 at 15:35 -0300, Victor Hugo dos Santos wrote:
 2008/12/30 Aldrin Martoq amar...@dcc.uchile.cl:
  En mis pruebas, separar el arreglo fisico similar al _USO_ que tendra
  en el sistema operativo ayuda bastante. La primera vez hice lo mismo: un
  puro arreglo RAID-6 con 8 discos, al final era mas lento porque tenia
  varias aplicaciones escribiendo en el disco y si bien el arreglo _era_
  muy rapido, tenias lecturas/escrituras que estaban encoladas. Se veia a
  simple vista: todas las lucecitas constantemente moviendose de TODOS los
  discos.
  Esto es mas lento porque en el fondo tienes un puro disco con varios
  platos, esto influye en el seek time y se encolan si tienes varias
  aplicaciones distintas corriendo al mismo tiempo.
 sospeche desde el principio !!
 pero en este caso, estas maquinas estan dedicada unica y
 exclusivamente a las BD..
 asi, que creo que la particion que realmente tendra carga es la de datos.

Crea los grupos/arreglos que te recomende, despues en la marcha
intercalas las bases de datos que tienen mas carga.

  Me parece que RAID-5 seria lo mejor para performance/confiabilidad.
 mmm.. en esto discrepo de vos.. por que en el caso del RAID 5, la
 controladora debe de calcular las paridades (o como se llame).. y esto
 consume recursos.. en el caso del RAID 10 (y otros), esto no ocurre..
 generando una mejor performance en este aspecto.
 http://es.wikipedia.org/wiki/RAID#RAID_1.2B0
 Obs.: es la primera vez que veo que un articulo en español esta mucho
 mas detallado que en ingles en la wikipedia !! :)

Haz la prueba, de hecho en el primer link que mandaste el tipo muestra
la conversa en una lista y del primer link:
http://lists.us.dell.com/pipermail/linux-poweredge/2007-December/034160.html

10GB file:
* RAID5 : 255MB/s
* RAID10 : 224MB/s (???)

2 x 10GB file (simultaneos)
* RAID5 : 2 x 36MB/s
* RAID10 : 2 x 31MB/s (ouch!)

La diferencia es que si tienes 4 discos por ejemplo, en:
RAID 5 tienes el performance de 3 discos.
RAID 10 tienes el performance de 2 discos.

Otra ganancia es que con RAID10 necesitas un numero par de discos, con
RAID5 tienes velocidad y 1 disco backup con cualquier numero de discos a
partir de 3.

El calculo de paridad es muy simple (XOR creo), es varias veces mas
rapido que el disco.

Tambien es posible que consigas mejor performance usando el raid por
software de linux, ya que el algoritmo de ordenamiento ante varios
lectores/escritores sera mejor que el de la controladora. El costo es
que te consume CPU, pero si tienes tantos cores podrias ocupar uno de
esos ;)

 
-- 
Aldrin Martoq amar...@dcc.uchile.cl
http://aldrin.martoq.cl/videopodcast/ http://aldrin.martoq.cl/techblog/


signature.asc
Description: This is a digitally signed message part


Re: strip/block size y otros temas de RAID (largo)

2008-12-30 Por tema Aldrin Martoq
On Tue, 2008-12-30 at 16:58 -0300, Horst H. von Brand wrote:
 Aldrin Martoq amar...@dcc.uchile.cl wrote:
  Hola Victor, muy largo lo que escribiste, tratare de aportar un poco ;)
  On Tue, 2008-12-30 at 12:21 -0300, Victor Hugo dos Santos wrote:
  Esto es mas lento porque en el fondo tienes un puro disco con varios
  platos,
 No. RAID significa leer y escribir varios cada vez (para lo de R).
 esto influye en el seek time y se encolan si tienes varias
  aplicaciones distintas corriendo al mismo tiempo.
 No. Si tienes varios platos (y cabezales) independientes, tienes mejor
 rendimiento. RAID los interconecta (la A), y el rendimiento se va al
 suelo.

Fisicamente son varios discos, pero logicamente es uno solo.

Actualmente, un disco usualmente tiene varios platos, supongamos 4.
Luego, cuando leemos 1024KiB desde el sector 0, leera _al mismo tiempo_:
- 256KiB del sector 0 del 1er plato,
- 256KiB del sector 0 del 2do plato,
- 256KiB del sector 0 del 3er plato,
- 256KiB del sector 0 del 4to plato
Entonces tienes un ancho de banda de 1024KiB/dt == 4 veces mas rapido
que si leyeras desde un solo plato. Ahora, el costo de buscar esa
informacion (seek) no cambia.


Ahora, si configuramos un RAID-5 con 5 discos por ejemplo, es la misma
historia: Cuando leemos 4096KiB desde el sector 0, leera _al mismo
tiempo_:
- 1024KiB del sector 0 del 1er disco,
- 1024KiB del sector 0 del 2do disco,
- 1024KiB del sector 0 del 3er disco,
- 1024KiB del sector 0 del 4to disco,
- 1024KiB del sector 0 del 5to disco (paridad)

Tienes un ancho de banda de 4096Kib/dt == 4 veces mas rapido (porque el
ultimo disco es para validacion de paridad).

Esto funciona porque los discos estas rotando al mismo tiempo y la
controladora sabe manejar eso. Luego, el costo de busqueda (seek) es el
mismo que en un solo disco. En discos/controladoras mas baratos, el seek
time sera peor.

Luego, poner discos en RAID es como agregar mas platos a un mismo disco:
aumentas el ancho de banda de lectura/escritura pero tienes el mismo
tiempo de busqueda. Este tipo de afinamiento (ancho de banda) lo
controlas con el tamano del stripe y el read-ahead. Para esto, lo
ideal es saber la distribucion del bloque que lee tu aplicacion/sistema
operativo.


[Puedes configurar RAID de manera distinta a esta, mezclando el uso de
los discos pero perderas rendimiento]

  La solucion fue respaldar todo, rehacer el arreglo en 2 arreglos RAID-5
  y dejar unas aplicaciones usando 1 grupo de discos y otras aplicaciones
  usando el otro grupo de discos. La cola de lecturas/escrituras disminuyo
  enormemente, y ahora las lucecitas eran a un lado o al otro.
 No es la mejor configuracion, entonces: Claramente le sacas el maximo
 provecho a los discos si estan trabajando /todo/ el tiempo, no la mitad si
 y la mitad no.

Depende de la aplicacion, como explique arriba si tienes un RAID con
todos los discos en el fondo tienes un solo disco. Si tienes un solo
disco, el seek time es el mismo que el de un disco y eso es malo si
tienes mucha concurrencia (tipos leyendo/escribiendo arriba, otros
almedio y otros abajo).

En tal caso, es mejor separar la carga en varios grupos, mejorando el
tiempo de busqueda (seek). Para el caso de Victor por ejemplo, dejar
oracle en un grupo y postgres en otro grupo.


   aca me entra las siguientes dudas:
   * ahora, el strip size de los volumenes esta configurado en 64 K (con
   Write-Back y Adaptive Read Ahead habilitados tambien), pero cuales
   serian los mejores valores para:
- particion / en general
- base de datos oracle y postgresql (considerar instalación por
   defecto, sin cambios significativos)
 
  Creo que todo esto lo sabriamos si tuvieramos DTrace, asi no tendriamos
  que adivinar...
 ... pero se requeriria 5 veces la maquina por Slowlaris... ;-)
 [Recuerden que en Linux solia ser que lanzar un _proceso_ era mas rapido
  que lanzar una _hebra_ en Solaris, en la misma maquina!]
  Por ejemplo, podrias sacar la distribucion del taman~o del block usado
  _en tu aplicacion_, que es lo que importa al final:
  http://wikis.sun.com/display/DTrace/io+Provider#ioProvider-Examples
 Cuidado, eso cuando mucho puede dar una indicacion generica; nadie te dice
 que no hayan ajustado esos (y quien sabe que otros) parametros segun el
 sistema en el cual corre.

Saber la distribucion del blocksize de un I/O es algo impagable. Pagaria
un 10% de performance con tal de saber esa info y mucha otra, me he
topado con miles de problemas de rendimiento donde lo mas dificil es
precisamente medir donde esta el cuello de botella...


  Podrias intentarlo con systemtap o por ultimo strace y nos
 cuentas ;)
 No creo que strace(1) ayude mucho aca?

Con strace puedes sacar el tamano de un write por ejemplo, y el tiempo
que tomo. Es un DTrace/Systemtap de los pobres ;)

-- 
Aldrin Martoq amar...@dcc.uchile.cl
http://aldrin.martoq.cl/videopodcast/ http://aldrin.martoq.cl/techblog/


signature.asc
Description: This is a digitally signed message part


Re: strip/block size y otros temas de RAID (largo)

2008-12-30 Por tema Victor Hugo dos Santos
2008/12/30 Aldrin Martoq amar...@dcc.uchile.cl:
 On Tue, 2008-12-30 at 16:58 -0300, Horst H. von Brand wrote:
 Aldrin Martoq amar...@dcc.uchile.cl wrote:

[...]

 Depende de la aplicacion, como explique arriba si tienes un RAID con
 todos los discos en el fondo tienes un solo disco. Si tienes un solo
 disco, el seek time es el mismo que el de un disco y eso es malo si
 tienes mucha concurrencia (tipos leyendo/escribiendo arriba, otros
 almedio y otros abajo).

 En tal caso, es mejor separar la carga en varios grupos, mejorando el
 tiempo de busqueda (seek). Para el caso de Victor por ejemplo, dejar
 oracle en un grupo y postgres en otro grupo.

obs.: en mi caso es una applicaccion (oracle y postgresql) para cada
servidor !!!

salu2

-- 
-- 
Victor Hugo dos Santos
Linux Counter #224399


Re: strip/block size y otros temas de RAID (largo)

2008-12-30 Por tema Victor Hugo dos Santos
2008/12/30 Aldrin Martoq amar...@dcc.uchile.cl:
 On Tue, 2008-12-30 at 15:35 -0300, Victor Hugo dos Santos wrote:
 2008/12/30 Aldrin Martoq amar...@dcc.uchile.cl:

[...]

 Haz la prueba, de hecho en el primer link que mandaste el tipo muestra
 la conversa en una lista y del primer link:
 http://lists.us.dell.com/pipermail/linux-poweredge/2007-December/034160.html

[...]

 La diferencia es que si tienes 4 discos por ejemplo, en:
 RAID 5 tienes el performance de 3 discos.
 RAID 10 tienes el performance de 2 discos.

mmm.. en mi caso serian 6 discos.. ;-) veamos que pasa.

por cierto, acabo de ir a configurar la controladora para hacer
pruebas.. pero he descubirto que la controladora (sera esta en
particular ???), permite crear el RAID10, pero no me permite crear
volumenes logicos en el.. o sea, se utilizo RAID10/RAID50/RAID60 debo
de usar un solo volumen con todo el espacio de los discos.

he llamado a DELL y segun ellos es imposible hacer esto de crear
discos virtuales/volumenes dentro de estes tipos de RAIDs
ahora toy buscando info en internet para ver las alternativas que tengo:

For RAID levels 0, 1, 5, and 6 only, you can use part of the
available disk space to create one virtual disk and then use the rest
of the disk space to create another virtual disk or disks.

y recomendaron que:
ponga los 2 primeros discos en RAID-1 (SO) y los 4 restantes en RAID-10

plop !!! que malo no ???

salu2

-- 
-- 
Victor Hugo dos Santos
Linux Counter #224399


Re: strip/block size y otros temas de RAID (largo)

2008-12-30 Por tema Aldrin Martoq
On Tue, 2008-12-30 at 18:37 -0300, Victor Hugo dos Santos wrote:
 por cierto, acabo de ir a configurar la controladora para hacer
 pruebas.. pero he descubirto que la controladora (sera esta en
 particular ???), permite crear el RAID10, pero no me permite crear
 volumenes logicos en el.. o sea, se utilizo RAID10/RAID50/RAID60 debo
 de usar un solo volumen con todo el espacio de los discos.

No hagas volumenes con la controladora, solo creas arreglos que seran
vistos como discos en el sistema operativo...

Por ejemplo, un arreglo RAID-10 con los sectores 0-99 de los discos 1, 2
y 3. Luego otro arreglo RAID-5 con los sectores 100-199 de los discos 1,
2 y 3.

Para hacer justa la prueba, deberias mover uno de los discos al otro
canal. Ej de prueba:

++  ++
|D1 D2 D3|  |D4 D5 D6|
++ 0++ 0
| sda r10|  | sdc r5 |
++ 100  ++ 100
| sdb r5 |  | sde r10|
++ 200  ++ 200


 For RAID levels 0, 1, 5, and 6 only, you can use part of the
 available disk space to create one virtual disk and then use the rest
 of the disk space to create another virtual disk or disks.

Hmmm si no se puede, usa el D1 D2 D3 con RAID-10 completo, y en el D4 D5
D6 Raid5.

++  ++
|D1 D2 D3|  |D4 D5 D6|
++ 0++ 0
| sda r10|  | sdb r5 |
++ 200  ++ 200


Tambien haz la prueba de RAID por software, ahi seguro que puedes!

-- 
Aldrin Martoq amar...@dcc.uchile.cl
http://aldrin.martoq.cl/videopodcast/ http://aldrin.martoq.cl/techblog/


signature.asc
Description: This is a digitally signed message part


Re: LWN [Was: Re: strip/block size y otros temas de RAID (largo)]

2008-12-30 Por tema Cristian Rodríguez
Horst H. von Brand escribió:
Los $$$ que pago por la subscripcion a LWN mas que lo valen.

Efectivamente, es una muy buena fuente de informacion, yo era
subscriptor particular tambien, actualmente estoy dentro de la
subscricion coorporativa de SUSE eso si ;)


-- 
We have art in order not to die of the truth - Friedrich Nietzsche

Cristian Rodríguez R.
Platform/OpenSUSE - Core Services
SUSE LINUX Products GmbH
Research  Development
http://www.opensuse.org/