Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 25-10-2014 18:16:44

Splyf
Membre
Date d'inscription: 24-10-2013
Messages: 115

zendskeletonApplication très très lent sur un serveur dédié

Bonjour,

J'avais d'écrit mon problème a la suite d'un post précédent mais mon problème deviens spécifique.
J'ai donc un souci de perf avec une application sur un serveur dédié.
Après analyse de mon code, j'ai des chose que je peut optimisé c'est certain. mais ce ne serra pas suffisant car j'ai clairement un souci de configuration coté serveur, et c'est la ou mon souci est spécifique :

j'y est déployé le zendskeletonApplication de base, sans rien changer.
ZendDevelopperTools m'indique qu'il lui faut 350ms pour générer la page !
Si je rajoute 5 a 6 module très courant, les classique DoctrineModule, DoctrineORMModule, ZendCommon, ZfCUser, ZfCrbac...ect, je passe carrément a entre 450ms et 700ms, juste en chargeant les module!

J'ai fait un petit benchmark d'un petit code très simple : il calcule 100 000 X $a = 1+2; . sur une moyen de 1000 test, le serveur est même plus rapide que mon ordi local!
De plus, J'ai d'autre site dessus dont un qui fait entre 3500 et 7000visites/jour, qui tourne a merveille sans aucun accro et sans le zf2 - la page la plus lourde est généré en 300ms alors qu'elle effectue une requête sur une 15aine de table et parcoure dans les 50 000 entrées...la home ce génère en une 100aine de ms.

Donc pour moi c'est quelque chose de zf2 que mon serveur ne veut pas digéré sad.
Ou du moins une fonctionnalité php utilisé souvant par zf2 qui merdouille, peut être.


Ma question est donc: comment faire pour traqué le problème? je ne sais pas du tout ou cherché, mais alors pas du tout. Faut il que je décortique le code complètement ? je ne veut pas installer xDebug car il est très gourmand...a moins qu'on puisse l'activé que sur une application - mais je ne sait pas comment bien l'exploiter sur un serveur distant.

Bref! vous, comment procèderiez vous?

Config du serveur:
1.9mghz dual core
2go de ram
Lamp sous debian, php5.4, apache2, mysql.
Ce n'est pas moi qui est fait l'installe donc je ne sait peut être pas tout...

Je suis preneur de la moindre petite piste ^^

Et les temps d'execution donné par le zendDevelopperTools :

Code:

1. route321.72 ms
File: Mvc/Application.php - Line: 296
Target: Zend\Mvc\Application
 
2. dispatch2.61 ms
File: Mvc/Application.php - Line: 313
Target: Zend\Mvc\Application
 
3. dispatch5.76 ms
File: Controller/AbstractController.php - Line: 117
Target: Application\Controller\IndexController
 
4. render4.29 ms
File: Mvc/Application.php - Line: 352
Target: Zend\Mvc\Application
 
5. renderer785.11 µs
File: View/View.php - Line: 175
Target: Zend\View\View
 
6. renderer.post772.00 µs
File: View/View.php - Line: 185
Target: Zend\View\View
 
7. renderer898.84 µs
File: View/View.php - Line: 175
Target: Zend\View\View
 
8. renderer.post774.15 µs
File: View/View.php - Line: 185
Target: Zend\View\View
 
9. response46.61 ms
File: View/View.php - Line: 216
Target: Zend\View\View
 
10. finish854.02 µs
File: Mvc/Application.php - Line: 353
Target: Zend\Mvc\Application

Hors ligne

 

#2 25-10-2014 22:39:24

Théocrite
Administrateur
Lieu: Dijon, Paris, Edinburgh
Date d'inscription: 23-12-2009
Messages: 609
Site web

Re: zendskeletonApplication très très lent sur un serveur dédié

J'ai pas vraiment d'idée, mais est-ce que ça pourrait venir des accès disques ?

