为什么Chrome在我的计算机上有这么多进程?


21

我已经为Google chrome设置了将近20个进程(虽然只打开了4个选项卡,并且全部带有准系统HTML),所有进程都占用大量内存,并且说futex_wait_queue_me或poll_schedule_timeout。

这一切使我的风扇发狂,并且其中一个进程吞噬了我的整个CPU,这是怎么回事?

(也发生在Chromium上)


可能是进程之间可能共享内存/proc/$pid/smaps,看看Pss是否低于Rss,如果是,则共享它。
karthick87

3
在这里您会找到一些其他信息stackoverflow.com/questions/2019500/…–
NES

Answers:


29

Chrome会以不同的过程呈现每个页面(标签)。这使其在多处理器计算机上更快。

您看到的行为是正常的。

futex_wait_queue_me指一种互斥(快速用户空间互斥),用于调度一个处理器上的许多进程。状态指示您的进程已排队接收锁。

有时,CPU节流可能会导致异常多的等待锁定,但通常是正常现象。看一下您打开的网站类型;诸如Flash之类的东西可能会导致CPU高负载。

要查看哪些标签或插件正在减慢系统速度或填充内存,可以使用Chrome内置的任务管理器:

右键点击标签栏,然后选择“任务管理器”

替代文字

在我的示例中,omgubuntu的javascript使用了大量cpu。


5
它将每个选项卡呈现为不同的过程-在自己的“沙盒”中运行该选项卡,以最大程度地减少病毒杀死整个浏览器的机会。说得通?
jrg 2011年

5
每个插件(闪存等)也是其自己的过程。而且它不仅可以阻止病毒-如果闪存崩溃或一个选项卡崩溃,还可以让您杀死选项卡/插件/所有内容,并保持其余所有内容不变。这被认为是一种方便的功能,其他浏览器正在努力模仿它。我相信Mozilla正在为实现此功能而对Firefox的选项卡管理系统进行一些根本性的更改,但是我没有密切关注它们,而且我也不知道它是否计划用于FF4。
丹尼尔(Daniel)

@jrgifford你是完全正确的,我对此进行了研究并消除了歧义。这是一个完整的过程,而不仅仅是一个线程。
Stefano Palazzo

@Daniel God我希望不要...当我打开大量标签并且Flash杀死其中一个标签时,至少有一半会掉下来。它只会在Chrome中发生,而不会在Firefox中发生……
Nick Pascucci

1
@jrgifford您真是个混蛋。嗯,是的,浏览器是唯一可以消耗系统资源的东西,他们可能(并且正确地)觉得自己拥有将每个Flash实例作为自己的进程进行沙箱化的许可证。我想这对于非操作系统版本的Chrome来说有点极端。
丹尼尔(Daniel)

3

Chrome / Chromium的正常行为是具有多个进程。这些进程的
futex_wait_queue_mepoll_schedule_timeout状态似乎还可以。

您可以使用系统监视器来查看某个特定进程是否使用了过多的cpu。有时,错误的JavaScript或Flash程序会开始使用所有cpu。

如果您认为是这种情况,请确保某些Web应用程序中没有未保存的数据,然后终止该过程。然后,Chrome会建议您重新加载页面。通常可以解决问题。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.