LinuxParty

NUESTRO SITIO necesita la publicidad para costear hosting y el dominio. Por favor considera deshabilitar tu AdBlock en nuestro sitio. También puedes hacernos una donación entrando en linuxparty.es, en la columna de la derecha.

Ratio: 5 / 5

Inicio activadoInicio activadoInicio activadoInicio activadoInicio activado
 

¿Cuál es el rendimiento de E/S de nuestro servidor? Sí, esta pregunta se la tiene que hacer más una vez.

¿Cómo es su aplicación en esta materia? - Usted debería saberlo mejor que yo.

Mi principal preocupación es la optimización de los accesos E/S usando los discos lo menos posible. Los discos son lentos, muy lentos, en comparación con la CPU y la RAM -si podemos- evitémoslos.

Escribir código correcto 

Eche un vistazo en el caso de uso de la lectura de grandes fragmentos de sus Discos Duros (en adelante HDs) y el servicio vía red para varios usuarios.

Es evidente que la lectura de este tipo de archivos demanda ahorrar memoria, sin embargo, aumentará la latencia, causando una mala experiencia para el usuario. El secreto es en este caso es:

  1. Buscar
  2. Buscar un poco más
  3. Tratar de encontrar algo que se hace sólo buscando.

Buscando (o buceando) entre los datos reales, va a servir para descargar el HD mediante la lectura de los datos una sola vez y que sirva para varias veces.

Sin embargo, cuando la E/S se realiza al azar no se puede esperar a que vaya a ser recuperado -usted puede optimizar su estadística de aciertos de caché de búfer de datos tanto como sea posible en la memoria-.

Por desgracia para la E/S aleatoria, al final del día, se espera que su HD trabaje también sin demora adicional.

Ah! y por supuesto - si la aplicación "de red de discos" es en realidad una base de datos, entonces, evidentemente, evitar consultas completas y la adición de índices adecuados cuando sea necesario son la clave para un mejor rendimiento en la materia.

¿Linux al rescate?

El método de acceso a los datos, junto con los sistemas de archivos, afectan a su rendimiento, no sólo al escribir, sino también en el momento de la lectura.

Lo que yo quería mencionar, es que Linux hace un trabajo bastante bueno con su buffer cache -Alguna vez se preguntó cómo es que no tiene memoria libre en Linux?- Eso se debe a que Linux está haciendo un trabajo impresionante para usted -realizando caché de disco E/S sin que usted lo solicite-. Así  no necesita implementar aplicaciones de cachés, a partir de entonces, Linux se hará cargo por usted 

Underdogs


Tmpfs y ramfs, por alguna razón, sólo rara vez se utilizan. Estos son sistemas de ficheros en memoria. Pueden ser grandes para almacenar en caché archivos y asegurarse de que permanezca en su memoria RAM para un acceso ultrarrápido.

Este es otro de las contramedidas que pueden llevar a cabo con el fin de evitar la lentitud de los HD.

Por alguna razón peculiar, "noatime" y atributos "nodiratime" no están activadas por defecto en sistemas de ficheros Linux.

Usted debe activarlos, ya que va a desencadenar un sistema de archivos de metadatos par escribir cada vez que acceda a un archivo o directorio - sí, también para la lectura. Si se deshabilita en mi humilde netbook (en realidad se debe a un ahorro de batería- los HD giran menos) - deberá desactivarlos también en su servidor.

Os animo a hacerlo ahora - también en el escritorio:

# vim /etc/fstab 

Sólo tiene que añadir 'noatime' y 'nodiratime' para cualquier sistema de archivos no-swap.

¡Recuerde! 


Si usted tiene una gran cantidad de memoria en su sistema - después de usarlo.

Son muchas las veces que he visto a la gente luchar con una base de datos de 10 GB de tamaños que tenían múltiples lecturas o escrituras, o los dos juntos.

La solución más sencilla simplemente tenga toda la base de datos en memoria en una máquina adecuada, con más de 10 GB de memoria. Confía en mí -no importa qué configuración que el HD tenga abajo - si usted tiene 100% de sus bases de datos in-memory - el HD no le hará perder tiempo.

Considere también las bases de datos más grandes de 10 GB. Por desgracia, durante mi experiencia laboral he visto lo que pasó con una base de datos bastante optimizada en el tamaño de 100 GB. Que había tropecientos (OK, tal vez estoy exagerando) de las actualizaciones y consultas por minuto. Saltando de 8 GB de RAM 64 GB hizo la gran diferencia entre un sistema que no funciona con un sistema que en realidad hace frente a la carga.

En la mayoría de los casos, si su sistema es mucho más que cargado y justificar estas enormes cantidades de memoria - que son también, probablemente, lo que en realidad el dinero suficiente para pagarlo.