A priori le routing va aller chercher dans plusieurs dossiers différents, ouvrir les fichiers et les garder en mémoire. On sait qu'il n'y a pas de problème de calcul (donc proc+ram). Je n'ai jamais tenté ça, mais pourquoi ne pas essayer un seul gros fichier de conf, optimiser les routes, et voir si ça accelère un peu...

Hors ligne

 

#3 27-10-2014 09:16:51

Splyf
Membre
Date d'inscription: 24-10-2013
Messages: 115

Re: zendskeletonApplication très très lent sur un serveur dédié

Oulala désolé je me suis complètement planté de forum!
Si un modo pouvait me modéré, je sais pas comment je mi suis pris ^^

Ouai j'avais pensé a quelque chose comme sa car ajouter des modules ralanti.
Ok je, je vais tenté sa puis tenter le module EdpSuperLuminal qui rassemble toute l'ap en un seul gros fichier, j'essaye de faire sa dans la journée.

Hors ligne

 

#4 27-10-2014 09:18:43

Théocrite
Administrateur
Lieu: Dijon, Paris, Edinburgh
Date d'inscription: 23-12-2009
Messages: 609
Site web

Re: zendskeletonApplication très très lent sur un serveur dédié

J'avais pas fait gaffe à la catégorie dans laquelle tu as posté smile Je viens de déplacer !

Hors ligne

 

#5 27-10-2014 10:56:45

Splyf
Membre
Date d'inscription: 24-10-2013
Messages: 115

Re: zendskeletonApplication très très lent sur un serveur dédié

ok merci smile

Bon alors je pense qu'on est sur la bonne piste.
Pas eu le courage de créer un seul fichier de config, je me suis dit que sa reviendrai au même avec le cache (non?)
'config_cache_enabled'     => true,
'module_map_cache_enabled' => true
...ect

pas de changement notable,
en revanche, avec EdpSuperLuminal, c'est un gain de 150 ms ou presque, bien que se  ne sois pas encore très satisfaisant (sa fait toujours 300ms avec tout les module).

j'ai donc tenter différent benchmark que j'ai conparer a ma machine local:
100 000 x $a = 1+4
local : 30ms - serveur : 21ms

100 000 x $a = 5 / 4
local : 29ms - serveur 37ms

100 000 x if(1 > 4)
local : 20ms - serveur 25ms

1000 x require('req') , ou rec est un fichier texte vide.
local : 2ms ...serveur : 77 ms !!!!

( ces résultat sont des moyen faite sur une 100aine de test)

Alors que ma machine local est plus rapide  de 0.2 a 0.5 X pour la plus-pars des type d'opération, la fonction require est plus de 30x plus long sur mon serveur. bien que le serveur sois même plus rapide pour les additions ^^

what do you think?
Quel autre type de test pourrai-je faire pour confirmé la chose?

Je cherche déjà une explication pour la lenteur de ce require !

EDIT / PS : le sujet n'est toujours pas dans le bon forum, j'ai oublié de préciser  mals c'est sur zf2 et non zf1 ^^

Dernière modification par Splyf (27-10-2014 12:35:12)

Hors ligne

 

#6 29-10-2014 16:15:54

Splyf
Membre
Date d'inscription: 24-10-2013
Messages: 115

Re: zendskeletonApplication très très lent sur un serveur dédié

Bon, j'avance...un peut.

J'ai fini par installer xhprof sur le serveur, avec XH GUI.
L'avez vous déjà utilisé?
Dans le camembère ou il affiche les fonction les plus gourmande, j'ai une tranche qu'il nome "Loading".
Elle prend dans les 200ms sans module, et jusqu'a 450ms avec des module a charger. Mais je n'est trouver aucune documentation sur ce a quoi cela correspond...elle n’apparaît pas dans le tableau de fonction en dessous.

Sur les autre site, le "Loading" dans le camambère est présent, mais ne prend que 50ms. kécecé?

Hors ligne

 

#7 29-10-2014 16:47:30

Splyf
Membre
Date d'inscription: 24-10-2013
Messages: 115

