我对 Ubuntu 的资源管理有一个恼人的问题。经常发生某些程序(例如 Google Chrome 浏览器)消耗 100% CPU 和大部分笔记本电脑内存的情况。
我希望一直有一个响应式操作系统,这意味着我希望能够在程序之间切换并在屏幕上移动鼠标或切换到 tty 并向操作系统发出命令。因此,我寻找一种方法来配置操作系统以保留 10% 的系统资源给自己。目前 Ubuntu 不会这样,经常 chrome 消耗我所有的 CPU 和内存,然后系统变得无响应,当然我不能再等一两分钟,所以我必须长按电源按钮。
有没有办法让 Ubuntu 始终响应?至少在那个程度上我可以杀死资源匮乏的程序?(我知道内核最终会杀死一些程序以释放一些空间,但我想强制它更快地执行或为自己保留更多资源)
Version: UBUNTU 14.04
~$ uname -a
Linux spielplatz 3.13.0-45-generic #74-Ubuntu SMP Tue Jan 13 19:36:28 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
CPU: Intel(R) Core(TM) i5-3210M CPU @ 2.50GHz
RAM: 8GB
Run Code Online (Sandbox Code Playgroud)
到目前为止,我发现的最佳解决方案是使用 cgroups。有一个要点。
我有一台运行 14.04 64 位 Ubuntu 服务器的服务器,但我遇到了一个“有趣”的问题。我有 2 个用户同时运行一些程序 - d 和 m。用户“m”的进程不是时间关键的,因此在“nice”值19上运行。用户“d”的进程是时间关键的,因此在标准的“nice”值0上运行问题是,用户“m”的进程仍然比用户“d”的进程获得更多的CPU时间。
此外,尽管 CPU 压力很大,但其中一个 CPU(快照中的 3 个)几乎没有任何用处。
我无法在运行 Ubuntu 服务器 10.04 64 位的相同机器上重现该问题(我知道,我现在应该已经更新了)。
我附上 htop 运行的快照来说明这个问题。谁能帮我这个?

