variable de session combien un serveur peut en supporter?

Discussion dans 'Développement d'un site Web ou d'une appli mobile' créé par webmasterdemonsite, 17 Octobre 2009.

  1. webmasterdemonsite
    webmasterdemonsite WRInaute impliqué
    Inscrit:
    1 Septembre 2007
    Messages:
    988
    J'aime reçus:
    0
    bonjour

    je suis en train de develloper un site qui utilisera pas mal de variables de sessions sous forme de tableau du genre:

    $_SESSION['tableau'][x][y]

    ma premiere question:

    est ce que $_SESSION['tableau'][x][y] est considéré comme une seule variable ou plusieurs?


    et surtout:

    combien peut supporter un serveur dédier de variables de sessions?

    imaginons que j'ai 3000 internautes connectés en session et que chacun utilise 4 variables du type $_SESSION['tableau'][x][y]
    (ca fait donc 12000 variables du type $_SESSION['tableau'][x][y] )

    est ce bien raisonnable?

    bon week end ;-)
     
  2. jcaron
    jcaron WRInaute accro
    Inscrit:
    13 Février 2004
    Messages:
    2 579
    J'aime reçus:
    0
    Chaque session est sauvegardée sous forme d'un fichier dans un dossier (genre /tmp, cf session_save_path() pour savoir où exactement sur ton serveur). Evidemment php ne charge que les variables de session correspondant à un utilisateur à la fois (par processus), mais évidemment ça prend plus de temps de désérialiser (et sérialiser à la fin) quelques Mo à chaque requête que quelques dizaines d'octets, donc je pense qu'il vaut mieux que tu restes raisonnable...

    Jacques.
     
  3. webmasterdemonsite
    webmasterdemonsite WRInaute impliqué
    Inscrit:
    1 Septembre 2007
    Messages:
    988
    J'aime reçus:
    0
    salut

    merci, je ne connaissais pas session_save_path() ....

    je vais tester tout ceci, mais effectivement il va falloir que j'y aille molo sur les sessions en forme de tableau

    sinon il y a la solution des cookies et du javascript mais je prefererais m'en passer...

    merci beaucoup de ton aide !

    a+

    bon week end ;-)
     
  4. jcaron
    jcaron WRInaute accro
    Inscrit:
    13 Février 2004
    Messages:
    2 579
    J'aime reçus:
    0
    Ben lis un peu la doc, tu verras, on y apprend plein de choses. C'est par là: http://www.php.net/manual/en/index.php

    Les tableaux ce n'est pas gênant en soi, tout dépend de leur taille. Si tu as quelques valeurs ou quelques dizaines de valeurs, ça ne devrait poser aucun problème. Si tu en as des milliers et plus, ça va commencer à bouffer du CPU, pas forcément pour grand chose (mais comme on ne sait rien de ton appli, c'est difficile à dire).

    Si tu as beaucoup de données, les transmettre dans un ou plusieurs cookies c'est probablement encore pire. Non seulement il va falloir sérialiser/désérialiser tout ça de la même façon, mais en plus à chaque requête (y compris pour les fichiers statiques genres images etc.) le client va te rebalancer ça, et ça chaque fois que tu modifies une variable (ou tout le temps si tu ne sais pas trop s'il y a du changement ou pas) tu dois le rebalancer dans l'autre sens. Ca peut faire beaucoup de bande passante utilisée pour pas grand chose.

    Mais comme déjà dit, comme on n'a aucune idée de ce que tu veux faire, de la quantité de données impliquées, tout ça reste très vague...

    Jacques.
     
  5. webmasterdemonsite
    webmasterdemonsite WRInaute impliqué
    Inscrit:
    1 Septembre 2007
    Messages:
    988
    J'aime reçus:
    0
    encore merci

    gros gros projet qui va me prendre 1 an ou 2 de boulot... :wink:
     
  6. Leonick
    Leonick WRInaute accro
    Inscrit:
    8 Août 2004
    Messages:
    19 274
    J'aime reçus:
    0
    Après, à voir si la session est ce qu'il y a de plus indiqué pour conserver beaucoup de variables. L'internaute aura-t-il besoin de récupérer une partie de ces infos ultérieurement ? si oui, il faudra bien qu'elles soient conservées ailleurs qu'en session, qui a un délai d'expiration assez court.
    Via les cookies, ça n'est pas très sécurisé, en plus, s'il veut pouvoir récupérer ses infos depuis une connexion d'un autre ordinateur ?
     
  7. webmasterdemonsite
    webmasterdemonsite WRInaute impliqué
    Inscrit:
    1 Septembre 2007
    Messages:
    988
    J'aime reçus:
    0
    merci à vous deux,

    je vous embête avec une derniere question ;-) :

    je me demande pourquoi l'acces aux variables de sessions est beaucoup moins long en terme de temps que l'acces aux donnée d'un base mysql5.1 ...

    bon dimanche
     
  8. jcaron
    jcaron WRInaute accro
    Inscrit:
    13 Février 2004
    Messages:
    2 579
    J'aime reçus:
    0
    Variable de session:
    - open
    - read
    - close
    - deserialize

    Accès SQL:
    - ouverture connexion BDD
    - open client
    - accept serveur
    - authentification
    - composer requête
    - envoyer requête client
    - recevoir requête serveur
    - parser requête
    - composer arbre d'exécution
    - exécution
    - open index
    - seeks + reads index
    - close index
    - open heap
    - seeks + reads heap
    - close heap
    - filtres
    - composer réponse
    - write réponse serveur
    - lecture réponse client
    - parser réponse client
    - close serveur
    - close client

    Ceci dit, ça se voit difficilement à l'oeil nu si tes requêtes utilisent des index et tout ça, mais si tu en fais vraiment beaucoup c'est clair que ça se voit. Mais l'utilisation de la bdd te permet:
    - d'avoir des données partagées entre plusieurs utilisateurs
    - de séparer le serveur http du serveur sql
    - d'utiliser plusieurs serveurs sql qui partagent les mêmes données
    - de gérer les propriétés ACID de la base de données
    ...

    Entre les deux, tu peux utiliser des solutions comme memcache qui permettent de mettre en cache partagé les réponses de la bdd, et qui est nettement plus rapide.

    Jacques.
     
  9. webmasterdemonsite
    webmasterdemonsite WRInaute impliqué
    Inscrit:
    1 Septembre 2007
    Messages:
    988
    J'aime reçus:
    0
    whouaou ! merci encore mille fois!

    comment connais tu tout ceci ?

    vraiement merci pour toutes tes réponses !

    bonne fin de dimanche
     
  10. jcaron
    jcaron WRInaute accro
    Inscrit:
    13 Février 2004
    Messages:
    2 579
    J'aime reçus:
    0
    C'est marqué dans la doc :)

    Jacques.
     
  11. julienr
    julienr WRInaute impliqué
    Inscrit:
    5 Août 2003
    Messages:
    939
    J'aime reçus:
    2
    si tu penses accéder à 3000 sessions simultanées à terme, c'est plus qu'un conseil de mettre les sessions en base, 3000 utilisateurs sur un même serveur c'est déjà bcp, alors le faite de centralisé peut te permettre de répartir la charge sur plusieurs serveurs facilement sans avoir à attribuer un serveur particulier à ton client, aussi mysql comme le dit jacques fait tout cela mais généralement qu'une seule fois, lorsque c'est répétitif les plans d'éxéctions et les données sont mise en mémoires et pour cela on peut faire confiance à MySQL
     
  12. webmasterdemonsite
    webmasterdemonsite WRInaute impliqué
    Inscrit:
    1 Septembre 2007
    Messages:
    988
    J'aime reçus:
    0
    bonjour
    que signifie "mettre les sessions en base" ?

    bon week end
     
  13. julienr
    julienr WRInaute impliqué
    Inscrit:
    5 Août 2003
    Messages:
    939
    J'aime reçus:
    2
    salut,

    Ce que j'appelle sauvegarder les sessions en base c'est concrètement utiliser la fonction php session-set-save-handler qui peut te permettre de redéfinir le comportement normal de php vis à vis des sessions c'est à dire de les sauvegarder sous forme de fichier texte sur le serveur, localement. Sauvegarder les sessions en base te permettrait facilement de centraliser celles-ci surtout si par la suite ton application web nécessite plusieurs frontaux. Aussi en utilisant cette fonction tu pourrais parfaitement en fonction de la clé de session optimiser le stockage dans une colonne spécifique de la base de données pour un accès direct et ceci sans sérialisation / désérialisation, and so on...
     
  14. webmasterdemonsite
    webmasterdemonsite WRInaute impliqué
    Inscrit:
    1 Septembre 2007
    Messages:
    988
    J'aime reçus:
    0
