答案1
交换与 CPU 利用率无关。交换是写入磁盘的内存。
CPU 可以直接访问普通 RAM,与交换相比,RAM 的速度极快。这就是我们使用 RAM 的原因 - 作为 CPU 需要访问的数据的快速缓冲区。
交换允许内核将未使用的内存写入磁盘,以便在需要时检索。这是一个昂贵的过程,因为与内存相比,磁盘速度极慢,但它也允许使用比物理内存更多的内存。
此外,有些东西可能永远不会被使用,但却被分配了内存空间。通常内核会交换出那些没有使用的东西。
190MB 的 SWAP 使用量不是问题。问题在于计算机是否必须将内容写入交换区并再次检索。
我的笔记本电脑目前有 445MB 写入交换空间,但还有超过 3GiB 的未使用内存 - 显然内核在某个阶段发现了一些未使用的东西,并决定将其交换出去。
简而言之:不要关心交换的使用情况,除非:
- 你会看到频繁鞭笞。
free -m
显示可用内存量非常低
以下是我的笔记本电脑的一个简单示例free -m
:
$ free -m
total used free shared buffers cached
Mem: 7702 7454 247 582 230 3477
-/+ buffers/cache: 3746 3955
Swap: 8191 445 7746
我们可以看到,有 247MiB 可用。但这并不是全部。此外,还有超过 3GiB 的缓存可以释放非常如果内核需要更多内存来做某事,它会迅速释放内存。因此,实际可用内存量为 3955MiB,如 下的第二行所示free
。您还可以看到使用的交换空间。
简而言之:不要关心交换空间的使用情况,除非您遇到问题,例如软件响应非常缓慢 - 这是软件抖动的明显迹象。
要检查抖动情况,您可以运行vmstat -s
以显示统计信息。您将看到两行,如下所示:
174085 pages swapped in
569123 pages swapped out
这是写入交换和从交换读取的页面数。只要这些数字没有快速增加,一切都很好 - 交换给你更多的用于实际应用程序的内存和可加快系统速度的缓存。