Проблема производительности с Apache, PHP и Symfony ~ - PullRequest
0 голосов
/ 21 сентября 2009

Обновлен:

=============================================== =================
Я наконец нашел причину с oprofile. Это было потому, что кеш маршрутизации Symfony. У нас есть много страниц с разными URL-адресами, и Symfony кэширует их в одном файле (сериализованные данные). Таким образом, размер файла кэша увеличивается, и ему требуется больше ЦП для сериализации и десериализации данных.

Все прошло хорошо после того, как я отключил кеш маршрутизации

=============================================== =================

У нас есть три веб-сервера с LVS (Apache 2.11 + PHP 5.26), и мы используем Symfony 1.0 для разработки наших продуктов.

Но недавно мы обновили наши продукты до Symfony 1.2.7, и у нас возникла критическая проблема с производительностью.

Мы используем Ganglia для мониторинга наших серверов. До обновления средняя загрузка веб-серверов не превышала 1; После обновлений нагрузка резко возрастает с нагрузкой 80 на вершине (я вижу, что загрузка ЦП значительно увеличивается от Ganglia).

Я не могу найти причины. Это потому, что платформа Symfony? (Но, по мнению Ganglia, нагрузка не должна увеличиваться так быстро).

Кстати, в наших новых продуктах используется много AJAX, что означает, что для открытия одной страницы требуется не менее 5-7 запросов PHP. Это причина?

Кто-нибудь может помочь мне найти все возможные причины? Или какую еще информацию я должен предложить для диагностики?

Заранее спасибо и с нетерпением ждем вашего ответа ~

Ответы [ 2 ]

1 голос
/ 21 сентября 2009

Вы должны использовать profiler , чтобы найти горячие точки в вашем коде. Это лучший способ точно определить проблемы - все остальное, и вы просто догадаетесь.

0 голосов
/ 21 сентября 2009

Пожалуйста, убедитесь, что каталог кэша доступен для записи. Вы очистили его после обновления Symfony? Если нет - выполните

symfony cc

из оболочки в папке проекта, чтобы сделать это.

...