6

我一直在从事一个新的工作项目,并且遇到了一个奇怪的问题,即我的应用程序需要很长时间才能在 dev 和 prod 中返回响应。但是有时它会很快返回响应。我在这里阅读了一些关于可能原因的帖子,但没有一个能解决我的问题。

起初我以为是因为我提出了一些子请求,所以我删除了这些请求,但仍然有同样的问题。

我在 DEV 中的平均请求仅在 20-30MB 之间。我正在尝试使用分析器来帮助我找出这可能来自哪里,但是每个请求它都显示请求中最长的部分是不同的区域。例如,在一个请求中,最长的部分是控制器,在另一个对同一页面的请求中,它是模板侦听器,在另一个请求中,它是安全/防火墙侦听器。

例如,我主页上的快速请求大约需要 116 毫秒。我等了一会儿,刷新它需要 9467 毫秒,甚至我看到它需要 30,000 多毫秒。

虽然我可以在开发模式下稍微慢一点,但 prod 也在做同样的事情。有时快,有时慢。APC 缓存已启用。一般来说,我的学说查询只需要 4-20 毫秒就可以完成,具体取决于页面。

我正在运行 PHP 5.3,但决定升级到 5.4 看看是否有帮助,仍然是同样的问题。我正在使用 nginx 的最新稳定版本。FPM 中的 PHP。服务器正在运行其他没有问题的网站——magento 和 symfony 1.4 Web 应用程序都没有这样的问题。

服务器是四核双核,32GB 内存,所以我有很多资源。在我发出请求时观察进程,我没有看到异常的 cpu 或内存负载。

我还没有尝试在另一台机器上运行该应用程序 - 但我不明白为什么我的所有其他应用程序都可以正常工作,而这个是唯一一个遇到这种缓慢的应用程序。我今晚可能会对此进行测试,但我想看看是否有人以前遇到过这样的问题。

当请求需要很长时间时,以下是我的分析器的一些快照:

在此处输入图像描述


在此处输入图像描述


在此处输入图像描述


在此处输入图像描述


这是请求按预期速度快的两个

在此处输入图像描述 在此处输入图像描述

这是我的 composer.json

{
    "name": "spliced/commerce",
    "minimum-stability": "dev",
    "description": "",
    "autoload": {
        "psr-0": { "": "src/" }
    },
    "require": {
        "php": ">=5.3.3",
        "symfony/symfony": "2.2.*",
        "doctrine/orm": "2.4.*",
        "doctrine/doctrine-bundle": "1.2.*",
        "twig/extensions": "1.0.*@dev",
        "symfony/swiftmailer-bundle": "2.2.*",
        "symfony/monolog-bundle": "2.2.*",
        "sensio/distribution-bundle": "2.2.*",
        "sensio/framework-extra-bundle": "2.2.*",
        "sensio/generator-bundle": "2.2.*",
        "jms/security-extra-bundle": "1.4.*",
        "jms/di-extra-bundle": "1.3.*",
        "symfony/assetic-bundle": "2.1.*",
        "kriswallsmith/assetic": "1.1.*@dev",
        "vbardales/multiple-app-kernel-bundle": "dev-master",
        "avalanche123/imagine-bundle": "v2.1",
        "knplabs/knp-menu-bundle" : "dev-master",
        "knplabs/knp-paginator-bundle": "dev-master",
        "knplabs/knp-components": "*",
        "symfony-cmf/routing-extra-bundle": "*",
        "stof/doctrine-extensions-bundle" : "dev-master",
        "facebook/php-sdk": "3.2.*",
        "kertz/twitteroauth" : "*",
        "adoy/oauth2" : "dev-master",
        "guzzle/guzzle" : "dev-master",
        "knplabs/knp-snappy-bundle": "dev-master",
        "symfony-cmf/routing-extra-bundle" : "*",
        "floriansemm/solr-bundle": "dev-master"
    },
    "require-dev": {
        "zendframework/zendframework": "dev-master",
        "elao/web-profiler-extra-bundle" : "dev-master"
    },
    "repositories": {
        "goutte": {
            "type": "package",
            "package": {
                "name": "fabpot/goutte",
                "version": "dev-master",
                "source": {
                    "type": "git",
                    "url": "git://github.com/fabpot/Goutte.git",
                    "reference": "master"
                },
                "autoload": {
                    "psr-0": {
                        "Goutte": "src/"
                    }
                }
            }
        }
    },
    "scripts": {
        "post-install-cmd": [
            "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap",
            "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache",
            "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets",
            "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile"
        ],
        "post-update-cmd": [
            "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap",
            "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache",
            "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets",
            "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile"
        ]
    },
    "config": {
        "bin-dir": "bin"
    },
    "extra": {
        "symfony-app-dir": "commons",
        "symfony-web-dir": "web",
        "branch-alias": {
            "dev-master": "2.2-dev"
        }
    }
}
4

1 回答 1

5

我请您参考另一个(相同)问题的答案:

symfony 性能问题

我想你应该在 PHP.ini 中将这两个参数设置为比默认值高得多的值,即

realpath_cache_size = 4096k 
realpath_cache_ttl = 7200
于 2016-11-27T16:15:07.897 回答