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-guest
perfil. 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_ratio
y kernel.sched_min_granularity_ns
.
Por lo que he entendido, el aumento de un aumento vm.dirty_ratio
del 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_centisecs
se 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?