Re: zendskeletonApplication très très lent sur un serveur dédié

OK je sais a quoi correspond ce "Loading", en faite c'est le regroupement de tout les appelle commençant par Load:: ...
j'ai l 'impression que cela correspond a la directive "use", car dans le tableau des fonction, j'en trouve 550 du type

load::{nom-dune-classe}
comme par exemple load::Query/Parser.php.

En local, l'ensemble de ces appel prenne a pêne 10ms :s
Pourtant, utiliser le module EdSuperLuminal n'a pas changer grand chose :s

plz help *.*

Dernière modification par Splyf (29-10-2014 16:50:25)

Hors ligne

 

#8 30-10-2014 01:20:09

Orkin
Administrateur
Lieu: Paris
Date d'inscription: 09-12-2011
Messages: 1253

Re: zendskeletonApplication très très lent sur un serveur dédié

Plop là pour le coup la piste du disque qui est lent semble se confirmer.

Hors ligne

 

#9 30-10-2014 10:18:30

Splyf
Membre
Date d'inscription: 24-10-2013
Messages: 115

Re: zendskeletonApplication très très lent sur un serveur dédié

J'ai fait un test hdparm :
serveur :
Timing cached reads:   1548 MB in  2.00 seconds = 773.56 MB/sec
Timing buffered disk reads: 348 MB in  3.01 seconds = 115.54 MB/sec

local :
Timing cached reads:   3044 MB in  2.00 seconds = 1521.92 MB/sec
Timing buffered disk reads: 266 MB in  3.01 seconds = 88.35 MB/sec

(test exécuté 2 ou 3 foi) comme conseillé. Je ne sais pas du tout comment interprété ces résultat, le cache est plus lent, l'autre plus rapide?

Quel autre test puis -je faire ?

Comment savoir si c'est matériel ou logiciel? C'est un serveur dédié chez OVH.

Hors ligne

 

#10 30-10-2014 12:53:27

Splyf
Membre
Date d'inscription: 24-10-2013
Messages: 115

Re: zendskeletonApplication très très lent sur un serveur dédié

Bon alors la je commence a vraiment me demandez si sa valait le coup de passé autant de temps a me formé sur ce framework.
J'ai tenter de déployé le skelettonApplication sur le dédié perso d'un collègue. C'est la même configuration, la même offre prise chez OVH.

Et j'ai les même résulat. Enfin, sur ce serveur php est seulement a la version 5.3 et j'ai du retourné a zf2.2.x...mais en local je n'est pas d'écart de perf entre les deux version.

3 possiblité:
- l'offre de base des serveur d'OVH est vraiment nul
- il y a le même problème de config sur les deux serveur
- il faut une machine puissante pour obtenir des performance satisfaisante avec ZF2.

Je sais qu'un framework php est toujours un peut lourd, et zf2 n'a pas très bonne réputation sur ce points... néanmoins, je croyait qu'il était fait pour tourné sur n'importe quel machine...

400ms pour l'app de base, et 600 a 750ms avec des module de base, c'est pour moi tout simplement inutilisable. Je veut bien que mon application qui tourne entre 1.5s et 2s sur ce serveur est grand besoins d’optimisation, mais je ne pense pas arrivez en dessous des 400ms du zendSkeletton. pour moi une page simple qui met 200ms c'est déjà lourd.
Et si il me faut un proc de 3ghz et 6go de ram pour avant des performance satisfaisante avec un site qui fait 15000 visites / jours, le temps  et la maintenabilité  gagné en développement n'en vaut pas la chandelle.

Si vous pouviez me rassurer sur ce points...

Hors ligne

 

#11 30-10-2014 15:41:20

Orkin
Administrateur
Lieu: Paris
Date d'inscription: 09-12-2011
Messages: 1253

Re: zendskeletonApplication très très lent sur un serveur dédié

