标签: cpu-usage

多核处理器上的 top 命令

我正在使用飞思卡尔 IMX6 四核处理器。我想知道该top命令是否列出了所有 4 个内核或单个内核的 CPU 使用率。我看到应用程序的 CPU 使用率与 4 核和单核相同。我猜测应用程序的 CPU 使用率会在单核上增加而在 4 核上减少,但它没有改变。

linux top parallelism cpu-usage

62
推荐指数
3
解决办法
22万
查看次数

在 Linux Mint 上调试“Web Content”应用程序的高(接近总)CPU/内存使用率

我在家里的 3 台计算机上安装了 Linux Mint,当打开 Firefox 时,它们几乎都慢得无法使用。这是top的输出:

运行 Web 内容时的顶级输出

正如您所看到的,“Web Content”和 Firefox 一起占用了我几乎所有的 CPU,以及超过 50% (4GB+) 的系统内存。

过去我在 Debian 或 Ubuntu 上从来没有遇到过这个问题,但到目前为止,它在我安装 Mint 的每台计算机上都发生过。这种极高(接近总数)的 CPU/内存使用率是恒定的,并且导致我的计算机无法使用。

有没有人有关于如何解决这个问题的想法?如果没有修复,我怎样才能让这个“Web 内容”应用程序根本不运行?

firefox linux-mint bugs out-of-memory cpu-usage

56
推荐指数
3
解决办法
6万
查看次数

如何使用 cgroups 将除白名单之外的所有进程限制为单个 CPU?

有一个来自 Red Hat 的 cgroups 指南,它可能有点帮助(但没​​有回答这个问题)。

我知道如何在启动该进程的命令期间通过以下方式将特定进程限制为特定 CPU:

首先,将以下*放入/etc/cgconfig.conf

mount {
  cpuset =  /cgroup/cpuset;
  cpu =     /cgroup/cpu;
  cpuacct = /cgroup/cpuacct;
  memory =  /cgroup/memory;
  devices = /cgroup/devices;
  freezer = /cgroup/freezer;
  net_cls = /cgroup/net_cls;
  blkio =   /cgroup/blkio;
}

group cpu0only {
  cpuset {
    cpuset.cpus = 0;
    cpuset.mems = 0;
  }
}
Run Code Online (Sandbox Code Playgroud)

然后启动一个进程并使用以下命令将其专门分配给该 cgroup:

cgexec -g cpuset:cpu0only myprocessname
Run Code Online (Sandbox Code Playgroud)

我可以通过以下方式自动限制特定进程名称的所有实例(我认为这是正确的)/etc/cgrules.conf

# user:process  controller  destination
*:myprocessname cpuset      cpu0only
Run Code Online (Sandbox Code Playgroud)

我的问题是:我怎样才能做相反的事情?

换句话说,如何将除一组特定的白名单进程及其子进程之外的所有进程分配给受限制的 …

resources cgroups cpu-usage

27
推荐指数
1
解决办法
9152
查看次数

为什么 apt-get 不使用 100% (cpu OR disk OR net)?

为什么apt-get 使用100%无论是CPU,磁盘或网络-或者甚至接近呢?即使在慢速系统(Raspberry Pi 2+)上,我也最多只能获得 30% 的 CPU 负载。我只是想,无论它是被人为扼杀,或者它应该最大程度的发挥的东西,而它的工作...或者它应该能够做它的东西比它更快。

编辑:我只是通过面板中的 cpu/disk/net 监视器和 Ubuntu MATE 的系统监视器应用程序进行粗略测量。

请解释为什么我错了。:-)

更新:我知道apt-get需要获取其更新(并且可能受到上游/提供商带宽的限制)。但是一旦它“解包”等等,CPU 使用率至少应该上升(如果不是最大的话)。在我相当不错的家用工作站上,它的主驱动器使用 SSD,/tmp 使用 ramdisk,但情况并非如此。

或者也许我需要仔细看看。

apt cpu-usage

22
推荐指数
2
解决办法
6675
查看次数

如何限制systemd服务与CPU“玩得开心”?

我有一个 systemd 服务(一个 CI 运行程序),它往往会使系统陷入 CPU 密集型作业的泥潭。我刚刚发现平均负载超过 100,我想停止这种胡说八道。

系统上的其他任何东西都没有任何限制,所以交易是我希望其他一切都像现在一样继续运行,但是:

  • (a) 作为 CI 作业运行的唯一用户运行的每个进程或
  • (b) systemd 服务守护进程实例化的任何子进程

... 对系统上的其他所有东西都起到次要作用。事实上,即使系统上没有其他东西需要剩余 10% 的 CPU 周期,我也希望它们具有 90% 的绝对上限,但如果有任何其他要求 CPU 时间,我希望它们尽可能多他们要第一个。

配置它的最佳方法是什么?我在 EC2 上运行 Arch Linux 并且有可用的 cgroups(包括 cgmanager),但从未使用过它们。

limit systemd services cgroups cpu-usage

17
推荐指数
1
解决办法
9902
查看次数

为什么 systemd-udev 盯住我的 CPU?

我注意到四核笔记本电脑上的一个核心是固定的,并且温度非常高。我在top

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
  359 root      20   0  188684 147228   1552 R  99.4  5.0 111:19.91 systemd-udevd
