当我锁定电脑时,风扇会变得非常吵,这意味着后台一定存在某种 CPU/GPU 负载。
我告诉自己,我需要知道哪个进程在执行此操作,因此我使用top
和编写了这个审计脚本awk
,它基本上以*.csv
文件名作为输入并每秒写入 10 个最苛刻的进程。
#!/bin/bash
SLEEP_SECS=1
DESTFILE="$1"
if ! [[ "${DESTFILE}" =~ \.csv$ ]]; then
echo "Please provide name of a destination .csv file!"
exit 1
fi
if ! test -f "${DESTFILE}"; then
echo "Seconds;PID;User;% CPU;Process Name" > "${DESTFILE}" || exit $?
fi
while true; do
top -b -o %CPU -n1 | \
tail -n +8 | \
head -10 | \
awk '{print systime() ";" $1 ";" $2 ";" $9 ";" $12}' \
>> "${DESTFILE}" || exit $?
echo -n .
sleep "${SLEEP_SECS}"
done
因此,我启动了脚本并锁定了屏幕,风扇变得非常吵,我等了一会儿,重新登录,风扇安静了下来(好像它们知道当我没有对 PC 做任何事情时,我不想让它们发出噪音:D)并且我使用以下命令查看了 CPU 使用率超过 50% 的进程:
gawk --use-lc-numeric -F';' '{if($4 > 50) {print $0}}' cpu-audit.csv
以下是我的发现:
# The header wasn't there OFC, I'm including it just for the convenience
Seconds ; PID; User ;% CPU;Process Name
1566804437;2496;jirislav;106,7;gnome-shell
1566804438;2496;jirislav;106,7;gnome-shell
1566804439;2496;jirislav;100,0;gnome-shell
1566804440;2496;jirislav;100,0;gnome-shell
1566804442;2496;jirislav;93,8;gnome-shell
1566804443;2496;jirislav;100,0;gnome-shell
1566804444;2496;jirislav;100,0;gnome-shell
1566804445;2496;jirislav;100,0;gnome-shell
1566804446;2496;jirislav;106,7;gnome-shell
1566804449;2496;jirislav;131,2;gnome-shell
1566804449;17446;jirislav;68,8;nautilus
真是令人惊讶,gnome-shell
竟然需要这么多资源?什么……?!我甚至都没用过它,我terminator
一直在用。好吧,我使用 运行了终端审核ps
,但它没有像 那样检测到使用情况top
,为什么没有呢?我甚至列出了所有子进程:
$ while true; do ps fu --ppid 2496 --pid 2496; sleep 1; done
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
jirislav 2496 7.3 2.2 2949284 357176 tty2 Rl+ 08:49 3:02 /usr/bin/gnome-shell
jirislav 2522 0.7 0.0 322108 8800 tty2 Sl 08:49 0:18 \_ ibus-daemon --xim --panel disable
jirislav 3239 1.2 0.4 855328 67956 tty2 Sl+ 08:49 0:30 \_ /usr/bin/python3 /usr/bin/terminato
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
jirislav 2496 7.3 2.2 2949284 356820 tty2 Sl+ 08:49 3:02 /usr/bin/gnome-shell
jirislav 2522 0.7 0.0 322108 8800 tty2 Sl 08:49 0:18 \_ ibus-daemon --xim --panel disable
jirislav 3239 1.2 0.4 855328 67956 tty2 Sl+ 08:49 0:30 \_ /usr/bin/python3 /usr/bin/terminato
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
jirislav 2496 7.3 2.2 2949284 356820 tty2 Rl+ 08:49 3:03 /usr/bin/gnome-shell
jirislav 2522 0.7 0.0 322108 8800 tty2 Sl 08:49 0:18 \_ ibus-daemon --xim --panel disable
jirislav 3239 1.2 0.4 855328 67956 tty2 Sl+ 08:49 0:30 \_ /usr/bin/python3 /usr/bin/terminato
我说够了,让我们卸载吧gnome-shell
,我甚至没有使用它,为什么让它在未经我同意的情况下消耗资源并运行嘈杂的风扇?..然后我突然想到,gnome-shell
如果不卸载就无法卸载ubuntu-desktop
- 让我们先把为什么会有这种奇怪的依赖关系的问题放在一边,这没有意义(它可以使用任何其他终端) - 我在想的是 -当我的会话被锁定时,Ubuntu 正在做什么?我可以关闭它吗??
当我开会的时候,这真的很不方便。
笔记:
我知道这个问题Ubuntu 18.04 gnome-shell CPU 使用率高但是所有提出的解决方案都不起作用(我甚至不指望它们能起作用,因为问题是,gnome-shell
只有当我锁定 PC 时,我才会使用太多资源 - 而不是像链接问题所述那样使用它时)
答案1
我也遇到了同样的问题。看起来这是nVidia 驱动程序在我安装了最新的开源 nVidia 驱动程序后,问题消失了:
sudo apt install nvidia-driver-455