当我以正常方式启动 Firefox 并查看 中的进程时htop
。Ubuntu 启动了 20 多个名为 Firefox 的进程。它们都有或多或少连续的 PID。Thunderbird 和 Spotify 也是如此。然后这些进程耗尽了我所有的内存。
PID USER PRI NI VIRT RES SHR S CPU% MEM% TIME+ Command
11843 tom 20 0 1253M 345M 89968 S 6.5 9.0 1:42.50 /usr/lib/firefox/firefox http://doodle.com/
11850 tom 20 0 1253M 345M 89968 S 0.0 9.0 0:00.00 /usr/lib/firefox/firefox http://doodle.com/
11851 tom 20 0 1253M 345M 89968 S 0.0 9.0 0:01.18 /usr/lib/firefox/firefox http://doodle.com/
11852 tom 20 0 1253M 345M 89968 S 0.0 9.0 0:00.00 /usr/lib/firefox/firefox http://doodle.com/
11853 tom 20 0 1253M 345M 89968 S 0.0 9.0 0:00.00 /usr/lib/firefox/firefox http://doodle.com/
11854 tom 21 1 1253M 345M 89968 S 1.3 9.0 0:01.86 /usr/lib/firefox/firefox http://doodle.com/
11855 tom 20 0 1253M 345M 89968 S 0.0 9.0 0:00.38 /usr/lib/firefox/firefox http://doodle.com/
11856 tom 20 0 1253M 345M 89968 S 0.0 9.0 0:00.45 /usr/lib/firefox/firefox http://doodle.com/
11857 tom 20 0 1253M 345M 89968 S 0.0 9.0 0:00.41 /usr/lib/firefox/firefox http://doodle.com/
11858 tom 20 0 1253M 345M 89968 S 0.0 9.0 0:00.38 /usr/lib/firefox/firefox http://doodle.com/
...
例如,如果我使用 evince 打开 pdf,则只会启动 4 或 5 个 evince 进程。
PID USER PRI NI VIRT RES SHR S CPU% MEM% TIME+ Command
12090 tom 20 0 962M 86840 39132 S 0.0 2.2 0:01.16 evince /home/tom/test.pdf
12092 tom 20 0 962M 86840 39132 S 0.0 2.2 0:00.00 evince /home/tom/test.pdf
12093 tom 20 0 962M 86840 39132 S 0.0 2.2 0:00.01 evince /home/tom/test.pdf
12095 tom 20 0 962M 86840 39132 S 0.0 2.2 0:00.00 evince /home/tom/test.pdf
12096 tom 20 0 962M 86840 39132 S 0.0 2.2 0:00.35 evince /home/tom/test.pdf
这是正常现象吗?如果不是,我该如何解决这个问题?
答案1
您在 htop 中看到这么多条目的原因是它显示的是线程而不是进程,而 Firefox 有很多这样的线程。
如果H
反复按下,您可以在显示线程和显示进程之间切换。
所有这些 Firefox 线程都共享相同的内存空间,因此您应该只计算 RES 345MB 一次,而不是为每个线程将其加起来。