![监控 Firefox 中选项卡的 CPU%](https://linux22.com/image/142661/%E7%9B%91%E6%8E%A7%20Firefox%20%E4%B8%AD%E9%80%89%E9%A1%B9%E5%8D%A1%E7%9A%84%20CPU%25.png)
有时,当我在 Firefox 中打开多个选项卡时,其中一个选项卡将开始消耗大量 CPU%,我想知道哪个选项卡是罪魁祸首。这样做是一个非常手动的过程,我希望找到自动化的方法。
我希望我有一个应用程序可以专门监视 Firefox,只生成我想知道的 Firefox 事实的简洁输出。
我正在寻找一个命令/应用程序,它将列出在 Firefox 中运行的每个选项卡的进程,经过过滤后仅包含每个选项卡进程的以下信息:
- 进程号
- Tab页地址
- CPU使用率
- 使用内存
此外,我希望信息按 CPU % 降序排序。
基本上,我希望存在一个像 htop 这样的程序,但它专门用于我想在 Firefox 中监视的相关内容(同时忽略了我不关心的所有细节)。
答案1
您可以about:performance
在 Firefox 的地址栏中输入。然后你会得到一个表格,其中包含pid
Firefox 的每个选项卡Resident Set size
和Unique Set Size
。在此下方将有一些行解释每个选项卡的性能(如performing well
),如果选项卡性能不佳,那么它将显示在那里,您可以使用该选项从那里关闭该Close Tab
选项卡。
答案2
您可能想更进一步,使该过程自动化:
- 自动检测占用 CPU 的进程(可以在浏览器选项卡中运行)
- 如果/一旦他们超过某些/不合理的阈值,则终止他们
这是我编写的通用/可自定义脚本,称为 cpu 猪杀手解决浏览器(或其他地方)中恶意或其他行为不当脚本的问题。
该脚本定义了两个基本原语:
process-list
:根据命令+参数正则表达式选择进程terminate-hogs
:杀死超出所需 CPU(总秒数和当前 %pct)消耗的进程
并利用它们来实现这一目标。
以下是摘自 git 存储库中 README.md 的描述。
cpu 猪杀手
通过命令+参数正则表达式和 CPU 消耗杀死高 CPU 占用进程。
有缺陷(或恶意)的第 3 方 JavaScript 代码经常会劫持我们的浏览器和计算资源。
我曾经发现桌面上的一些进程整晚都以 100% CPU 运行,而我什至没有注意到,因为 JavaScript 很糟糕。
非自愿的 CPU 占用可能是由受感染的广告、编写错误的代码、导致某人选择您的计算机来运行加密货币挖掘的“脚本驱动”或更糟糕的情况引起的。
它让你支付你不想要的电费,并且乘以许多在夜间运行的桌面和浏览器,对我们的星球也非常不利。
cpu-hog-killer
是一个简单的脚本,我在晚上定期运行它。我让它每 13 分钟从 cron 运行一次,如下所示:
# Add this line (or similar) using 'crontab -e'
*/13 0-7 * * * ~/bin/cpu-hog-killer
它标识肯定CPU 占用进程(主要在 Chrome 或 Firefox 中)在检测到后立即杀死它们。请注意,它不会随意杀死占用 CPU 的进程,也不会杀死主浏览器进程。它只会杀死那些您明确表示要根据配置的regex
+终止的进程CPU consumption parameters
。
早上当我回来时,最糟糕的情况是我进入浏览器选项卡,它显示(例如对于 Firefox):
"Gah. Your tab just crashed."
我注意到哪个网站行为不当(根据其标题),浏览器允许我(显示一个大按钮):
[Restore This Tab]
如果我愿意,那么实际上就不会丢失任何东西。
您可以向脚本添加更多规则,以涵盖更多可能在您不希望的情况下占用 CPU 的应用程序。只需查看“主要”部分(脚本的最后几行)并根据需要添加更多规则。每条规则如下所示:
# [max_cpu_secs] [max_cpu_pct] are optional parameters to terminate-hogs
# if not specified, default values will be used
process-list '<some pattern>' | terminate-hogs [max_cpu_secs] [max_cpu_pct]
例如,仅杀死一个进程选项卡的 Firefox 规则是:
process-list '[/]firefox -contentproc -childID.*tab$' | terminate-hogs
对于 Chrome/Chromium 来说是:
process-list '[/]chrom(e|ium) --type=(renderer|utility)' | terminate-hogs
答案3
更新 似乎适用于 bash 中的用法:
watch -n 1 "ps aux | grep firefox"
watch -n 0.1 "ps aux | grep firefox"
watch -n 1 "ps aux | grep firefox && free -m"
在 Tab 中按 F5 并观看
当我现在用正确的选项卡杀死该选项卡时,我收到消息选项卡现在崩溃了
在火狐浏览器中,关于:性能是对的。
但是如果我关闭或打开并加载页面选项卡,请在 bash 中检查这一点:
$ pidof firefox
$ pidof firefox-esr
$ pgrep firefox
获取一个或“n”个配置文件的 main/parentid
$ pgrep firefox-esr
获取一个或“n”个配置文件的 main/parentid
得到父代号和孩子气
$ ps aux | grep firefox
$ ps aux | grep firefox | grep tab
你看到父版本ID和一些东西子/选项卡
看来你杀不了子/选项卡只有父版本ID。
ps -ef | grep firefox | wc -l