首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >输出缓存.PHP文件的IIS8 -时间到第一字节

输出缓存.PHP文件的IIS8 -时间到第一字节
EN

Stack Overflow用户
提问于 2014-05-25 17:03:49
回答 1查看 1.8K关注 0票数 5

我有一个VPS的4核和5 GB内存与Windows 2012和IIS8。我在它上运行一个WordPress站点,MySQL作为InnoDB数据库,给MySQL大约70%的可用内存用于缓存/缓冲区,这非常好。我启用了Wincache,基本上为除了.php文件之外的所有内容启用了输出缓存。我第一次拜德的时间是1400-1800毫秒,这在我看来太慢了。

我为所有PHP文件启用了输出缓存,从而将其减少到8ms。太棒了!或者我是这么想的。当然,因为它现在正在缓存整个PHP文件,所以不会加载任何后续页面。这是因为WordPress将后续页面作为查询加载,而不是作为新文件加载。

我不得不完全关闭PHP文件的输出缓存,但在缩短第一字节/响应时间方面似乎找不到任何其他解决方案。这里有人有什么好的建议,使用Wincache或输出缓存来实现我以前的~8ms结果吗?

任何开箱即用的建议也受到高度赞赏!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-05-25 19:19:12

在经历了许多头痛之后,我终于找到了这种缓慢的TTFB的大部分来源。PHP/ is 8的MySQL驱动程序MySQLnd出错了。由于AAAA ( IPv6 )记录优先于A (IPv4)记录,“localhost”将返回IPv6地址。而且,由于PHP中的MySQL驱动程序(mysqlnd)无法处理IPv6地址,因此在尝试通过IPv4连接之前,它必须先超时。

我把我的TTFB从1400到1800 ms削减到了200到400 ms。已经好多了。其余的我可能可以归因于..css/..js调用和其他事情。

为了解决上面的问题:不要使用'localhost‘,而是使用127.0.0.1或gethostbyname('localhost'),因为这个函数总是返回一个IPv4地址。后者是更好的解决方案,因为有一天您可能希望使用主机名连接到外部MySQL DB。

希望这将有助于其他人与TTFB的问题!

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

https://stackoverflow.com/questions/23857809

复制
相关文章

相似问题

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