Caso el cambio de contexto y uso de la CPU

A. Las opiniones de sección

el cambio de contexto 1. CPU: registros de la CPU y contador de programa

2. contexto CPU se puede dividir en varios escenarios diferentes: cambio de contexto proceso, el cambio de contexto hilo, el cambio de contexto de interrupción

3. El hilo es la unidad básica de programación, el proceso es la unidad básica de los propietarios de recursos

II. Involuntario y el cambio de contexto cambio de contexto voluntaria

vmstat: sólo da el sistema general de cambios de contexto circunstancias, con el fin de ver los detalles de cada proceso, es necesario pidstat

pidstat - W  . 5       # cada 5s da salida a un conjunto de datos (enfoque)

cswch / s: representa el número de contexto voluntaria conmuta por segundo

nvcswch / s: contexto involuntario interruptores por segundo representa el número de

 

1. cambio de contexto voluntaria

cambio de contexto Voluntario se refiere al proceso no puede obtener el voluntario requerido, resultando en un cambio de contexto, tales como: insuficiencia de I / O, la memoria y otros recursos del sistema, será produce cambio de contexto voluntaria

2. Los cambios de contexto involuntarios

cambio de contexto involuntario en el que un segmento de tiempo proceso es debido a otras razones, el sistema se ve obligado a programado

3. Estudios de casos

sysbench es un multi-hilo herramienta para evaluar los parámetros del sistema de base de datos generales en diferentes casos de carga evaluación comparativa

 

(1) Instalación

a. yum install

yum  instalar -y SysBench # paquete no requiere preparación previa

b. la instalación de paquetes tar.gz

# Desempaquetar:
 alquitrán . -Zxvf nombre del archivo tar gz 
# en el directorio después de la descompresión 
nombre del archivo cd 
. / Configurar 
# compilar e instalar 
la marca && la marca  instalar

(2) Operaciones de caso y pasos de análisis

a. En el primer terminal de carrera sysbench, el sistema analógico de subprocesos múltiples llamadas cuello de botella

Pregunta # pruebas de referencia una duración de 5 minutos a 10 hilos, multi-hilo conmutador analógico 
SysBench --threads = 10 --max- Tiempo = 300 Hilos RUN

b. En la segunda pasada el vmstat terminal, situación cambio de contexto observó

vmstat 3

Encontrado: contexto cs cambia de la columna una vez más de 24 a más de 100 millones de dólares, mientras que la observación de varios otros indicadores

r columnas: cola de listos tiene una longitud más de cinco, más que el número de la CPU del sistema 4, un gran número de competencia CPU

nosotros (usuario) y sy columna (sistema): dos columnas utilización de la CPU combinado eleva por encima de 80%, en el que la utilización de la CPU del sistema, es decir, la columna sy hasta 71%, lo que indica que la CPU principal está ocupada por el núcleo

en la columna: el número de interrupciones elevó a más de 40.000, el problema es también un manejo de interrupciones potencial

 

Integrados estos indicadores pueden saber, demasiados sistema de cola de listos es demasiado largo, es decir, ejecutando y esperando a que el proceso de la CPU, lo que resulta en un gran número de cambios de contexto, y el cambio de contexto ha llevado a una mayor utilización de la CPU del sistema

Así que al final es lo que está causando estos problemas?

c. En un tercer aspecto, la CPU, y la caja de cambio de contexto del terminal proceso pidstat

pidstat - W -u . 1    # parámetro -w representa el proceso de cambiar el indicador de salida, -u parámetro, la salida de la CPU representa el uso de indicadores

Se encuentra desde el pidstat de salida, el aumento de la CPU realmente se sysbench plomo, el uso de la CPU ha llegado a más de 300%, pero se encontró con un pequeño número de cambios de contexto de salida, de más de 100 millones de vmstat ver claramente demasiado pequeña Además, ¿cómo se va?

Recordemos, mencionamos varias escenas cambio de contexto, uno de los cuales mencionado, la unidad básica del planificador de Linux es en realidad un hilo, y nosotros escena también simulado problema de programación de subprocesos sysbench, no se tiene en cuenta pidstat hilos datos?

pidstat: El valor por defecto es los datos de índice muestran un progreso, junto con el parámetro indicadores -t, la salida será hilo

-WT pidstat . 1    # índice -WT representa el cambio de contexto hilo de salida

Puede ser visto, aunque el proceso contexto sysbench (es decir, el hilo principal) frecuencia de conmutación no parece mucho, pero es el cambio de contexto hilo hijo tiene mucho, al parecer, las causas fundamentales de los cambios de contexto, o demasiados hilos sysbench

Tres uso de la CPU.

uso de la CPU: promedio de carga: 0.00,0.56,1.60

¿Qué indicadores comúnmente utilizados para describir el rendimiento de la CPU prueba de rendimiento del sistema?

Estima que muchas personas pueden no ser la carga media, ni es el cambio de contexto de la CPU, pero otros indicadores más intuitivos: uso de la CPU

uso de la CPU: es la unidad estadística del tiempo de uso de la CPU, la pantalla como un porcentaje, que el uso de CPU es ¿cómo?

 

A fin de mantener el tiempo de CPU, Linux tasa garrapata por pre-definido (denotado como HZ), las interrupciones de tiempo de activación, y el uso de variables globales grabados varios latidos desde el cambio, envía una vez cada alarma de tiempo, el valor de todas las variables más 1

HZ kernel marque tasa es de opciones configurables, y similares se pueden proporcionar 100,250,1000, diferentes sistemas pueden establecer diferentes valores, pueden ser vistos por el comando siguiente:

grep  ' CONFIG_HZ =' / boot / config - $ ( uname -r)

Al mismo tiempo, debido a la frecuencia de latido de HZ es una opción del kernel, por lo que los usuarios no pueden acceder directamente al programa espacial, programa espacial para la comodidad de los usuarios, el núcleo también proporciona una USER_HZ espacio de usuario beatness, siempre se fija en 100, es decir, 1/100 seg de modo que los usuarios no tienen que preocuparse por el espacio del núcleo HZ programa se establece cuánto? Ya que considera que es siempre un valor fijo USER_HZ

Linux通过/proc虚拟文件系统,向用户空间提供了系统内部状态的信息,而/proc/stat提供的就是系统的CPU和任务统计信息,比如说,如果你只关心CPU的话,可以执行下面的命令:

这里输出的一个表格,其中,第一列表示的是CPU编号,如CPU,CPU0,CPU1,而第一行没有编号为2的CPU,表示的是所有CPU的累加,其他列则表示不同场景下CPU的累加节拍数,它的单位是USER_HZ,也就是10ms(1/100秒),这其实就是不同场景下的CPU时间

 

(1) 怎么查看CPU使用率

top

top:显示了系统总体的CPU和内存使用情况,以及各个进程的资源使用情况,默认是3s刷新一次

可以发现,top并没有细分进程的用户态CPU和内核态CPU,那要怎么查看每个进程的详细情况呢?是不是上一次用到的pidstat命令,它可以专门分析每个进程的CPU使用情况

pidstat 1 5   # 每隔1s输出一组数据,共输出5组

pidstat命令,CPU使用率如下:

%usr:用户态CPU使用率

%system:内核态CPU使用率

%guest:运行虚拟机CPU使用率

%wait:等待CPU使用率

%cpu:总的CPU使用率

最后Average部分,还计算了5组数据平均值

 

Supongo que te gusta

Origin www.cnblogs.com/my_captain/p/12667016.html
Recomendado
Clasificación