【问题标题】:lowest possible expected HTTPS latency?尽可能低的预期 HTTPS 延迟?
【发布时间】:2012-12-24 07:22:32
【问题描述】:

在我的网站上,对于特定 AJAX 文件(UI 的关键),我的平均延迟(不备份时等)约为 150 毫秒。我通过做一些服务器端/数据库技巧将它从 ~250ms 减少了,我认为最后一个技巧可能会将它从当前的 ~30ms 的实际 PHP/MySQL 部分的总数中再降低 10ms 左右页面。

我正在使用 keep-alive,所以我认为 ssl 握手或多或少已经完全失效(但我希望尽快迁移到 SPDY,所以我真的不知道在初次握手后这有什么帮助)。

当我 ping 时,平均约为 55 毫秒。

我在文件的开头连接到 MySQL,并在最后关闭它。我很确定这大约需要 10 毫秒。

那么剩下的 ~55ms 是从哪里来的呢?

这可能看起来完全令人着迷,但这是为了快速动态分页,并且每毫秒延迟都会严重降低效果。

非常感谢!

【问题讨论】:

  • 安装分析器(如 xdebug、xhprof 或 pinba)并查看

标签: php mysql linux https low-latency


【解决方案1】:

对于所有与性能问题相关的问题,唯一的答案是 - 使用分析器。根据您的偏好、分析器功能和其他原因,您可以从工具列表中进行选择(该列表仅包含我曾经使用过或听说过的工具):

【讨论】:

  • 因为你,我仔细查看了我当地的统计数据和我的生活。信不信由你,我的本地更强大,所以这就是“缺失”55ms 的来源。谢谢!
【解决方案2】:

如果您已建立 HTTP 连接,您应该能够在与 ping 大约相同的时间内运行单个简单、简短的 HTTP 请求。

要对此进行测试,请计算获取静态文件所需的时间。

接下来,尝试从不使用任何库的 PHP 页面获取一小块数据。

接下来,尝试在不更改输出的情况下添加您的需求和库。这可能很重要,例如使用 Zend 和它的一些包很容易用 xcache 和通常快速的系统花费 40 毫秒。您可能想要更改 PHP 的运行方式,例如apache prefork mod_php 必须启动一个新进程,并且 php 必须为每个请求加载库。如果切换到 fastcgi,则可以预加载所需的库,提前打开数据库连接,并从感知延迟中消除相应的时间成本。

接下来,添加一些数据库查询。

下一次升级到 AJAX。

现在 AJAX 通常发出一个 POST 请求,在 HTTP 1.1 中这意味着 Expect: 100-continue 标头并增加了一个往返。尝试禁用该标头。

最后,记录您的查询和响应,并尝试删除您不需要的所有内容。理想情况下,您希望每个请求和响应都低于 1K,但如果您的连接保持活动状态,则 tcp 窗口会增长,并且可能会在一段时间后推送 16K 消息。请求相对容易——它通常很小,删除不需要的 cookie 等;响应更难,因为它是您的数据,请尝试压缩或仅发送实际使用的数据,而不使用格式、样式或任何其他可以在客户端完成的操作。

【讨论】:

  • 这是一个了不起的答案!您知道如何在 WHM/cPanel 系统中禁用您为 AJAX 讨论的标头(让您了解我正在使用的内容)吗?我都是 AJAX,我认为我的大部分滞后,除了 ping 是 MySQL 排序。目前正在用 C++ 重写
  • 我不熟悉WHM/cPanel;禁用标头是在客户端完成的,这里是一般的 ajax hack:stackoverflow.com/questions/2464192/… 转到 C++ 是非常核心的,我会首先检查 MySQL 查询缓存和索引。除此之外,请考虑是否可以在客户端上预加载下一页(在用户单击下一步之前)。
  • 刚刚注意到主题中的HTTPS,使用ssldump查看ssl数据包有多大以及它们包含多少内容,非常有用。
  • 这是纯金!是的,C++ 到目前为止非常疯狂。我只是在“helo wrld”阶段,我已经可以看到为什么每个人都说它如此强大。我想我离实施还有一段距离哈哈。我在 PHP 中 SELECT 关闭 PRIMARY,让 PHP 完成所有排序。这确实加快了速度,将延迟从 ~250ms 降低到 ~150ms,并将峰值从 ~1s 频繁减少到罕见。如果不是因为我网站上的动态分页,我不会对此如此疯狂。那些 ms 真的开始降低体验了,我认为,除了你的知识,C++ 是唯一的选择。
猜你喜欢
  • 2014-07-11
  • 1970-01-01
  • 2016-07-07
  • 2010-10-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多