2009-09-21 7 views
0

Mise à jour:Problème de performance avec Apache, PHP et Symfony ~

================================ ===================================
J'ai finalement trouvé la raison avec oprofile. C'était parce que le cache de routage de Symfony. Nous avons beaucoup de pages avec différentes URLs et symfony les met en cache dans un fichier (données sérialisées). Ainsi, le fichier cache devient volumineux et nécessite plus de CPU pour sérialiser et désérialiser les données.

Tout allait bien après avoir désactivé le cache de routage

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

Nous avons trois serveurs web avec LVS (Apache 2.11 + PHP 5.26), et nous utilisons Symfony 1.0 pour le développement de nos produits.

Mais récemment nous avons mis à jour nos produits avec Symfony 1.2.7 et nous avons eu un problème de performance critique. Nous utilisons Ganglia pour surveiller nos serveurs. Avant les mises à jour, la charge moyenne des serveurs Web est inférieure à 1; Après les mises à jour, la charge augmente considérablement avec la charge 80 en haut (je peux voir que l'utilisation du processeur augmente beaucoup de Ganglia).

Je ne trouve pas les raisons. Est-ce parce que le framework Symfony? (Mais selon Ganglia, la charge ne devrait pas augmenter si rapidement). Par ailleurs, dans nos nouveaux produits, beaucoup de AJAX sont utilisés, ce qui signifie qu'il y a au moins 5-7 demandes PHP pour ouvrir une page. Est-ce la raison?

Tout le monde peut m'aider à trouver toutes les raisons possibles? Ou quoi d'autre information devrais-je offrir à diagnostiquer?

Merci à l'avance et attendons avec impatience votre réponse ~

+0

Je vous devriez aller à serverfault.com, ils sont meilleurs que nous sur les problèmes de serveur. –

Répondre

1

Vous devez utiliser un profiler pour trouver les points chauds dans votre code. C'est la meilleure façon de cerner les problèmes - tout le reste, et vous ne faites que deviner.

+0

Je viens d'installer oprofile, et quelle est la prochaine étape? Y a-t-il un guide spécifique? –

+0

Google suggère qu'oprofile est un profileur de système Linux. Si le problème est dans l'application PHP, il vaut mieux passer votre temps à utiliser un profileur PHP, tel que XDebug (auquel je me suis connecté dans ma réponse). – Rytmis

0

Veuillez vous assurer que le répertoire cache est disponible pour l'écriture. L'avez-vous effacé après la mise à jour de symfony? Si ce n'est pas le cas, exécutez

symfony cc 

depuis le shell dans le dossier du projet pour le faire.