我有一台运行ubuntu服务器12.04lts的戴尔pd2950(2x4core)服务器。还有一个VLC编码器实例正在运行。最近我更新了vlc的脚本(vlm)以提高质量,这意味着我也在提高cpu利用率。因此,我开始调整脚本以避免超过最大利用率。我使用top来监视cpu的使用情况。我发现平均负载高于100%(我有8核,所以8.00是100%),但仍然有20-35%是空闲的,比如:

top - 21:41:19 up 2 days, 17:15,  1 user,  load average: 9.20, 9.65, 8.80
Tasks: 148 total,   1 running, 147 sleeping,   0 stopped,   0 zombie
Cpu(s): 32.8%us,  0.7%sy, 29.7%ni, 36.8%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   1982680k total,  1735672k used,   247008k free,   126284k buffers
Swap:        0k total,        0k used,        0k free,   774228k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
 9715 wilson    RT   0 2572m 649m  13m S  499 33.5  13914:44 vlc
11663 wilson    20   0 17344 1328  964 R    2  0.1   0:02.00 top
    1 root      20   0 24332 2264 1332 S    0  0.1   0:01.06 init
    2 root      20   0     0    0    0 S    0  0.0   0:00.09 kthreadd
    3 root      20   0     0    0    0 S    0  0.0   0:27.05 ksoftirqd/0
    4 root      20   0     0    0    0 S    0  0.0   0:00.00 kworker/0:0
    5 root       0 -20     0    0    0 S    0  0.0   0:00.00 kworker/0:0H

为了确认我的CPU没有超线程,我尝试:
wilson@server:/$ nproc
8

为了减少刷新时间造成的采样偏差,我还尝试:
wilson@server:/$ top -d 0.1

我看了很长一段时间的号码%id,一直不低于14。
我也试过:
wilson@server:/$ uptime
21:57:20 up 2 days, 17:31,  1 user,  load average: 9.03, 9.12, 9.35

1米的平均负荷经常达到14-15。所以我想知道我的系统怎么了?有人有过这个问题吗?
更多信息:
我正在使用带有x264编解码器的vlc来编码实时http流(应用程序/八位字节流)。它使用ffmpeg(libavc)解码并输出为apple hls(.ts段)。我在为x264添加参数后发现此问题:
level=41,ref=5,b-adapt=2,direct=auto,me=umh,subq=8,rc-lookahead=60,analyse=all

这几乎等于预设=慢。如你所见,我的VLC在实时运行。参数为:
wilson@server:/$ chrt -p -f 99 vlc-wrapper

最佳答案

您的系统似乎没有任何问题。问题似乎在于你对CPU会计的理解。特别是,平均负载与CPU使用率几乎没有任何关系。平均负载是基于准备运行的进程数(不等待I/O、网络、键盘输入等),前提是有可用的CPU供它们调度。诚然,给定一个8核系统,如果所有8核都100%忙,每个都有一个CPU绑定线程,那么平均负载应该在8.00左右,完全有可能平均负载为200.0,CPU利用率接近-0%。所有这些都表明您有200个进程可以运行,但是一旦它们被安排好,它们几乎什么也不做,然后再返回到等待某种输入。
您的top输出显示vlc似乎使用了大约相当于您的5个核心,但它并不表示您是否有5个核心在100%每个,或者如果所有8个核心在62.5%每个。top列出的所有其他进程也会影响您的平均负载和CPU使用率。特别是,top以0.1秒为例的短延迟运行,可能会使平均负载增加近1,尽管总体而言,它并不占用大量的CPU时间。

关于linux - Linux(Ubuntu)的平均负载高于完全真实利用率吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23566758/

10-12 22:39