首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将Ubuntu时钟源从xen切换到tsc impact php/Laravel应用程序吗?

将Ubuntu时钟源从xen切换到tsc impact php/Laravel应用程序吗?
EN

Stack Overflow用户
提问于 2018-08-20 16:40:19
回答 1查看 601关注 0票数 1

背景

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

新的文物技术支持立即建议我们将时钟源从xen切换到tsc:

您的系统上的时钟源似乎不支持vDSO。由于PHP代理在很大程度上依赖gettimeofday()系统调用来确定段和事务的时间长度,所以时钟源在防止系统调用击中系统本身方面发挥了很大作用,这大大加快了速度。 在这个特殊的场景中,我们建议使用tsc时钟源。通过启用tsc时钟源,我们已经看到了很大的性能提升,我想问一下,您是否可以暂时启用tsc时钟源来查看开销是否减少。 如果新文物是唯一需要精确计时的应用程序,或者您只关注于精确测量较短的时间,那么tsc是时钟源的好选择。

我对两个时钟源之间的差异做了一个快速的搜索,没有发现任何巨大的危险标志(这里提到了以下问题:然而,TSC也有自己的问题,包括:

  • 它的频率是未知的,它需要测量的坑,CMOS,或ACPI计时器。
  • 寄存器是可写的,在不同的CPU上读取可能不同。
  • TSC可以在处理器的一些低功耗C状态下停止.这种情况通常不会发生在现代硬件上。
  • 过去曾观察到一些大型NUMA系统的TSC不同步.幸运的是,这类系统的数量有限。
  • SMI处理程序可以重置计数器。

对我来说,所有这些听起来都很陌生,但似乎它们只适用于微时间保持需求(如分析器等),而且我认为它“与php/laravel应用程序没有真正的相关性,因为我们可以在3秒内容忍不准确(但不是更多,因为我们的应用程序依赖于用户的实时通知)。”

我的假设正确吗?

附录一:新文物支持小组关于如何从xen切换到tsc的说明:

将当前时钟源设置为不同的值 以超级用户的身份运行bash以覆盖current_clocksource: sudo -c的echo tsc >-c运行dmesg命令来查看内核消息: 如果重写成功,则出现以下消息: 时钟源:切换到时钟源tsc

EN

回答 1

Stack Overflow用户

发布于 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/

我还在整理我的推荐信,如果你需要更多的信息,请告诉我。

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

https://stackoverflow.com/questions/51935151

复制
相关文章

相似问题

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