Non tu n'as pas besoin d'avoir un serveur sur-puissant. Perso j'ai un site qui tourne sur un hébergement mutualisé qui met entre 500 ms et 1s pour afficher une page sachant que le site est pas tip top niveau opti, qu'on est sur un dédié et que j'ai pas mal d'appels en bdd.
J'en avais un autre qui tournais sur un serveur avec 1ghz et 2go de ram et ça passait tranquille, j'étais à environ 200ms pour afficher les pages. Donc il doit y avoir un problème quelque part sur leurs serveurs.
As-tu essayé d'activer APC ?

Hors ligne

 

#12 31-10-2014 09:44:50

Splyf
Membre
Date d'inscription: 24-10-2013
Messages: 115

Re: zendskeletonApplication très très lent sur un serveur dédié

bin 500 et 1s c'est beaucoup nan? Sur un dédié ou un mutu j'ai pas compris? ^^
Moi c'est sa qui m'étonne j'ai de bonne perf sur des mutualisé, mais en même temps les mutu partage les ressources de gros serveur avec d'autre, temps que y'a de la puissance a fournir.

Il s'uffit d'activer Apc pour que sa marche? Rien besoin de faire niveau configuration dans zf? (les doc que je trouve parle de mettre en cache des objet dans notre propre code mais pas pour le reste :s ) Je fait un truck et j'essaye de l'installer direct après.

Pour un petit site sa me dérange pas trop qu'il sois un peut lent, mais je me fait vraiment beaucoup de souci pour la refonte entière d'un projet qui doit tourné sur ce serveur et qui va devoir afficher beaucoup de page à chaque minute hmm

Hors ligne

 

#13 31-10-2014 10:50:33

Orkin
Administrateur
Lieu: Paris
Date d'inscription: 09-12-2011
Messages: 1253

Re: zendskeletonApplication très très lent sur un serveur dédié

En gros sur le mutualisé je suis entre 500ms et 1 seconde et sur le dédié 200 ms.
Non apc c'est un cache d'opcode, ça s'active avec php il y a juste un paramètre à configurer mais c'est dans le fichier .ini.
Après tu peux stocker aussi des choses dedans mais dans ton cas c'est plus mettre le framework en cache qui est intéressant.

Hors ligne

 

#14 31-10-2014 10:53:06

Théocrite
Administrateur
Lieu: Dijon, Paris, Edinburgh
Date d'inscription: 23-12-2009
Messages: 609
Site web

Re: zendskeletonApplication très très lent sur un serveur dédié

Je suis loin d'être expert en caches, mais pourquoi ne pas utiliser Zend Opcache (intégré à PHP 5.5) au lieu d'installer APC en plus ?
https://www.digitalocean.com/community/ … nd-php-fpm

Hors ligne

 

#15 31-10-2014 11:01:50

Orkin
Administrateur
Lieu: Paris
Date d'inscription: 09-12-2011
Messages: 1253

Re: zendskeletonApplication très très lent sur un serveur dédié

Ca doit fonctionner aussi sauf que j'ai cru voir qu'il était en php 5.3 smile.

Hors ligne

 

#16 31-10-2014 11:04:10

Théocrite
Administrateur
Lieu: Dijon, Paris, Edinburgh
Date d'inscription: 23-12-2009
Messages: 609
Site web

Re: zendskeletonApplication très très lent sur un serveur dédié

Ah oui, en fait non... Premier post : PHP 5.4 smile

Ben voilà, faut mettre à jour et utiliser l'opcache de 5.5 alors !
http://php.net/supported-versions.php

Hors ligne

 

#17 31-10-2014 18:40:21

Splyf
Membre
Date d'inscription: 24-10-2013
Messages: 115

Re: zendskeletonApplication très très lent sur un serveur dédié

Voua! ok Apc  c'est mieux ! je suis passé a 150ms, et mon App a gagné 500 / 700 ms yikes
Oh joie smile 
Pfffouu c'est rassurant. jamais eu besoin d'utilisé un cache avant d’utiliser un framework php, du coup à par vaguement de nom je n'en connaissait pas vraiment l’existence. Ce qui est étonnant c'est que je ne constate pas de différence notable sur les autre sites hébergé. Comment sa se fait?

