zl程序教程

您现在的位置是:首页 >  系统

当前栏目

Linux loadavg

2023-09-27 14:26:01 时间

loadavg 是特定时间间隔内运行队列中平均的进程数,这个数字是由内核统计计算得来。
简单讲:平均负载就是指单位时间内,系统处于可运行状态和不可中断状态的平均进程数,也就是平均活跃进程数,该进程数直接影响 load average 值大小的,它和CPU使用率并没有直接关系。

什么叫可运行状态的进程?

可运行状态的进程:指的是正在使用CPU或者正在等待CPU的进程,也就是我们常用ps命令看到的,处于R状态(Running 或 Runnable)的进程

什么叫不可中断状态的进程?

不可中断状态的进程:
指的是正处于内核态关键流程中的进程,并且这些流程是不可打断的。
例如:等待硬件设备的I/O响应,也就是我们在ps命令中看到的D状态(Uninterruptible Sleep,也叫做Disk Sleep)的进程

什么叫平均活跃进程数

平均活跃进程数:
直观的理解就是单位时间内的活跃进程数,但实际上是活跃进程数的指数衰减平均值。这个指数衰减平均值的详细含义不用计较,这只是系统的一种更快速的计算方式,你把它直接当成活跃进程数的平均值也没问题。

平均活跃进程数:处于TASK_RUNNING和TASK_UNINTERRUPTIBLE状态的进程。

# 进程的状态有以下7种。
TASK_RUNNING
进程处于运行(它是系统的当前进程)或者准备运行状态(它在等待系统将CPU分配给它)

TASK_INTERRUPTIBLE
等待某个条件:中断、信号或能唤醒进程的资源

TASK_UNINTERRUPTIBLE
处于睡眠状态,信号无法唤醒它。

TASK_STOPPED
进程停止,当进程收到SIGSTOP、SIGTSTP、SIGTTIN或SIGTTOU信号时就会进入次状态

TASK_TRACED
进程执行被调试器停止(调试程序使用ptrace()系统调用来监控程序)

EXIT_ZOMBIE
进程执行停止,但父进程还没调用wait4()或waitpid()来获取该进程返回信息。

EXIT_DEAD
进程的最终状态,父进程调用wait4()或waitpid()来获取该进程返回信息,内核即将移除该进程。

中断是一种异步的事件处理机制,用来提高系统的并发处理能力。中断事件发生,会触发执行中断处理程序,而中断处理程序被分为上半部和下半部这两个部分。

  • 上半部对应硬中断,用来快速处理中断;
  • 下半部对应软中断,用来异步处理上半部未完成的工作。

/proc/softirqs 提供了软中断的运行情况;
/proc/interrupts 提供了硬中断的运行情况。