磁盘和 CPU 使用率过高

磁盘和 CPU 使用率过高

我的 Kubuntu 桌面在过去两天似乎变慢了,我不知道为什么。以前很好,我的所有程序都运行良好,但从昨天开始桌面运行得非常慢。

我几乎每天都会使用的应用程序(例如 Dolphin(文件管理器)和 Firefox(浏览器))需要很长时间才能加载,并且它们经常与系统一起挂起,迫使我重新启动整个系统。

使用 VLC 播放器在浏览器和离线播放的视频总是卡顿并且经常冻结。

今天我启动了电脑,让它闲置了大约 30 分钟,KSysguard 应用程序在后台运行以监控 CPU 使用率。我发现启动后,我的 CPU 使用率在 100% 左右持续了 10 分钟,然后才下降,并且始终在 50% 到 80% 之间(这是在没有任何应用程序的情况下,除了在后台运行的系统监视器)。

我打开的任何应用程序(例如 Firefox)的 CPU 使用率都会立即跃升至 100%,即使计算机处于空闲状态,也会一直保持这个状态。但是 RAM 使用率与以前一样正常。没有发现 RAM 使用率过高。

top在终端中运行命令来检查负载使用情况,空闲时平均高于 3.0(这很奇怪,我父亲也在工作笔记本电脑上使用 Linux,他的笔记本电脑负载大部分时间低于 3,只有在重负载下才会超过 3.0)。这是错误还是某些更新安装不正确?我需要帮助。[我使用 Kubuntu 18.04.2,它于 2019 年 7 月 17 日更新]

根据@dk-bose 的要求

$ top -n 1 -o %MEM | head -15

top - 21:22:35 up 20 min,  3 users,  load average: 5.39, 6.10, 4.60
Tasks: 185 total,   1 running, 143 sleeping,   0 stopped,   0 zombie
%Cpu(s):  8.6 us, 27.7 sy,  0.0 ni, 14.2 id, 49.4 wa,  0.0 hi,  0.1 si,  0.0 st
KiB Mem :  8059896 total,  5244160 free,  1103092 used,  1712644 buff/cache
KiB Swap:  2097148 total,  2097148 free,        0 used.  6564828 avail Mem 

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
19579 sreejes+  20   0 3343104 330868 165340 S   0.0  4.1   0:19.22 firefox
 2081 sreejes+  20   0 1531184 241612 168052 S   0.0  3.0   0:01.67 kded5
20703 sreejes+  20   0 2632968 183580 134036 S   0.0  2.3   0:03.75 Web Content
 2244 sreejes+  20   0 3731444 182300  98592 S   0.0  2.3   0:09.06 plasmashell
20498 sreejes+  20   0 2832920 181812 105212 S   0.0  2.3   0:07.40 WebExtensions
20133 sreejes+  20   0 2655316 178720 109204 S   0.0  2.2   0:07.24 Web Content
23983 sreejes+  20   0 2592364 145700 105192 S   0.0  1.8   0:01.36 Web Content
  298 root      19  -1  262252 113996 112856 S   0.0  1.4   0:04.78 systemd-journal 

$ top -n 1 -o %CPU | head -15

top - 21:23:42 up 21 min,  3 users,  load average: 5.14, 5.93, 4.65
Tasks: 185 total,   1 running, 144 sleeping,   0 stopped,   0 zombie
%Cpu(s):  8.8 us, 28.5 sy,  0.0 ni, 14.5 id, 48.0 wa,  0.0 hi,  0.1 si,  0.0 st
KiB Mem :  8059896 total,  5234028 free,  1123492 used,  1702376 buff/cache
KiB Swap:  2097148 total,  2097148 free,        0 used.  6558536 avail Mem 

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
16742 root      20   0   26388    868    804 D  58.8  0.0   0:00.10 modprobe
    1 root      20   0  159844   9116   6644 S   5.9  0.1   0:08.57 systemd
  363 root      20   0   79260  37036   3200 S   5.9  0.5   0:18.11 systemd-udevd
  862 root      20   0  452928  67104  49412 S   5.9  0.8   0:17.41 Xorg
16730 sreejes+  20   0   44076   4188   3516 R   5.9  0.1   0:00.01 top
20133 sreejes+  20   0 2653268 169484 109204 S   5.9  2.1   0:07.40 Web Content
    2 root      20   0       0      0      0 S   0.0  0.0   0:00.00 kthreadd
    4 root       0 -20       0      0      0 I   0.0  0.0   0:00.00 kworker/0:0H 

我意识到了这一点,我已将另一个硬盘驱动器连接到桌面,从那时起,我的启动时间显著增加,并且似乎有一个进程“systemd-udevd”一直在后台运行。如果所述进程结束,系统将需要一些时间,最终 CPU 使用率会下降。这有帮助吗?我猜是因为连接到 PC 的硬盘驱动器有故障(注意:所述最近连接的硬盘驱动器未出现在 Dolphin 中)

$ inxi -Fxxxz 

System:    Host: HAL9000Desktop Kernel: 4.15.0-54-generic x86_64 bits: 64 gcc: 7.4.0
       Desktop: KDE Plasma 5.12.7 (Qt 5.9.5) dm: sddm,sddm Distro: Ubuntu 18.04.2 LTS                      
