Symfony2 иногда медленное время отклика разработки и производства

Я работаю над новым проектом для работы и столкнулся со странной проблемой, когда моему приложению требуется много времени, чтобы вернуть ответ как в dev, так и в prod. Однако иногда он возвращает ответ очень быстро. Я прочитал несколько сообщений здесь о возможных причинах, но ни один из них не решил мои проблемы.

Сначала я подумал, что это из-за того, что у меня было несколько дополнительных запросов, поэтому я удалил их, но у меня все еще были те же проблемы.

Мой средний запрос составляет всего 20-30 МБ в DEV. Я пытаюсь использовать профилировщик, чтобы помочь мне понять, откуда это может происходить, однако каждый запрос показывает, что самая длинная часть запроса находится в другой области. Например, в одном запросе самым длинным разделом был контроллер, в другом запросе к той же странице — слушатель шаблона, в другом — прослушиватель безопасности/брандмауэра.

Например, быстрый запрос на моей домашней странице занимает около 116 мс. Я жду минуту, обновляюсь, и это занимает 9467 мс, или даже я видел, что это занимает 30 000+ мс.

В то время как я могу жить с небольшой медлительностью в режиме разработки, prod делает то же самое. Иногда быстро, иногда медленно. Кэш APC включен. Обычно мои запросы доктрины занимают всего 4-20 мс в зависимости от страницы.

Я использовал PHP 5.3, но решил обновиться до 5.4, чтобы посмотреть, поможет ли это, все те же проблемы. Я использую последнюю стабильную сборку nginx. PHP в FPM. На сервере без проблем работают другие веб-сайты - веб-приложения magento и symfony 1.4 без подобных проблем.

Сервер представляет собой четырехъядерный двухъядерный процессор с 32 ГБ оперативной памяти, поэтому ресурсов у меня предостаточно. Наблюдая за процессами, когда я делаю запросы, я не вижу аномальных нагрузок на процессор или память.

Мне еще предстоит запустить приложение на другом компьютере, но я не понимаю, почему все другие мои приложения будут работать нормально, и только это приложение испытывает такую ​​медлительность. Я, вероятно, проверю это сегодня вечером, но я хотел узнать, не сталкивался ли кто-нибудь с такой проблемой раньше.

Вот несколько снимков из моего профилировщика, когда запрос занимает много времени:

введите здесь описание изображения


введите здесь описание изображения


введите здесь описание изображения


введите здесь описание изображения


Вот два случая, когда запрос был быстрым, как и ожидалось

введите здесь описание изображениявведите здесь описание изображения

Это мой композитор.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"
        }
    }
}

person Ghassan Idriss    schedule 02.05.2013    source источник
comment
Я исправил это, и я не знаю, как. Я думаю, что это закончилось проблемой с правами доступа к файлам? Я, честно говоря, не совсем уверен. Это вообще возможно?   -  person Ghassan Idriss    schedule 10.05.2013
comment
Ответ здесь сработал для меня: stackoverflow.com/a/17914570/118593   -  person TautrimasPajarskas    schedule 14.08.2013
comment
это может ответить на вопрос: stackoverflow. ком/вопросы/12905404/   -  person Denes Papp    schedule 28.09.2014
comment
Может быть, ваш профилировщик xdebug включен? Профилирование действительно замедляет работу вашего сервера.   -  person Turdaliev Nursultan    schedule 10.11.2015


Ответы (1)


Я отсылаю вас к ответу на другой (тот же) вопрос:

Проблемы с производительностью Symfony

Я думаю, вы должны установить в PHP.ini эти два параметра на гораздо более высокие значения, чем значения по умолчанию, т.е.

realpath_cache_size = 4096k 
realpath_cache_ttl = 7200
person Grzegorz Krauze    schedule 27.11.2016
comment
Почему он понижен? - person Grzegorz Krauze; 19.12.2016