可能的最低HTTPS延迟?

时间:2013-01-10 00:26:25

标签: php mysql linux https low-latency

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

我正在使用keep-alive,所以我认为ssl握手或多或少完全没有了(但我希望尽快转移到SPDY,所以我真的不知道在初始握手后这有多大帮助)。< / p>

当我ping时,平均约55ms。

我在文件开头连接MySQL,最后关闭它。我很确定这个成本约为10毫秒。

剩下的~55ms来自哪里?

这似乎完全是强迫性的,但这是为了快速动态分页,并且每个延迟时间都会严重降低效果。

非常感谢提前!

2 个答案:

答案 0 :(得分:2)

如果建立了HTTP连接,您应该能够在ping的同时运行单个简单的简短HTTP请求。

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

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

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

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

接下来升级到AJAX。

现在AJAX通常会发出一个POST请求,在HTTP 1.1中表示Expect:100-continue标头并再添加一次。尝试禁用该标头。

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

答案 1 :(得分:1)

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