Pregunta Entendiendo los perfiles optimizados recomendados por RedHat


Vamos a desplegar sintonizado (y numérico) en servidores ~ 1000, la mayoría de los cuales son servidores VMware en NetApp o 3Par.

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

Estamos cambiando el programador de E / S a NOOP, ya que tanto VMware como NetApp / 3Par deben 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_ratio y kernel.sched_min_granularity_ns.

En la medida en que he entendido cada vez más creciente vm.dirty_ratio al 40% significará que para un servidor con 20 GB de RAM, 8 GB pueden estar sucios en un momento dado, a menos que vm.dirty_writeback_centisecsse golpea primero. Y mientras se vacían estos 8GB, se bloqueará todo el IO de la aplicación hasta que se liberen las páginas sucias.

Incrementar 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é llena el IO se bloqueará durante un tiempo considerablemente más largo (varios segundos).

El otro es por qué están aumentando la sched_min_granularity_ns. Si lo comprendo 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 es algo muy bueno para aplicaciones con muy pocos subprocesos, pero por ejemplo. Apache u otros procesos con muchos hilos, ¿esto no sería contraproducente?


6
2018-06-26 07:34


origen




Respuestas:


La respuesta corta es que cualquier ajuste es conjeturas 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 mayor

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

lo que significa que las tareas en ejecución tendrán más tiempo para terminar su trabajo

Los procesos generalmente se rendirán antes de que caduque su intervalo de tiempo. El problema con una máquina virtual es que su máquina puede estar compitiendo por la CPU y el caché L1 / L2 con otras máquinas virtuales: los altos niveles de conmutación de tareas (debido a la prioridad) tienen un gran impacto en el rendimiento. El tipo de aplicaciones que normalmente se implementan en máquinas virtuales son aquellas 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 / latencia muy baja, entonces no debería usar una máquina virtual.


7
2018-06-26 10:05



De verdad. Estas son sólo pautas. Sintonice a su gusto. Sin embargo, sigo usando el programador de "fecha límite" recomendado para máquinas virtuales. - ewwhite
@ewwhite ¿Por qué recomendarías? deadline ¿En lugar de NOOP en VMware con el almacenamiento adecuado? - espenfjo
@espenfjo Bueno, porque RedHat recomienda deadline... pero también veo mi respuesta. - ewwhite


Aquí está el calendario de configuraciones de sintonizado-adm ...

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

tuned profiles

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. Utilizando la programador de noop Tendría sentido si estuviera usando RDM o presentando el almacenamiento directamente en sus máquinas virtuales. Pero como van a vivir en NFS o VMFS, todavía me gusta el adicional opciones de sintonía proporcionado por el programador de fecha límite.

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


12
2018-06-26 12:30



Ok, gracias. Entiende por que quieres deadline ahora :) - espenfjo


Mire los videos de sintonía de desempeño de Shak y Larry de Summit, ellos hablarán en profundidad sobre los perfiles sintonizados.

Una de las conclusiones principales 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 las 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 seleccione la configuración que dio los mejores resultados. Ese es tu perfil ideal sintonizado.


8
2018-06-28 12:11



¿Tienes un enlace a la charla de Shak & Larry? - Aaron Copley
He añadido enlaces de video a mi respuesta. - suprjami