Los controladores RAID
La elección de un buen controlador de RAID puede dar un impulso IO muy agradable en términos de rendimiento de lectura. Y yo voy a profundizar un poco en RAID 1, aquí, con el fin de explicar este concepto.

RAID 1, simplemente refleja los datos de más de dos (o más) HD, por lo general para proporcionar redundancia. Dicen que uno de sus HD está roto - el sistema puede seguir funcionando de la otra.

RAID 1 es generalmente considerada "inútil", ya que no aporta extra de almacenamiento para cada HD agregado. Sin embargo, con RAID 1, y un controlador RAID apropiado, podrá conseguir un tremendo incremento en el rendimiento al leer.

¿Por qué? Imagine que tiene 10 solicitudes de lecturas IO y un único HD a su servicio - las salidas de las lecturas resultarán ordenadas secuencialmente, ya que sólo hay un único HD

Vamos a imaginar que ahora tiene 10 HD en un RAID 1, y las mismas peticiones leer 10 IO - ahora tiene 10 HD a su servicio! Teóricamente hablando que va a ser 10 veces más rápido que un HD.

Es decir, con la excepción de contar con un controlador RAID apropiado -algunos controladores más baratos no te proporcionan el comportamiento deseado de la lectura de varios discos al mismo tiempo.

Tenga cuidado cuando la construcción de una configuración RAID 1, - la velocidad de escritura de la matriz tendrá un índice de la velocidad de escritura de los más lentos de alta definición en la matriz -se reducirá notablemente el rendimiento de escritura por cada disco de más que ponga en la matriz-.

Una palabra más sobre RAID 1 vs RAID 10 - RAID 1, se puede ampliar fácilmente - cuando usted nota un problema de rendimiento -basta retirar un HD y agregar otro, y todo arregado.

Manos arriba, no te muevas!
SSD puede producir un aumento considerable de rendimiento si se preocupan principalmente por la lectura.
Son, sin embargo, 10 veces más caros - pero también 10 veces más rápidos cuando se habla de acceso aleatorio a los datos.

¿Por qué? - No hay nada dando vueltas allí, nada se mueve - todos los datos están almacenados "a la misma distancia". Mientras que en los tradicionales HD magnéticos mecánicos tiene que esperar en realidad el resultado para ir a la ubicación correcta a fin de recuperar los datos.

Es una especie de optimización de último recurso en mi opinión, ya que fácilmente pueden duplicarse o triplicarse sus gastos.

(tenga en cuenta también que las unidades SSD tienen una vida mucho más corta que los HD, y también que cuando un SSD se estropea (piense en su pendrive) y muere, resulta prácticamente imposible recuperar los datos)

 Un sucio truco del pasado.

Para un determinado HD, la velocidad angular de la cabeza en la placa de HD es constante, ya sea de 10K, 7,2 K o 15 K RPM.

Sin embargo, podría ir más lejos en la placa de HD, la velocidad absoluta de los cabezales se incrementa cuando el radio de la placa es más grande y la velocidad angular se mantiene igual. Esto es simple física.
Para una explicación más completa Les sugiero leer este brillante artículo .

¿Qué significa para nosotros? Bueno, con el fin de exprimir el máximo rendimiento de nuestros HDs, podemos utilizar sólo las partes exteriores de su plato. Por lo general, las pistas más externas de un HD se encuentran en el inicio de la misma, en cuanto a la creación de particiones.

Su caja de herramientas
La caja de herramientas que publiqué en el artículo anterior son también igual de bueno por aquí.

Entre ellos se encuentran, obviamente, Monitis y iostat .

Al examinar su aplicación en el nivel aplicativo es muy recomendable también. Proveerse de registros detallados para ver dónde se llegó con las memorias caché y donde se pierde. Su tarea, obviamente, es minimizar la caché perdida a su mínima expresión.

Eso es todo amigos
En verdad estos dos artículos no son una mera  lista garrapatada, puede simplemente realizar y obtener un impulso extra - estos artículos pretenden darle herramientas para pensar, planificar, diseñar y  finalmente, llevar a cabo con éxito su arquitectura. ¡Buena suerte!

Anterior:

Cómo mejorar el rendimiento de E/S del Servidor. (1 de 2)

Pin It

Escribir un comentario


Código de seguridad
Refescar



Redes:



 

Suscribete / Newsletter

Suscribete a nuestras Newsletter y periódicamente recibirás un resumen de las noticias publicadas.

Donar a LinuxParty

Probablemente te niegues, pero.. ¿Podrías ayudarnos con una donación?


Tutorial de Linux

Filtro por Categorías