Canonical 提出了加速睡眠模式激活的补丁

规范公司 提供 Linux 内核开发者的邮件列表上有一组带有实现的补丁 机会性记忆清除 (“机会性内存回收”),它可以让您显着减少进入睡眠模式所需的时间。 通过主动调用不包含唯一信息、从睡眠模式返回后可以动态恢复的辅助内存结构的释放操作来实现优化(例如,区域 匿名记忆 以及各种内存页缓存)。 主要思想是,删除不必要的数据后,进入睡眠模式之前要保存的内存映像的大小会减少,因此,写入内存映像和从慢速介质读取内存映像所需的时间会减少。

默认情况下,在保存休眠内存转储时,内核会按所有缓存的原样保存内存,但有一个标准功能,可以通过在进入休眠的初始阶段模拟资源短缺情况来释放不必要的结构。 可以使用“/sys/power/image_size”参数激活此功能,并显着减少进入睡眠模式所需的时间。 Canonical 建议再添加两个参数“/sys/power/mm_reclaim/run”和
“/sys/power/mm_reclaim/release”,这将允许您提前触发释放不必要的结构,以便尽快执行到睡眠模式的实际转换,并且从睡眠模式返回所需的时间与当使用内核参数“/sys/power/image_size”中的现有参数时。

在具有 8 GB RAM 和 8 GB 交换分区、内存利用率为 85% 的系统上进行的测试表明,在默认设置 (image_size=default) 下,启动进程时进入睡眠模式的时间从 51.56 秒减少到 4.19 秒。进入睡眠模式前 60 秒清除多余内存。睡眠模式。 通过减小存储的内存映像的大小,恢复时间从 26.34 秒减少到 5 秒。 当系统开启标准模式清除多余内存时(image_size=0),进入睡眠模式的时间从73.22秒减少到5.36秒,从睡眠模式返回的时间几乎没有变化(仅减少了秒的一小部分,从 5.32 到 5.26 秒)。

在需要非常快速地切换到睡眠模式并且可以提前预见这种转换的需要的情况下,可能需要所提出的方法。 例如,在云系统中,低优先级的虚拟环境(现场环境 Amazon EC2 中)可以随着主环境资源消耗的增加而动态休眠并释放占用的内存。 当主要环境上的负载减少时,低优先级环境将从睡眠模式返回。 在这些条件下,为了保持适当的服务质量,尽量减少进入和退出睡眠模式所需的时间非常重要。 当主负载达到一定水平(高于导致低优先级环境冻结的水平)时,可以触发抢占式清洁阶段。

来源: opennet.ru

添加评论