Comprender los perfiles ajustados recomendados por RedHat


8

Vamos a implementar sintonizados (y numad) en ~ 1000 servidores, la mayoría de ellos siendo servidores VMware en NetApp o en almacenamiento 3Par.

De acuerdo con la documentación de RedHats, debemos elegir el virtual-guestperfil. Lo que está haciendo se puede ver aquí: tuned.conf

Estamos cambiando el planificador de E / S a NOOP, ya que tanto VMware como NetApp / 3Par deberían hacer una programación suficiente para nosotros.

Sin embargo, después de investigar un poco, no estoy seguro de por qué están aumentando vm.dirty_ratioy kernel.sched_min_granularity_ns.

Por lo que he entendido, el aumento de un aumento vm.dirty_ratiodel 40% significará que para un servidor con 20 GB de RAM, 8 GB pueden estar sucios en cualquier momento, a menos que vm.dirty_writeback_centisecsse golpee primero. Y al vaciar estos 8 GB, todas las E / S para la aplicación se bloquearán hasta que se liberen las páginas sucias.

Aumentar el dirty_ratio probablemente significaría un mayor rendimiento de escritura en los picos, ya que ahora tenemos un caché más grande, pero nuevamente cuando el caché se llene, IO se bloqueará durante un tiempo considerablemente más largo (varios segundos).

El otro es por qué están aumentando el sched_min_granularity_ns. Si lo entiendo correctamente, aumentar este valor disminuirá el número de segmentos de tiempo por época ( sched_latency_ns), lo que significa que las tareas en ejecución tendrán más tiempo para terminar su trabajo. Puedo entender que esto sea algo muy bueno para aplicaciones con muy pocos hilos, pero por ejemplo. Apache u otros procesos con muchos hilos ¿No sería esto contraproducente?

Respuestas:


7

La respuesta breve es que cualquier ajuste es una conjetura y solo tiene valor cuando se realiza una copia de seguridad con datos empíricos: Pruébelo. Mídelo. Si no te gusta, modifícalo.

Una respuesta más larga:

Aumentar el dirty_ratio probablemente significaría un mayor rendimiento de escritura ... IO se bloqueará durante un tiempo considerablemente más largo

No. Aumentar la proporción de suciedad significa que es menos probable que su sistema entre en un estado en el que necesita comenzar a bloquear las escrituras. La desventaja es que hay más memoria utilizada y un mayor riesgo de pérdida de datos en una interrupción.

lo que significa que ejecutar tareas tendrá más tiempo para terminar su trabajo

Los procesos generalmente cederán antes de que expire su intervalo de tiempo. El problema con una máquina virtual es que su máquina puede estar compitiendo por CPU y caché L1 / L2 con otras máquinas virtuales; los altos niveles de cambio de tareas (debido al vaciado previo) tienen un gran impacto en el rendimiento. El tipo de aplicaciones que normalmente se implementan en máquinas virtuales son las que están vinculadas a la CPU (servidores web, servidores de aplicaciones).

Sí, el aumento en el rendimiento (que se aplica a todos los tipos de aplicaciones) tendrá el costo de un aumento en la latencia, pero este último es del orden de microsegundos cuando la mayoría de las transacciones toman milisegundos. Si necesita capacidad en tiempo real / muy baja latencia, entonces no debería estar usando una VM.


De verdad. Estas son solo pautas. Sintoniza a tu gusto. Sin embargo, todavía uso el programador de "fecha límite" recomendado para máquinas virtuales.
ewwhite

1
@ewwhite ¿Por qué recomendaría en deadlinelugar de NOOP en VMware con el almacenamiento adecuado?
espenfjo 26/0613

@espenfjo Bueno, porque RedHat recomienda deadline... pero también veo mi respuesta.
ewwhite

12

Aquí está el cronograma de configuraciones de adm-tuned ...

Creo que ayuda verlos en forma de tabla. ¡Lo principal a tener en cuenta es que la configuración predeterminada de RHEL6 apesta! La otra cosa es que el almacenamiento empresarial y los perfiles de invitado virtual son idénticos, excepto por un intercambio reducido en el lado del invitado virtual (tiene sentido, ¿verdad?).

perfiles sintonizados

En cuanto a una recomendación sobre el elevador de E / S de almacenamiento, tiene algunas capas de abstracción en la capa de almacenamiento. Usar el programador noop tendría sentido si estuviera usando RDM o presentando almacenamiento directamente en sus máquinas virtuales. Pero como van a vivir en NFS o VMFS, todavía me gustan las opciones de ajuste adicionales que ofrece el programador de fecha límite.

Los perfiles ajustados se pueden cambiar sobre la marcha en sistemas en ejecución, por lo que si tiene alguna duda, pruebe con su aplicación y entorno específico y punto de referencia.


1
Ok, gracias. Entiende por qué quieres deadlineahora :)
espenfjo

8

Mira los videos de ajuste de rendimiento de Shak y Larry de Summit, hablan sobre los perfiles sintonizados en profundidad.

Una de las principales conclusiones es que los perfiles son solo un punto de partida recomendado, no números inmutables que son mágicamente perfectos para cada entorno.

Comience con un perfil y juegue con la configuración. Genere una buena carga de trabajo de prueba similar a la producción y mida métricas que son importantes para su negocio.

Cambie una cosa a la vez y registre cada resultado en cada iteración. Cuando haya terminado, revise los resultados y elija la configuración que dio los mejores resultados. Ese es tu perfil sintonizado ideal.


¿Tienes un enlace a la charla de Shak & Larry?
Aaron Copley

2
He agregado enlaces de video a mi respuesta.
suprjami
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.