提前致谢。
PS - 屏幕截图在上传时变小,变得太小而无法阅读。这是一个完整大小的文件的链接。
当 p 传感器显示在顶部时,CPU 使用率会低于 1% 或 2%。当我最小化 p 传感器时,顶部显示 CPU 使用率达到 50%、60%、80%。
附带问题 由于一些错误处理问题,我无法在此消息中写入 p sensor,请原谅。
我已经发生这种情况有一段时间了 - 不太确定是什么原因造成的。
有一个或两个进程(此处/usr/sbin/aptd)的 CPU 使用率总是高达 98-100%,我不知道如何解决这个问题。
有人介意澄清问题是什么,以及卸载 Python 2.7 (和依赖项,即 Python 3 等)是否有帮助?
谢谢。
编辑:sudo apt-get update给我以下错误:
david@david-Blade:~$ sudo apt-get upgrade
E: Could not get lock /var/lib/dpkg/lock - open (11: Resource temporarily unavailable)
E: Unable to lock the administration directory (/var/lib/dpkg/), is another process using it?
david@david-Blade:~$ sudo apt-get -y update
E: Could not get lock /var/lib/apt/lists/lock - open (11: Resource temporarily unavailable)
E: Unable to lock directory /var/lib/apt/lists/
E: Could not get lock /var/lib/dpkg/lock …Run Code Online (Sandbox Code Playgroud) 当我将 ubuntu 中的文本编辑器 gedit 最小化时,它会占用 30% 到 50% 的 CPU。当我最大化它再次使用它时,CPU 使用率降至零。即使 gedit 空闲且没有太多文本或根本没有任何文本,也会发生这种情况。我多次尝试清除并重新安装 gedit。但这没有帮助。我在网上搜索寻求帮助。但找不到其他有同样问题的人,也没有在他们的网站上报告任何与我的问题类似的错误。哪里有问题?是用gedit吗?或者是我的Ubuntu?
我的Ubuntu版本是Ubuntu 16.04.2 LTS,gedit版本是3.18.3-0ubuntu4
已在https://bugs.launchpad.net/ubuntu/+source/gedit/+bug/1679226报告了一个错误 ,并且已得到确认。请分享此问题的任何临时或永久解决方案。几个月后我仍然在这个问题上挣扎。
Top会给我以下信息:(PID 28055 的 94% CPU 负载)
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
28055 root 39 19 1295192 1,167g 3120 R 93,8 7,5 65:49.38 systemd-udevd
Run Code Online (Sandbox Code Playgroud)
当我这样做时,strace -p 28055我会得到以下几行无限重复:
getrandom("\246\306\216<\340\244a\256|\34\352\257\334\223\227\304", 16, GRND_NONBLOCK) = 16
getrandom("j\216\331 \361|X\241\333\270\260\202\377\224\3537", 16, GRND_NONBLOCK) = 16
getrandom("\36\301\27vkE\351\16\336\23\314\366y\t\272\307", 16, GRND_NONBLOCK) = 16
getrandom("U\234\235\2763\3257\37\314q\301\272i\301W\t", 16, GRND_NONBLOCK) = 16
getrandom("\223\27\244\26\365\251\335\263\233.\347\3\263]\205\4", 16, GRND_NONBLOCK) = 16
getrandom("\366,{+Tt\t\27\16z\257N^\235r,", 16, GRND_NONBLOCK) = 16
epoll_wait(10, [{EPOLLIN, {u32=798983008, u64=94889511453536}}], 11, 0) = 1
clock_gettime(CLOCK_BOOTTIME, {7011, 470364038}) = 0 …Run Code Online (Sandbox Code Playgroud) 只是想放弃一个问题,因为这个问题似乎已经存在很长一段时间了。
刚刚我在 Macbook Pro 上安装了新的 Ubuntu 18.04,我注意到 kworker 占用了大量 CPU:
3411 root 20 0 0 0 0 R 84,4 0,0 6:12.23 kworker/0:0
Run Code Online (Sandbox Code Playgroud)
以下是有关我的设置的一些其他信息:
lsb_release -a:
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 18.04 LTS
Release: 18.04
Codename: bionic
Run Code Online (Sandbox Code Playgroud)
uname -a:
Linux MacbookPro 4.15.0-20-generic #21-Ubuntu SMP Tue Apr 24 06:16:15 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
Run Code Online (Sandbox Code Playgroud)
现在我在谷歌上搜索这个问题的答案,实际上找到了很多答案。这个线程中的答案对我有用:为什么 kworker cpu 使用率变得如此高?
我所要做的就是禁用gpe06,然后占用的 kworker 进程就消失了。首先我寻找导致 CPU 负载过高的 gpe:
grep . -r /sys/firmware/acpi/interrupts/
Run Code Online (Sandbox Code Playgroud)
然后浏览列表并找到占用资源的 gpe 并将其禁用: …
我正在使用适用于 Linux 的 Windows 子系统 (WSL),但我对 linux 的功能还没有进行过实验。最近,我一直想更好地了解进程的 CPU 使用情况,但我感到很困惑。我在一台有 2 个内核和 4 个逻辑内核的计算机上。
在我想讨论的 CPU 使用率示例中,我从 2 个终端的 DFT 代码(物理内容)启动了 2 个独立的串行计算。我在 Windows 系统中打开了其他较小的进程(互联网选项卡、Thunderbird ......)。
如果我从 Windows 的任务管理器检查 CPU 使用率,它会告诉我我使用了大约 70% 的 CPU,它似乎均匀分布在 4 个逻辑处理器上。
当我top在 Linux 上使用命令时,它向我显示了两个“pw.x”进程(我指的是计算),每个进程都使用了大约 100% 的 CPU(!)。我不明白那些“100%”值指的是什么;100%什么?我认为这是显示的所有内核的平均值。我的电脑还运行得很流畅,所以CPU单元不能全部被DFT代码用完
如果我用 查找它mpstat -P ALL,我会得到其他结果:它告诉我 4 个处理器中的每一个都用于 ~20%-30%...这与 Windows 诊断如何一致?还是使用 top 命令?
参见下面的屏幕截图以获取摘要(对于 Windows 上的法语很抱歉):
基本上我的问题如下:
这些不同的诊断是否相互一致?
有人可以指出我给初学者的参考,清楚地解释了这些监控命令的使用,以及报告的数量究竟指的是什么?
是否有一个命令可以让我知道哪个核心在做什么?我正在运行串行计算(非并行),我的理解是计算因此每个都在单个核心上处理,但我可能是错的。如果是这样,我想知道每个计算都转到哪个核心,使用了多少
非常感谢您,并为初学者的问题道歉
我锁定 PC 的那一刻,风扇变得非常嘈杂,这意味着幕后必须有某种 CPU/GPU 负载。
我告诉自己,我需要知道是什么进程在执行此操作,因此我使用topand制作了这个审计脚本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 ";" …Run Code Online (Sandbox Code Playgroud) 我最近将我的操作系统从 Ubuntu 16 LTS 升级到 Ubuntu 18.04 LTS,几天来,无人值守升级过程占用了大量 CPU 资源,迫使我的风扇变得相当吵闹(参见屏幕截图)
你知道这个进程做了什么、为什么它总是在运行以及为什么它如此贪婪地占用 CPU 资源吗?(它能用所有这些计算能力做什么?)关闭它安全吗?
非常感谢您的帮助!:-)
编辑:我尝试升级 apt-get 并收到以下消息:
E: Could not get lock /var/lib/dpkg/lock-frontend - open (11: Resource temporarily unavailable)
E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), is another process using it?
Run Code Online (Sandbox Code Playgroud)
无法再使用 sudo,无人值守进程可以使用 sudo 吗?如果是这样为什么这么长时间?
cpu-load ×10
cpu ×2
14.04 ×1
18.04 ×1
apt ×1
aptdaemon ×1
gedit ×1
lock-screen ×1
macbook ×1
macbook-pro ×1
memory-usage ×1
multi-core ×1
nice ×1
process ×1
server ×1
systemd ×1
top ×1
udev ×1