En tout cas,  sa devrai être précisé dans la doc de zf dès la page d’installation  !!
l'opCache du 5.5 est plus efficace? on peut l’additionné a Apc?

Hors ligne

 

#18 01-11-2014 00:31:12

Orkin
Administrateur
Lieu: Paris
Date d'inscription: 09-12-2011
Messages: 1253

Re: zendskeletonApplication très très lent sur un serveur dédié

Ca sert à rien d'avoir 2 caches d'opcode c'est soit opcache soit apc mais les 2 ensemble je suis pas sûr que ça soit très bon.
Tu n'es pas obligé d'en utiliser un avec un framework ça fonctionne très bien sans smile.

Hors ligne

 

#19 01-11-2014 00:42:11

Théocrite
Administrateur
Lieu: Dijon, Paris, Edinburgh
Date d'inscription: 23-12-2009
Messages: 609
Site web

Re: zendskeletonApplication très très lent sur un serveur dédié

D'après Engineyard, Zend OpCache est plus puissant qu'APC, mais ne fait "que" opcache.

Par ailleurs, je ne sais pas si tu as la possibilité de mettre à jour ton PHP, mais honnêtement des optimisations sont faites entre chaque versions, donc passe en 5.6... Si tu ne peux pas mettre à jour mais que tu as un controle total sur le serveur, jette un oeil sur Docker.

Hors ligne

 

#20 01-11-2014 17:07:21

Splyf
Membre
Date d'inscription: 24-10-2013
Messages: 115

Re: zendskeletonApplication très très lent sur un serveur dédié

Bon ba allez op on fait passé tout sa a 5.6 lundi.

Orkin a écrit:

Tu n'es pas obligé d'en utiliser un avec un framework ça fonctionne très bien sans smile.

Donc pour toi les perf du zend que j'ai sur ce serveur ne sont tout de même pas normal, avec ou sans cache?

Perdu beauuucoup trop de temps la dessus, avec le cache et un poile d'opti sa va le faire bien que se ne sois pas très satisfaisant... de toute façons en janvier on va chopé une serveur dualcore 2ghz avec 16go de ram, et ce pour le même prix / mois que le précédent xD. Au moins on repartira sur une installe propre.
On élucide pas le problème en prenant un truck plus puissant mais pour le même prix sa serrai idiot de ce priver ^^
donc d'ici la on va dire que sa va le faire.
Mais Je n'aime pas me dire qu'il y a peut être quelque chose qui cloche encore et que je ne le saurai jamais >.<

Hors ligne

 

#21 02-11-2014 00:11:14

Théocrite
Administrateur
Lieu: Dijon, Paris, Edinburgh
Date d'inscription: 23-12-2009
Messages: 609
Site web

Re: zendskeletonApplication très très lent sur un serveur dédié

Tu peux essayer de faire tourner le site sur un VPS pour voir, t'en prends un petit juste pour un mois, install de LAMP propre et tout... Je te conseille de te tourner vers Digital Ocean pour faire le test, je te mets un lien de referal juste en dessous pour que tu ai 10$ pour faire ton test (et moi 25$ dollars apparemment).

S'inscrire sur Digital Ocean avec 10$ de crédits

Hors ligne

 

#22 04-11-2014 16:55:21

Splyf
Membre
Date d'inscription: 24-10-2013
Messages: 115

Re: zendskeletonApplication très très lent sur un serveur dédié

Cool merci !
Mais je vais devoir reporter sa a plus tard car je suis a la boure maintenant pour plein de truck.

Je ne met pas encore résolut au cas ou je trouve le temps de me replongé sur le problème et vous dire ce qui cloche!
c'est toujours bien de connaitre la source d'un souci, même si on a des solutions qui se présente sans

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages