首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么换挡这么慢?

问为什么换挡这么慢?
EN

Unix & Linux用户
提问于 2017-11-09 04:34:35
回答 1查看 7.2K关注 0票数 12

我相信我的交换/硬件/驱动程序正在发生一些奇怪的事情。

我试图通过swapoff,lvresize,然后swapon来增加交换空间的大小。

当我执行swapoff /dev/swapdev时,命令花费了8分19秒才将3.5GB的交换页面移动到内存中。

我确保在运行swapoff之前,我的空闲内存比交换内存的使用量更大,而且在运行时,这种情况仍然存在。

我有一个英特尔核心i5笔记本电脑与SSD。处理器在swapoff之前还不到10%,当我签入时,swapoff使用的是70%+ CPU。

日记里一直没有什么有趣的东西。

以下是我预计将3.5G从磁盘分流到内存所需的大约时间:

代码语言:javascript
复制
$ time dd if=/dev/urandom of=/tmp/del bs=1M count=3500
3500+0 records in
3500+0 records out
3670016000 bytes (3.7 GB, 3.4 GiB) copied, 23.7288 s, 155 MB/s

real    0m24.789s
user    0m0.000s
sys     0m22.743s

我在运行Linux svelte 4.9.53-1-MANJARO #1 SMP PREEMPT Thu Oct 5 15:11:15 UTC 2017 x86_64 GNU/Linux

命令要花这么长时间有什么原因吗?这可能是一个更大问题的一部分,但这是我第一件能明确指出看上去很奇怪的事情。

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2017-11-09 12:51:55

你错过了斯沃波夫真正做的事。

替换正在运行的机器上的交换空间是非常复杂的。3.5G在8分钟内可能非常快+正在按预期工作。

运行swapoff并不只是简单地将代码从磁盘移动到内存中。

一旦你们交换..。好吧..。您正在交换,这意味着您的操作系统急需内存+您的交换设备有磁盘i/o,其他文件系统也有磁盘i/o,甚至可能是OOM (内存不足杀手)开始运行+然后重新启动OOM编辑的进程,如果涉及监视狗或systemd自动重新启动。

如果您的系统正在交换,这意味着交换是保持系统活力的唯一因素。

如果您关闭了交换空间,那么您的系统就不能再使用交换空间了,所以现在您的操作系统必须加载普通文件系统的代码+在内存耗尽时删除代码,而不是通过优化的原始磁盘读取从快速交换空间中提取代码,您的所有代码都必须从正常的文件系统中取出,同时进行目录遍历。这比从交换空间中提取资源要密集得多。

当你在交换系统上做交换时.通常情况下,您会遇到这样的情况:这个过程需要几个小时,有时机器会崩溃。

如果您由于某种原因不得不使用交换设备,最好首先创建一个基于文件系统的备用交换空间+为这个新交换空间执行swapon,然后在旧交换设备上执行交换。

如果你采取这种方法,你的系统将永远存在。

票数 12
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/403451

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档