我已将 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
你的电脑将再次飞起来。:)
干杯