即使 CPU 负载低、RAM 和可用空间充足,Ubuntu 偶尔也会挂起

即使 CPU 负载低、RAM 和可用空间充足,Ubuntu 偶尔也会挂起

有时我的 Ubuntu 16.04 LTS(i3 和 4GB RAM)系统挂起得非常严重,以至于我无法复制粘贴文本。

我通常会打开系统监视器来监视我的使用情况,当我检查它时,我发现我有足够的资源可以无挂起使用。

系统监视器显示 CPU 负载为 5-10%,仅有 1 个峰值 >50%,可用内存约为 50%

我应该检查什么?系统监视器似乎不可靠?我有足够的硬盘可用空间。


硬盘规格

命令:sudo smartctl -a /dev/sda

结果:

smartctl 6.5 2016-01-24 r4214 [x86_64-linux-4.4.0-121-generic] (local build)
Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===

Model Family: Western Digital Blue Mobile
Device Model: NDC ND10JPVX-7SJC3T0
Serial Number: WXC1A17AD6CD

LU NNN Device Id: 5 0014ee 607557602
Firmware Version: 02.01A02

User Capacity: 1,000,204,886,016 bytes [1.00 TB]

Sector Sizes: 512 bytes logical, 4096 bytes physical

Rotation Rate: 5400 rpm

Device is: In smartctl database [for details use: -P show]
ATA Version is: ACS-2 (minor revision not indicated)

SATA Version is: SATA 3.0, 6.0 Gb/s (current: 6.0 Gb/s)

Local Time is: Fri May 4 09:48:31 2018 IST

SMART support is: Available - device has SMART capability.
SMART support is: Enabled

答案1

这个问题有很多可能的答案:

该计算机拥有什么类型的硬盘?

如果您有一个常规 HDD,那么导致系统挂起的原因是交换过程,操作系统正在使用硬盘内存来存储应存储在 RAM 中的信息。

如果您使用的是 SSD 驱动器,交换也会很慢,但不会像第一种情况那么慢。通过读取 /proc/sys/vm/swappiness 文件检查您的“swappiness”,默认值为 60,您可以尝试将其更改为 10(甚至更少),看看会发生什么。这样,系统只会在 90% 的 RAM 内存繁忙时进行交换。

从 :https://www.kernel.org/doc/Documentation/sysctl/vm.txt

交换性

此控制用于定义内核交换内存页面的积极程度。值越高,积极程度越高;值越低,交换量越少。

默认值为 60。

要更改 swappiness 级别,您需要运行此命令:

echo 10  | sudo tee --append  /proc/sys/vm/swappiness

您也可以尝试较低的值。

如果没有任何效果,您应该考虑升级到 8 GB RAM 或在云虚拟机(AWS、Google Cloud 等)上运行繁重的进程。

相关内容