背景
我们开始在我们的laravel应用服务器(托管在ubuntu ec2上)上使用新的遗物,但随后立即注意到我们的aws中的延迟增加了:

新的文物技术支持立即建议我们将时钟源从xen切换到tsc:
您的系统上的时钟源似乎不支持vDSO。由于PHP代理在很大程度上依赖gettimeofday()系统调用来确定段和事务的时间长度,所以时钟源在防止系统调用击中系统本身方面发挥了很大作用,这大大加快了速度。 在这个特殊的场景中,我们建议使用tsc时钟源。通过启用tsc时钟源,我们已经看到了很大的性能提升,我想问一下,您是否可以暂时启用tsc时钟源来查看开销是否减少。 如果新文物是唯一需要精确计时的应用程序,或者您只关注于精确测量较短的时间,那么tsc是时钟源的好选择。
我对两个时钟源之间的差异做了一个快速的搜索,没有发现任何巨大的危险标志(这里提到了以下问题:然而,TSC也有自己的问题,包括:
对我来说,所有这些听起来都很陌生,但似乎它们只适用于微时间保持需求(如分析器等),而且我认为它“与php/laravel应用程序没有真正的相关性,因为我们可以在3秒内容忍不准确(但不是更多,因为我们的应用程序依赖于用户的实时通知)。”
我的假设正确吗?
附录一:新文物支持小组关于如何从xen切换到tsc的说明:
将当前时钟源设置为不同的值 以超级用户的身份运行bash以覆盖current_clocksource: sudo -c的echo tsc >-c运行dmesg命令来查看内核消息: 如果重写成功,则出现以下消息: 时钟源:切换到时钟源tsc
发布于 2018-08-24 19:21:44
这个星期我对这个话题做了很多研究。我的堆栈非常类似于您的堆栈,唯一的区别是我运行的是ECS优化的AMI。
如果您的应用程序不需要英里秒的精度,您应该可以切换到TSC。确保在新一代上运行,并使用更新的内核。这就是我所看到的影响,基本上有一半的实例:https://imgur.com/TllxFXs
AWS建议使用自己的服务来保持时间同步:https://aws.amazon.com/blogs/aws/keeping-time-with-amazon-time-sync-service/
我还在整理我的推荐信,如果你需要更多的信息,请告诉我。
https://stackoverflow.com/questions/51935151
复制相似问题