升级 RAM 后 SWAP 使用率过高

升级 RAM 后 SWAP 使用率过高

我已将 Ubuntu 20.04.1 LTS 上的 RAM 从 16 GB 升级到 32 GB。一切似乎都运行良好,即机器运行并cat /proc/meminfo显示 32 GB 的 RAM。今天机器似乎慢了很多,所以我再次检查了一下,结果如下top

top - 14:00:38 up 17 days, 18:39,  1 user,  load average: 2.75, 2.39, 2.28
Tasks: 510 total,   2 running, 507 sleeping,   0 stopped,   1 zombie
%Cpu(s): 11.6 us,  1.8 sy,  0.1 ni, 86.5 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
MiB Mem :  31954.0 total,   1612.3 free,  13689.8 used,  16652.0 buff/cache
MiB Swap:   2048.0 total,    368.6 free,   1679.4 used.  17463.2 avail Mem 

总共有 31954 M,使用了 13689 M,为什么只有 1612.3 M 可用?升级内存后我需要重新安装 Ubuntu 吗?

如果有帮助的话,这是最新的cat /proc/meminfo

MemTotal:       32720944 kB
MemFree:         1527484 kB
MemAvailable:   17764224 kB
Buffers:         1158432 kB
Cached:         15098500 kB
SwapCached:        42640 kB
Active:         17130404 kB
Inactive:       11875732 kB
Active(anon):   11796372 kB
Inactive(anon):  1297452 kB
Active(file):    5334032 kB
Inactive(file): 10578280 kB
Unevictable:         596 kB
Mlocked:             580 kB
SwapTotal:       2097148 kB
SwapFree:         377668 kB
Dirty:             18900 kB
Writeback:             0 kB
AnonPages:      12706816 kB
Mapped:          3533448 kB
Shmem:            353120 kB
KReclaimable:     796040 kB
Slab:            1239524 kB
SReclaimable:     796040 kB
SUnreclaim:       443484 kB
KernelStack:       31520 kB
PageTables:       107500 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:    18457620 kB
Committed_AS:   35499648 kB
VmallocTotal:   34359738367 kB
VmallocUsed:       92868 kB
VmallocChunk:          0 kB
Percpu:            17536 kB
HardwareCorrupted:     0 kB
AnonHugePages:     65536 kB
ShmemHugePages:        0 kB
ShmemPmdMapped:        0 kB
FileHugePages:         0 kB
FilePmdMapped:         0 kB
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB
Hugetlb:               0 kB
DirectMap4k:    16035156 kB
DirectMap2M:    17354752 kB
DirectMap1G:     1048576 kB

答案1

祝你一切顺利。

您的可用内存为 17.7GB。

Linux 使用所有未使用的内存来优化 IO,因此对于缓冲区/缓存,这并不意味着您的系统没有可用内存。

因此,您有:总共 32GB,可用 1.6GB,应用程序使用 13.6GB,缓冲区/缓存 16.6GB。大多数缓冲区/缓存都可以在需要时由系统使用。真正可以使用的内存是 MemAvailable,显示为 17.7GB。

运行如下命令:

free -h

为了更加清楚。

我认为您的问题是您有默认的 Swappiness 值 60,因此当您达到 RAM 内存使用的大约 60% 时,将开始使用交换。

您可以使用以下方法检查该值:

$ sysctl vm.swappiness
vm.swappiness = 60

通常使用交换很慢,因为访问驱动器的速度要慢得多。

在我的云系统和工作站中,我不使用交换,如果出于某种原因使用,我将交换设置为值 1 或 10。

若要在重新启动计算机之前执行此操作,您可以通过执行以下操作来设置此内核参数:

sudo sysctl vm.swappiness=10

然后您可以禁用交换并再次启用它。

sudo swapoff

并再次重新启用

sudo swapon -a

你的电脑将再次飞起来。:)

干杯

相关内容