2016-04-04 187 views
1

我有一个基本(小)层Azure Web应用程序在西欧托管在同一地区的基本SQL数据库。始终打开。请注意,我的网站的目标受众是在欧洲。Azure web应用程序缓慢服务器响应时间

请注意,该网站是CodeIgniter的基础上运行php 5.6

即使在本地环境中一切都很快,页面加载确实很慢。在我的网站上运行PageSpeed Insights后,我得到了如下评价:

减少服务器的响应时间 在我们的测试中,服务器1.7秒内做出响应。有很多因素会降低您的服务器响应时间。请阅读我们的建议,了解如何监控和测量服务器花费的最多时间。

当从developer tools检查网站,我收到了类似的景象: enter image description here

正如你可以看到最初的反应是非常糟糕的。可能是什么问题呢?

UPDATE /解决方案

从意见考虑的Gary Liu - MSFT的建议,即允许在database.php页面的加载时间下楼0.23pconnect,这是一个〜8倍改善。

+0

这是因为你的SQL数据库。一个基本的SQL数据库很慢。您可以将SQL数据库扩展为标准,或者如果您的应用程序相对静态,则可以使用Redis缓存。 –

+0

我认为它是不正确的以推断出事实的结论 – TheGameiswar

+0

将数据库升级到标准后,延迟降低到1.4。考虑到我对[西欧数据中心](http://www.azurespeed.com/)的延迟大约为100毫秒,这是非常微小的变化。我如何测量Web应用程序和数据库之间的延迟? – Pio

回答

0

在CI框架中,如果您正在运行prod应用程序,我们可以在config/database.php中将pconnect设置为true以使用到数据库的持久连接。这可以减少初始连接的延迟。顺便说一句,如果你正在运行一个测试或开发应用程序,我们需要认真对待这个设置,因为它可能会导致一些意想不到的问题。您可以参考Advantages/Disadvantages of pconnect option in CodeIgniter的答案获取更多信息。

2

我发现实体框架是长初始(冷启动)响应的罪魁祸首。从超时禁用IIS没有帮助,我认为必须有某种EF pooling \ memory超时未公布。

您可以关闭数据库版本控制的一些EF检查,并尝试使用预编译视图有一点帮助。在Azure连接到预制数据库时,我仍然非常不满意EF的启动时间。预先启动时间大约为1秒,但我没有做任何事情可以在约10-12秒的预启动时间内启动我的云。我已经得出结论,在网络上有很多网络开销,我怀疑使用Azure SQL也会带来很多网络开销,因为它是面向公众的。

+0

好点,但代码是在PHP 5.6中,我将更新问题和代码。 – Pio

相关问题