2012-09-18 9 views

Respuesta

19

No hay una respuesta uniforme a esta pregunta, ya que en algunos casos el núcleo puede ser compilado "tickless" y no utiliza una interrupción de temporizador normal en absoluto. Pero si tiene un kernel tradicional y una distribución tradicional, puede encontrar el archivo .config del kernel actual en/boot con algo así como grep 'CONFIG_HZ=' /boot/config-$(uname -r).

2

Hay muchos enfoques diferentes para obtener una pista sobre cuáles son sus configuraciones. En algunos sistemas de un solo núcleo de este truco es muy útil:

/ # cat /proc/interrupts | grep -i time; sleep 10; cat /proc/interrupts | grep time 
16: 10404858  INTC 68 Level  gp_timer 
16: 10514798  INTC 68 Level  gp_timer 

Se le muestra la cantidad de garrapatas hubo durante los 10 seg. dormir. Aquí alrededor de 100'000. Dividir por 10 da aproximadamente 10'000 HZ.

Esto podría confundir a los sistemas multinúcleo, ya que se tratará de una lista por núcleo.

Otra opción será comprobar si puede obtener una mano en la configuración original del kernel. Se almacenaría en

/proc/config.gz 

Deséchelo y abra el archivo. Busque piezas que se parezcan a

CONFIG_HZ_FIXED=0 
# CONFIG_HZ_100 is not set 
# CONFIG_HZ_200 is not set 
# CONFIG_HZ_250 is not set 
# CONFIG_HZ_300 is not set 
# CONFIG_HZ_500 is not set 
# CONFIG_HZ_1000 is not set 
CONFIG_HZ_10000=y 
CONFIG_HZ=10000 
CONFIG_SCHED_HRTICK=y 

Solo para avisarle; 10'000 está fuera de la configuración normal. Configuración experimental.

2

En mis programas C utilizo el tiempo de inicio de un proceso y el tiempo de actividad y más para algunos cálculos de valor en tiempo de ejecución.

En Bash, el cálculo HZ se vería como p. Ej.

$ awk '{print$22/'$(tail -n 1 /proc/uptime|cut -d. -f1)"}" /proc/self/stat 
100 

Medios: Tomar el valor de tiempo de actividad del 22 y se divide por el tiempo de inicio del proceso de "auto".

EDIT:

Sí, user1530335, esto es correcto. Se puede obtener información adicional sobre el archivo de estadísticas desde el manual de manual (5). Aquí el campo "hora de inicio" se describe como "el tiempo en jiffies que comenzó el proceso después del arranque del sistema".

Sí, y en su mayoría (Intel arch) será 100. Los núcleos raros "preempt" antiguos a veces tenían 1000 incluso en Intel. Otros valores pueden ser:

/** 
* 10 S/390 (sometimes) 
* 20 User-mode Linux 
* 32 ia64 emulator 
* 64 StrongARM /Shark 
* 100 normal Linux 
* 128 MIPS, ARM 
* 1000 ARM 
* 1024 Alpha, ia64 
* 1200 Alpha 
*/ 
+0

El campo 22 es la hora de inicio del proceso en ticks de reloj. [Desplácese a /proc/(pid)/stat](http://man7.org/linux/man-pages/man5/proc.5.html) – user1530335

+0

/proc/uptime con información sobre el tiempo de actividad del sistema. [El primer número es la cantidad total de segundos que el sistema ha estado funcionando]. (Https://www.centos.org/docs/5/html/5.1/Deployment_Guide/s2-proc-uptime.html) En esencia, reichhart está diciendo que CONFIG_HZ será 'Clock Ticks desde el inicio (ticks)/Tiempo desde el inicio (segundos)' unidades son 'ticks/seconds' En la mayoría de los casos, esto debería ser de 100 tics por segundo. – user1530335

Cuestiones relacionadas