平均负载问题(主要是表面问题)

平均负载问题(主要是表面问题)

这不是一个真正的问题,但我猜它可能指向更严重的问题 - 我最近升级到 2.6.36 Linux 内核,但平均负载不会低于 1.0 - 无论我有多少任务,无论 CPU 负载是否为 0%,也无论有没有进程唤醒。

我想知道是什么原因导致了这个问题,以及是否有一些好方法来调试这个“问题”。

我希望它不会导致更严重的问题(例如一些无声的内核部分导致唤醒)。现在它造成的唯一问题可能是 1.0 的“底部”在图表上看起来不太健康。

这可能是由无滴答内核引起的吗?

答案1

我见过一些奇怪的事情在调度程序中停滞,通常是在系统调用中。如果您有非原始内核模块,一定要从那里开始,即使它们包含在内核树中。带有用户空间元素的内核元素是描述这种情况的一种方式,您可能会发现用户空间守护进程挂在外部事件上,这会挂起中间的内核步骤,这会挂起一个向内核提问的程序。

基于网络的文件系统(而不仅仅是通过以太网通信的文件系统)是主要嫌疑人。

检查进程不是处于可运行状态ps -eo user,pid,stat,pcpu,args | grep -v " R"

USER       PID STAT %CPU COMMAND
daemon     676 Ss    0.0 portmap
statd      752 Ss    0.0 rpc.statd -L
syslog     872 Sl    0.0 rsyslogd -c4
102        895 Ss    0.0 dbus-daemon --system --fork
avahi      934 S     0.0 avahi-daemon: running [faustus.local]
daemon    1082 Ss    0.0 atd

您可以从手册页中的这个表中解码状态ps

  D    Uninterruptible sleep (usually IO)
  R    Running or runnable (on run queue)
  S    Interruptible sleep (waiting for an event to complete)
  T    Stopped, either by a job control signal or because it is being traced.
  W    paging (not valid since the 2.6.xx kernel)
  X    dead (should never be seen)
  Z    Defunct ("zombie") process, terminated but not reaped by its parent.

  For BSD formats and when the stat keyword is used, additional characters may be displayed:
  <    high-priority (not nice to other users)
  N    low-priority (nice to other users)
  L    has pages locked into memory (for real-time and custom IO)
  s    is a session leader
  l    is multi-threaded (using CLONE_THREAD, like NPTL pthreads do)
  +    is in the foreground process group

相关内容