背景
我想观察几天内正在运行的 Linux 系统以进行测试验证。这是一个 Gentoo 版本,上面有自定义软件。自定义软件需要各种由日期时间驱动的服务和脚本(即“每周运行一次...”)。我需要验证计划的工作是否以和谐的方式执行。为了测试纯度,我想避免调整预先存在的时间表(即不仅仅是调整时间表以使所有事情更频繁地发生)。
该系统与其外部的系统没有重要或时间关键的交互。
问题
等待系统逐步完成每日和每周活动需要很长的时间。修改系统上所有基于时钟的计时器会很耗时。然而,我经常想测试系统的端到端计划活动没有等待一周,然后没有手动将计划周期改得更短。
潜在解决方案
测试 Linux 系统出现在短短几个小时内完成其日常活动周期。
有没有办法让系统时间运行得比现实世界时间更快?
我的第一个想法是操纵ntp
守护进程反复平稳地增加时钟。还有其他想法吗?
答案1
如果您愿意花费更多时间来实现这一点,您可以随时使用虚拟化并让客户系统时钟运行得更快。
这里http://sysnet.ucsd.edu/projects/time-dilation/您可以找到 xen 的补丁,它可以让您减慢客户系统的速度(与您想要实现的目标相反),因此可能需要进行一些修改。
答案2
编写一个 shell 脚本,设置系统时间,然后等待下一个作业的结果,然后再次设置系统时间并等待下一个作业的结果...重复,直到完成。
答案3
禁用所有时间同步功能以确保系统的任何部分都无法从任何地方获取正确的时间,然后使用它tickadj
来获取比正常情况下更快的实时时钟。
我已经很久没有这样做了,所以我不确定是否必须禁用 HPET(例如在 BIOS 中)才能tickadj
生效。
如果您不需要在真实硬件上运行测试,请检查您所拥有的虚拟机的文档。