Chargement...
Similar Threads - variable session serveur Forum Date
Référencement et variables de session côté serveur Référencement Google 7 Janvier 2008
Est-il possible de simuler une variable de session ? Développement d'un site Web ou d'une appli mobile 30 Décembre 2011
probleme variable session Développement d'un site Web ou d'une appli mobile 13 Juillet 2010
Les variables sessions et le référencement Débuter en référencement 14 Juillet 2009
[réglé][Url rewriting] Enlever les variables de sessions URL Rewriting et .htaccess 5 Mars 2009
url rewritting : probleme de variable de session dans l'URL Référencement Google 15 Décembre 2008
Possible de simuler une variable de session ? Développement d'un site Web ou d'une appli mobile 1 Novembre 2008
variables sessions Débuter en référencement 29 Mars 2008
Transmettre une variable de session? Développement d'un site Web ou d'une appli mobile 10 Février 2008
Problème avec variable session Développement d'un site Web ou d'une appli mobile 17 Janvier 2008
variable de session et cookie introuvabe Développement d'un site Web ou d'une appli mobile 26 Septembre 2007
probleme script allopass et la variable $_SESSION Développement d'un site Web ou d'une appli mobile 6 Octobre 2006
Url rewriting et variable session URL Rewriting et .htaccess 4 Octobre 2006
variable url de session transmise par curl ? Demandes d'avis et de conseils sur vos sites 10 Juillet 2006
TTL des variables de session PHP Développement d'un site Web ou d'une appli mobile 5 Mai 2006
ma variable de session n'est pas initialisé après retour Développement d'un site Web ou d'une appli mobile 23 Avril 2006
Variables de sessions avec <iframe> [RESOLU] Développement d'un site Web ou d'une appli mobile 21 Mars 2006
variable de session $_SESSION Développement d'un site Web ou d'une appli mobile 9 Janvier 2006
Site multilingue - differencié par une variable $_SESSION Référencement international (langues, pays) 17 Octobre 2005
Pb de variable session et référencement Référencement Google 16 Septembre 2005