将简单的Symfony应用程序部署到Azure:慢?

时间:2016-05-09 10:42:57

标签: php symfony azure azure-web-sites

上周,我尝试在azure上部署一个简单的symfony应用程序。 我选择计划应用服务B2(2cores / 3.5Go RAM)。 PHP版本:5.6。

首先,它需要永远完成作曲家安装。 (我尝试继续使用S3,它有点快但不是很不一样)。 所以我试图优化php配置,opcache,realpath_cache_size ......等(xdebug已经禁用)。 我甚至试图启用wincache,但没有真正的改进。

所以现在我的应用程序已部署,但它太慢而无法使用。 一个简单的PHP应用程序/控制台(在开发模式下)需要~23secondes。 它似乎每次都重新创建缓存。在我的本地unix环境(类似的规范)中,缓存处于冷态时需要6秒,而当缓存处于热态时需要500毫秒。

measure time php app/console dev mode

我认为主要问题是文件系统问题,因为删除dev缓存文件夹需要16秒。 在我的本地unix环境中,类似的规范,删除相同的文件夹需要大约200ms。

measure time remove dev cache folder

就像我说的那样,我尝试了一个小改进的S3计划,但还不足以解释这种缓慢。 有一件事很奇怪,如果我在完成后重新运行命令php app / console,该命令需要5秒才能运行(更好)。但如果在完成后5秒重新运行它,则需要23秒。

我已经尝试过这些解决方案(即使环境不同): https://stackoverflow.com/a/17021255/6309878

更新:我尝试将symfony app / cache文件夹设置为本地文件系统D:\ local \ cache,但没有改进,可能是最糟糕的。

1 个答案:

答案 0 :(得分:0)

请尝试以下步骤,让我知道它是否可以提高性能 -

1)在您网站的wwwroot目录中,创建一个.user.ini文件(如果它尚不存在)并添加“wincache.fcenabled = 0”。这将禁用Wincache。

2)转到Azure门户并转到应用程序的“应用程序设置”。在“应用程序设置”部分中,添加值为1的“WEBSITES_DYNAMIC_CACHE”。

3)重启网站。