
Desde hace unos meses disfruto de un portátil con un Intel Core Duo a 1.66 Ghz, en el cual he instalado Debian y he recompilado el kernel 2.6.16 para adaptarlo a mis necesidades, he habilitando el SMP y le he indicado el número de procesadores, 2 en mi caso y alguna cosilla más que supuestamente mejora el redimiento de este procesador. A la hora de compilarlo he utilizado el comando “time” para poder conocer con exactitud el tiempo empleado en dicha tarea, obteniendo estos resultados:
# time make-kpkg kernel_image
real 13m57.557s
user 12m56.342s
sys 0m59.896s
El tiempo de compilación no está mal, pero durante el proceso observo que el trabajo se lo reparten los procesadores por turnos, es decir, cuando uno esta trabajando al 90% (más o menos), el otro está casi en reposo 2%(más o menos) y viceversa, dato que me mosquea. Comentando un día el tema con un amigo, me sugiere que mire el parámetro CONCURRENCY_LEVEL que usa el comando make-kpkg(lo uso para compilar el kernel), ya que este parámetro indica el número de procesadores disponibles. En el man del make-kpkg, sólo me aparecía que el valor de esta variable debía ser un entero pequeño, después de mirar en foros donde se decía que había que poner el valor 3 para mi caso y otros en los que decían 2, decidí probar con los valores 2 y 3 para comprobar en vivo y en directo los resultados para analizarlos. El fichero de configuración que modifiqué es el /etc/kernel-pkg.conf (que utiliza el make-kpkg), simplemente añado CONCURRENCY_LEVEL = 2 y listo, realizo el mismo procedimiento que en la prueba anterior y estos son los resultados que obtengo:
#time make-kpkg kernel_image
real 8m1.160s
user 13m13.188s
sys 1m2.766s
El tiempo se reduce sustancialmente (sobre 5 minutos menos), además el aprovechamiento de los dos cores es total, no bajando durante el proceso de compilacion del 90% de uso ninguno de los dos. Por último comentar que he realizado la misma operación pero asignando el valor 3 a dicha variable y el resultado es este:
#time make-kpkg kernel_image
real 8m3.287s
user 13m12.944s
sys 1m2.757s
Una vez visto que el rendimiento es el mismo e optado por dejar el valor 2, dándome por satisfecho con el tiempo empleado en el proceso de compilación.
24/Agosto/2006 a las 7:43 pm |
Aviso de Trackback (manual :p):
http://xoseotero.blogaliza.org/2006/08/24/make-j-n1/