为什么 Linux Swap 这么慢

为什么 Linux Swap 这么慢

我是一名软件开发人员,时不时地,我会不小心用我的某个程序耗尽所有可用的 RAM。操作系统会很有帮助地交换出我当时可能正在使用的所有其他程序(例如,Web 浏览器、开发 IDE、音频播放器等)。在我设法杀死故障程序后,我机器上运行的其他软件在几分钟内几乎无法使用,并且如果我不实际使用该软件(并且每次单击后都要等待很长时间),它不会自动交换回来。我可以sudo swapoff -a强制将所有内存页面放回 RAM,但这会花费很长时间。我可以使用命令监视交换使用情况free。交换以大约 1-2MB/秒的速度清空 -free每隔几秒钟运行一次只会显示个位数的差异,整个过程可能需要几分钟。

我的系统相当新,我刚刚测试了存储交换分区的硬盘cpipe- 读取 7GB 文件的平均速度约为 150-160MB/秒。为什么交换分区不能以类似的速度移回内存?

我能做些什么来让它更快吗?

$ uname -r
4.15.0-29-generic

$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 16.04.5 LTS
Release:        16.04
Codename:       xenial

相关内容