IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Symfony PHP Discussion :

Avoir une limite mémoire différente sur le backend [1.x]


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Avatar de pmithrandir
    Homme Profil pro
    Responsable d'équipe développement
    Inscrit en
    Mai 2004
    Messages
    2 419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Responsable d'équipe développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 419
    Par défaut Avoir une limite mémoire différente sur le backend
    Bonjour

    Mon serveur est configuré pour allouer 32 MO de mémoire à tous mes scripts. Ca marche tout à fait pour le frontend qui a des pages très simples.

    En revanche, pour le backend, j'ai souvent besoin de 64 ou 128MO de mémoire vive, voir 256 dans le cas d'un import depuis Excel. (quelques millions d'objets à insérer dans la BDD)

    Est-il possible, par quelque moyen que ce soit d'attribuer une limite de mémoire différente pour le backend et le frontend ?

    En effet, je ne suis plus sur ma machine personnelle et la mémoire coute cher en production. Surtout que si je met 64Mo, je dois doubler celle ci pour garder le même nombre d'utilisateurs simultanés.

    J'ai essayé dans le fichier backend.php de faire ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
        ini_set('memory_limit','256M');
    mais a priori sans succès.

    Est ce que vous voyez une autre solution ?
    Pierre

  2. #2
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2008
    Messages
    26 772
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2008
    Messages : 26 772
    Par défaut


    Il faut changer la configuration de PHP (php.ini) pour ça, si la solution ini_set dans le contrôleur principal ne fonctionne pas.
    Vous souhaitez participer aux rubriques Qt (tutoriels, FAQ, traductions) ou HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  3. #3
    Membre Expert
    Avatar de pmithrandir
    Homme Profil pro
    Responsable d'équipe développement
    Inscrit en
    Mai 2004
    Messages
    2 419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Responsable d'équipe développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 419
    Par défaut
    Citation Envoyé par dourouc05 Voir le message


    Il faut changer la configuration de PHP (php.ini) pour ça, si la solution ini_set dans le contrôleur principal ne fonctionne pas.
    Bonjour,
    Merci,
    Si je fais ca, j'aurais cette limite dans tous mes scripts, ce que je ne veux pas.

  4. #4
    Membre Expert
    Avatar de pmithrandir
    Homme Profil pro
    Responsable d'équipe développement
    Inscrit en
    Mai 2004
    Messages
    2 419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Responsable d'équipe développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 419
    Par défaut
    Bon, donc j'ai trouvé une solution.

    Définir la limite mémoire globale dans le php.ini ou le htaccess a la valeur maximum a atteindre. Pour moi 256M

    Ensuite, éditer le fichier index.php et frontend_dev.php et ajouter ceci au début :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ini_set('memory_limit','32M');
    C'est exactement ce que je veux.

    A la rigueur, mettre un peu plus pour frontend_dev parce que la webdebug bar bouffe pas mal de mémoire.

  5. #5
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Par défaut
    Peut être que revoir certaines portions de code et la manière dont elles gèrent la mémoire pourrait aussi diminuer l'occupation mémoire et améliorer la durée des traitements...

  6. #6
    Membre Expert
    Avatar de pmithrandir
    Homme Profil pro
    Responsable d'équipe développement
    Inscrit en
    Mai 2004
    Messages
    2 419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Responsable d'équipe développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 419
    Par défaut
    En fait, c'est dans le backend uniquement que ca arrive, donc les optimisation ne sont pas trop "vendable" alors qu'il y a une seule connection simultanée dessus en général.

    En plus, c'est le baackend généré par symfony qui nous donne ce resultat.

    Par ailleur, étant donné qu'il est impossible sous doctrine de libérer les objets créé en mémoire(j'ai testé toutes les méthodes soi disant efficace, qui en fait libère 1% au mieux de la mémoire), il n y a pas grand chose a faire quand on insère quelques millions d'objets dans un script... ou alors je n'en ai pas vu la couleur sur les sites que je connais sur symfony.

    Aurais tu ce genre de site qui pourrait me fournir de l'aide ?

    Enfin, en attendant, si quelqu'un se pose la question, ca permet d'avoir un bon nombre de connections simultanées sur le frontend, sans handicaper le backend ou surdimensionner le serveur.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 07/08/2014, 08h29
  2. Je cherche a avoir 2 tri différents sur une même colonne
    Par snooky147 dans le forum Requêtes
    Réponses: 0
    Dernier message: 06/12/2013, 23h21
  3. Réponses: 3
    Dernier message: 02/09/2013, 17h39
  4. Comment placer une limite de temps sur l'utilisation
    Par biboulou dans le forum VB.NET
    Réponses: 4
    Dernier message: 27/01/2012, 06h55
  5. Réponses: 3
    Dernier message: 11/08/2009, 09h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo