关于为什么负载将通过屋顶,顶部的任何想法显示每个CPU用户空间利用率为85%或更高,但没有任何进程被标记为任何CPU利用率?
我第一次看到这个.我们有一台平均负载为20的服务器,每个CPU的故障都非常高(> 85%),但列表中没有任何进程具有任何 CPU%利用率.这是一个示例,是的,这是从最高到最低CPU利用率排序的进程 - 每次在蓝色月亮中我们实际上会看到一个显示"1"作为CPU%的进程.
这是一个mysql服务器盒.
top - 16:08:48 up 185 days, 15:27, 5 users, load average: 20.60, 17.20, 13.17
Tasks: 221 total, 2 running, 219 sleeping, 0 stopped, 0 zombie
Cpu0 : 90.3%us, 5.8%sy, 0.0%ni, 3.2%id, 0.6%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu1 : 89.1%us, 5.8%sy, 0.0%ni, 4.5%id, 0.6%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu2 : 86.4%us, 5.0%sy, 0.9%ni, 6.9%id, 0.6%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu3 : 88.1%us, 5.8%sy, 1.3%ni, 4.8%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu4 : 89.8%us, 7.2%sy, 0.0%ni, …Run Code Online (Sandbox Code Playgroud) 背景故事:我使用的一个直播网站不够智能,无法检测我的网络摄像头(Logitech Brio,4k)的功能,而是使用默认的每秒帧数设置,即 5fps。
(答案中的完整解决方案演练)
我能想到的最佳解决方案(除了更改直播提供商之外)是使用 v4l2loopback 创建一个环回虚拟网络摄像头,我可以强制使用我想在该直播网站上使用的确切设置。
对于 brio,更高的帧率来自 mjpeg,而不是默认的 yuyv。
问题1:
我可以很容易地阅读 mjpeg,但不幸的是我的头一直撞在墙上,因为 v4l2loopback 显然只想要 yuyv。
我试过这样的事情:
ffmpeg -f v4l2 \
-input_format mjpeg \
-framerate 30 \
-video_size 1280x720 \
-i /dev/video0 \
-vcodec copy \
-f v4l2 /dev/video6
Run Code Online (Sandbox Code Playgroud)
和
ffmpeg -f v4l2 \
-input_format mjpeg \
-framerate 30 \
-video_size 1280x720 \
-i /dev/video0 \
-vcodec yuyv422 \ # this line changed (even tried "copy")
-f v4l2 /dev/video6
Run Code Online (Sandbox Code Playgroud)
但他们不会工作。我收到如下错误:
与 yuvj422p 等效的未知 V4L2 像素格式
和
...使用过时的像素格式,请确保您正确设置了范围...
...V4L2 输出设备仅支持单个原始视频流... …
这是一个示例,它演示了一个数组,当您填充它时,它也会在其中获取所有类型的未定义条目。
这是在 Firefox 19.0/firebug 上,不确定它是否发生在其他浏览器上。
基本流程:
为什么 javascript 会自动用未定义的条目填充 this.objects 数组?
这是代码:
function MailerFromProfile( )
{
// privileged
this.objects = [];
this.load( );
}
MailerFromProfile.prototype.setObjects = function( objects )
{
for( var i in objects )
{
if( 'undefined' !== objects[ i ] )
{
this.objects[ objects[ i ].id ] = objects[ i ];
}
}
// I should not have to …Run Code Online (Sandbox Code Playgroud)