首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >数据库网络延迟

数据库网络延迟
EN

Stack Overflow用户
提问于 2009-03-03 09:09:29
回答 4查看 22.9K关注 0票数 12

我目前正在开发一个n层系统,正在与一些数据库性能问题作斗争。我们一直在调查的一个领域是数据库服务器和应用程序服务器之间的延迟。在我们的测试环境中,两个机器之间的平均ping时间在0.2ms的范围内,但是在客户端站点上,更多的是在8.2ms的范围内。这是我们应该担心的事情吗?

对于您的平均系统,你们认为合理的延迟是什么?您将如何测试/测量延迟?

卡尔

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2009-03-03 09:13:48

简而言之:不!

您应该监控的是查询的全局性能(即传输到数据库+执行+传输回您的服务器)

您可以做的是使用性能计数器来监视查询通常需要花费的执行时间。你可能会看到你的结果超过了毫秒级。

没有“合理的延迟”这回事。你应该考虑“你的项目的合理延迟”,这将根据你正在做的事情而变化很大。人们对实时交易平台和只读业余网站的期望并不相同。

票数 12
EN

Stack Overflow用户

发布于 2013-04-03 02:02:06

很抱歉回复得不及时,但我在寻找其他人在他们的应用程序服务器和数据库服务器之间实现的网络延迟的指标时,偶然发现了这个问题。不管怎样,我注意到其他答案

总之,简而言之:是的,网络延迟(通过ping来衡量)可以产生巨大的差异。

如果您的数据库响应是.001ms,那么您将看到从0.2ms到8ms ping的巨大影响。我听说数据库协议是健谈的,如果是真的,这意味着与http相比,它们更容易受到缓慢网络延迟的影响。

更有可能的是,如果你正在运行一个查询,那么增加8毫秒的时间来从数据库获得回复是无关紧要的。但是,如果您正在执行10,000个查询,这通常是在错误代码或未优化使用ORM的情况下发生的,那么对于8ms的ping,您将额外等待80秒,而对于0.2ms的ping,您只需等待4秒。

作为我自己的策略,我从不让客户端应用程序直接与数据库联系。我要求客户端应用程序总是通过应用程序服务器(例如REST web服务)。这样,如果我意外地遇到了"1+N“ORM问题,那么它就不会有那么大的影响。我仍然会尝试解决潜在的问题……

票数 12
EN

Stack Overflow用户

发布于 2010-06-10 10:16:48

在基于linux的服务器上,您可以使用tc命令自己测试延迟的影响。

例如,此命令将为所有通过eth0传输的数据包增加10ms的延迟

代码语言:javascript
复制
tc qdisc add dev eth0 root netem delay 10ms

使用此命令删除延迟

代码语言:javascript
复制
tc qdisc del dev eth0 root

更多详情请点击这里:http://devresources.linux-foundation.org/shemminger/netem/example.html

所有应用程序都会有所不同,但我确实看到过10ms延迟对系统性能产生重大影响的情况。

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

https://stackoverflow.com/questions/605648

复制
相关文章

相似问题

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