Machine:   Device: desktop System: Gigabyte product: N/A serial: N/A  Chassis: type: 3 serial: N/A             
       Mobo: Gigabyte model: H61M-S2P v: x.x serial: N/A UEFI: American Megatrends v: FF date: 12/14/2012
CPU:       Dual core Intel Pentium G2010 (-MCP-) arch: Ivy Bridge rev.9 cache: 3072 KB
       flags: (lm nx sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx) bmips: 11175
       clock speeds: min/max: 1600/2800 MHz 1: 2792 MHz 2: 2793 MHz
Graphics:  Card: Intel Xeon E3-1200 v2/3rd Gen Core processor Graphics Controller
       bus-ID: 00:02.0 chip-ID: 8086:0152
       Display Server: x11 (X.Org 1.19.6 ) drivers: modesetting (unloaded: fbdev,vesa)
       Resolution: [email protected]
       OpenGL: renderer: Mesa DRI Intel Ivybridge Desktop
       version: 4.2 Mesa 19.0.2 (compat-v: 3.0) Direct Render: Yes
Audio:     Card Intel 6 Series/C200 Series Family High Def. Audio Controller
       driver: snd_hda_intel bus-ID: 00:1b.0 chip-ID: 8086:1c20
       Sound: Advanced Linux Sound Architecture v: k4.15.0-54-generic
Network:   Card: Realtek RTL8111/8168/8411 PCIE Gigabit Ethernet Controller
       driver: r8169 v: 2.3LK-NAPI port: e000 bus-ID: 02:00.0 chip-ID: 10ec:8168
       IF: enp2s0 state: up speed: 100 Mbps duplex: full mac: <filter>
Drives:    HDD Total Size: 160.0GB (60.7% used)
       ID-1: /dev/sda model: ST3160815AS size: 160.0GB serial: <filter> temp: 42C
Partition: ID-1: / size: 146G used: 91G (66%) fs: ext4 dev: /dev/sda2
RAID:      System: supported: N/A
       No RAID devices: /proc/mdstat, md_mod kernel module present
       Unused Devices: none
Sensors:   System Temperatures: cpu: 29.8C mobo: 27.8C
       Fan Speeds (in rpm): cpu: N/A
Info:      Processes: 202 Uptime: 57 min Memory: 2158.9/7871.0MB
       Init: systemd v: 237 runlevel: 5 Gcc sys: 7.4.0
       Client: Shell (bash 4.4.201 running in konsole) inxi: 2.3.56 

@NathanielMBeaver 请求:

已解决:我运行了我在 askubuntu 上找到的一些命令,我​​真的不知道是哪个命令(可能是这个:$ udevadm monitor),但基本上我得到了一个无休止的输出,其中出现了很多单词“nvidia”。我当前的设置中没有 nvidia 显卡,但我在测试我购买的另一台带有 Nvidia GTX 1060 显卡的 PC 时安装了它。一旦我恢复到旧设置,上述问题就开始了。所以我参考了这篇文章……

如何卸载 Nvidia 驱动程序:https://askubuntu.com/a/206289/888653

我完全按照它说的做了,瞧,modprobe 进程和 systemd-udevd 进程消失了,我的电脑恢复正常了。

感谢@DKBose 和@NathanielMBeaver 的帮助。:)

答案1

根据您的描述,我猜测 热节流磁盘超载. 如果你怀疑过热,您可以检查dmesg如下消息:

[607418.631402] CPU1: Core temperature above threshold, cpu clock throttled (total events = 11940)
[607418.631404] CPU0: Core temperature above threshold, cpu clock throttled (total events = 11940)
[607418.631406] CPU2: Package temperature above threshold, cpu clock throttled (total events = 12035)
[607418.631408] CPU3: Package temperature above threshold, cpu clock throttled (total events = 12034)
[607418.631411] CPU0: Package temperature above threshold, cpu clock throttled (total events = 12035)
[607418.631418] CPU1: Package temperature above threshold, cpu clock throttled (total events = 12035)

如果您怀疑磁盘过载,请参见下文。至于可能导致高 CPU 负载的原因,请注意您显示的输出modprobe中消耗最多 CPU 的进程top

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
16742 root      20   0   26388    868    804 D  58.8  0.0   0:00.10 modprobe

modprobe命令负责加载/卸载内核模块,因此这可能是许多不同的事情。如果您使用像这样的命令

$ sudo ps -fp $(pgrep -x modprobe)

您将能够看到 的参数modprobe,这可能会提供一些启发。本论坛上的其他问题讨论了驱动程序问题 无线上网 或者 图形,然后粗略地在网上搜索“modprobe high CPU”会出现这个错误报告:

更改防火墙规则时,modprobe 会因 CPU 使用率达到 100% 而挂起

https://bugzilla.redhat.com/show_bug.cgi?id=735098

你提到系统卫士。请注意,您可以制作自己的标签,例如平均时钟频率、CPU 温度和总负载:

系统监视器选项卡

您还可以检查磁盘 I/O,例如读写、iowait 和读/写时间:

磁盘 I/O 选项卡

atop程序通常有助于诊断系统性能问题。以下是在高负载下以红色显示磁盘活动:

在 DSK sda 繁忙之上

最后,如果你发现磁盘活动是导致问题的原因,你可以使用以下命令监视和更改各个进程的优先级:iotop (请注意,它需要root/sudo)。

iotop 截图

有关的:

相关内容