Estoy tratando de mejorar el rendimiento en mi servidor. Tengo algunos procesos que necesitan poca fluctuación (menos de 10 ms de variación).
Tengo un promedio de carga de 4 como máximo en un i7-920 (4 núcleos físicos, 8 con HT). Hay alrededor de 10 procesos que van del 40% al 90% de un modo de usuario principal. El uso del sistema es del 3% en total. El uso total de la CPU es 80% máximo.
¿Establecer el kernel de 100hz a 1000hz mejorará el jitter si los temporizadores de alta resolución y sin tic ya están configurados?
Esta página parece indicar que todavía hace algo. https://lkml.org/lkml/2009/4/28/401
¿Qué tal cambiar de voluntario (PREEMPT_VOLUNTARY) a preferencial (PREEMPT)?
linux
linux-kernel
Beto
fuente
fuente
Respuestas:
Cualquier tiempo real no mejorará el rendimiento, de hecho, haría que todo el sistema funcione sin problemas pero un poco más lento. En otras palabras, es el rendimiento frente a la latencia. Si realmente es lo que necesita, entonces hay varias opciones:
nice
,schedtool
para asignar prioridades / clases apropiadas de acuerdo a sus necesidadesfuente
Si el jitter bajo es importante para usted, sí, es posible que desee usar 1000hz y PREEMPT.
Si esos procesos son realmente sensibles al tiempo, probablemente necesitará más parches / núcleos orientados en tiempo real, o al menos algunos parámetros de programación a nivel de proceso, como rtprio.
Los usos típicos son los servidores de audio; consulte, por ejemplo, los consejos de jackaudio
fuente
1) No utilice tickless, sigue siendo altamente experimental y no se recomienda a nadie más que a los desarrolladores que trabajan en él, también está destinado a ayudar a ahorrar energía.
2) Se supone que el sistema totalmente preemible aumenta la capacidad de respuesta del escritorio, mientras que la prioridad voluntaria es para uso general (combinación de capacidad de respuesta y rendimiento). Si su servidor tiene SMP (múltiples núcleos), probablemente debería optar por no preventivo, ya que la mayoría del trabajo se ejecutará en sus núcleos y sin interrupciones, lo que generalmente 1) toma tiempo 2) caché de basura
3) 1000Hz es un valor de escritorio que introduce gastos generales, pero permite, por ejemplo, jugar juegos y otras cosas. 300 hz es el valor que se recomienda para el video (por lo que las cosas pueden reprogramarse y aún no perderá fotogramas), mientras que 100Hz proporciona el mejor rendimiento (aunque no está orientado a cosas de red de baja latencia).
Si desea ir tan estable como sea posible (sin usar parches RT), debe ir: tics periódicos (estabilidad) frecuencia de temporizador no preconcebible (estabilidad) (hasta usted, 1000 para la mejor capacidad de respuesta y bajas frecuencias, 100 para mejor rendimiento pero resolución de 10 ms en el temporizador, por ejemplo, las cosas se ejecutarán al menos 10 ms)
Espero que esto ayude un poco.
fuente