20011 root      20   0  188320 147604   2076 S  11.0  5.0   0:00.33 systemd-udevd
11053 dotanco+  20   0 3030036 918672  49608 S   9.6 31.2 280:40.65 firefox
 3468 dotanco+  20   0 3612776 136740  43484 S   1.7  4.6  57:02.52 plasma-desktop
20006 root      20   0       0      0      0 Z   1.0  0.0   0:00.37 systemd-udevd
Run Code Online (Sandbox Code Playgroud)

为什么可能systemd-udev会敲打 CPU?这是一个 Kubuntu …

systemd cpu-usage

16
推荐指数
4
解决办法
4万
查看次数

Htop 显示一个核心 100% cpu 使用率,但没有进程使用太多 cpu

这与这个问题非常相关,但由于它实际上没有任何令人满意的答案,我想我可以问一个新问题。

此屏幕截图显示 htop 指示一个核心利用率为 100%,但没有进程使用任何大量 CPU:

htop 的一个核心为 100%,处理速度要低得多

我认为这意味着内核出于某种未知的原因使用了这么多的CPU,但我还没有找到一个很好的方法来调查这个问题。(现在考虑使用 eBPF)我认为这可能与我的磁盘加密和磁盘访问有关,但 iotop 没有显示任何重要的磁盘使用情况。我正在运行带有完全标准内核的 Arch Linux。

这个问题最近出现了几次,如果我重新启动,总是会消失,并且总是需要至少几个小时的时间才能出现。

任何有关如何调试此问题或根本原因可能是什么的想法和建议都将非常受欢迎。

编辑:

所以这个新的屏幕截图显示 htop 设置为显示内核和用户线程,但对于高 cpu 使用率仍然没有明确的解释:

htop 具有内核和用户线程

编辑2:

bfptrace以下屏幕截图显示了运行时的结果bpftrace -e 'profile:hz:99 /cpu == 0/ { @[kstack] = count(); }'。由于某种原因,内核似乎花费了大量时间acpi_os_execute_deferred

在此输入图像描述

linux linux-kernel cpu-usage

14
推荐指数
1
解决办法
2万
查看次数

当 CPU/内存使用率过高时自动终止进程的 Bash 脚本

我创建了一个脚本,如果 CPU 和/或内存使用率达到 80%,它就会终止进程。发生这种情况时,它会创建一个被杀死进程的列表。我能做些什么来改善它?

while [ 1 ];
do 
echo
echo checking for run-away process ...

CPU_USAGE=$(uptime | cut -d"," -f4 | cut -d":" -f2 | cut -d" " -f2 | sed -e "s/\.//g")
CPU_USAGE_THRESHOLD=800
PROCESS=$(ps aux r)
TOPPROCESS=$(ps -eo pid -eo pcpu -eo command | sort -k 2 -r | grep -v PID | head -n 1)

if [ $CPU_USAGE -gt $CPU_USAGE_THRESHOLD] ; then
  kill -9 $(ps -eo pid | sort -k 1 -r | grep -v PID | …
Run Code Online (Sandbox Code Playgroud)

bash cpu memory shell-script cpu-usage

12
推荐指数
1
解决办法
4万
查看次数

理解 AIX 上 sar 的输出

我试图了解一些从 SAR 中提取的数据。关于这个,我有三个主要问题。最后,我想确定服务器集群中每个采样间隔有多少 CPU 空闲。

  1. 许多 CPU 并未出现在每个条目中。这是预期的,这究竟是什么意思?它与#2有关吗?
  2. 有未使用的行(CPU = U)。该文件说:“U指示系统范围未使用的容量”。我真的找不到“系统范围内未使用容量”的精确定义或任何定义。我不确定如何解释诸如“未使用的容量为 70% 空闲”之类的行。
  3. 最后,我不确定-orall线是如何计算的。我认为这是所有 CPU 的平均值,但是当我对所有 CPU 进行数学运算时,我得到的答案与该线上的答案截然不同。谁能告诉我该计算的确切内容?仔细查看有关 SAR 的相关问题,似乎system-wide空闲百分比是每个 CPU 的空闲百分比与“physc”值的乘积之和。不幸的是,我没有physcor entc% (假设有),所以我无法用我自己的数据验证这一点。如果这是正确的,是否意味着我需要这些physc值才能真正了解闲置百分比?

以下是我所看到的一些示例。这些都是同一天的。

CPU | Idle    CPU | Idle    CPU | Idle
----------    ----------    ----------
0   | 8       0   | 15      0   | 17
1   | 25      1   | 94      1   | 32
2   | 79      2   | 100     2   | 97
3   | …
Run Code Online (Sandbox Code Playgroud)

aix sar cpu-usage

11
推荐指数
1
解决办法
1389
查看次数

如何查找子进程的cpu和内存使用情况

supervisord正在 CentOS 服务器上运行。如果我做

ps -e -o %mem,%cpu,cmd | grep supervisord | awk '{memory+=$1;cpu+=$2} END {print memory,cpu}'
Run Code Online (Sandbox Code Playgroud)

我得到0 0只是因为supervisord它只是一个初始化守护进程。它在我的服务器上运行四个子进程:

# pgrep -P $(pgrep supervisord) | wc -l
4
Run Code Online (Sandbox Code Playgroud)

如何在一行命令中找到这些子进程的 CPU 和内存使用情况汇总?

shell process ps centos cpu-usage

10
推荐指数
2
解决办法
2万
查看次数