variable de session combien un serveur peut en supporter?

webmasterdemonsite
WRInaute passionné
WRInaute passionné
 
Messages: 1095
Inscription: 31 Aoû 2007

variable de session combien un serveur peut en supporter?

Message le Sam Oct 17, 2009 16:44

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 ;-)

jcaron
WRInaute accro
WRInaute accro
 
Messages: 2687
Inscription: 13 Fév 2004

Re: variable de session combien un serveur peut en supporter?

Message le Sam Oct 17, 2009 17:55

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.

webmasterdemonsite
WRInaute passionné
WRInaute passionné
 
Messages: 1095
Inscription: 31 Aoû 2007

Re: variable de session combien un serveur peut en supporter?

Message le Sam Oct 17, 2009 18:10

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 ;-)

jcaron
WRInaute accro
WRInaute accro
 
Messages: 2687
Inscription: 13 Fév 2004

Re: variable de session combien un serveur peut en supporter?

Message le Sam Oct 17, 2009 18:40

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.

webmasterdemonsite
WRInaute passionné
WRInaute passionné
 
Messages: 1095
Inscription: 31 Aoû 2007

Re: variable de session combien un serveur peut en supporter?

Message le Sam Oct 17, 2009 20:36

encore merci

jcaron a écrit: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...


gros gros projet qui va me prendre 1 an ou 2 de boulot... :wink:


Leonick
WRInaute accro
WRInaute accro
 
Messages: 19599
Inscription: 8 Aoû 2004

Re: variable de session combien un serveur peut en supporter?

Message le Sam Oct 17, 2009 21:01

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 ?

webmasterdemonsite
WRInaute passionné
WRInaute passionné
 
Messages: 1095
Inscription: 31 Aoû 2007

Re: variable de session combien un serveur peut en supporter?

Message le Dim Oct 18, 2009 9:04

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

jcaron
WRInaute accro
WRInaute accro
 
Messages: 2687
Inscription: 13 Fév 2004

Re: variable de session combien un serveur peut en supporter?

Message le Dim Oct 18, 2009 11:13

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.

webmasterdemonsite
WRInaute passionné
WRInaute passionné
 
Messages: 1095
Inscription: 31 Aoû 2007

Re: variable de session combien un serveur peut en supporter?

Message le Dim Oct 18, 2009 15:48

whouaou ! merci encore mille fois!

comment connais tu tout ceci ?

vraiement merci pour toutes tes réponses !

bonne fin de dimanche

jcaron
WRInaute accro
WRInaute accro
 
Messages: 2687
Inscription: 13 Fév 2004

Re: variable de session combien un serveur peut en supporter?

Message le Dim Oct 18, 2009 16:07

C'est marqué dans la doc :-)

Jacques.


julienr
WRInaute impliqué
WRInaute impliqué
 
Messages: 913
Inscription: 5 Aoû 2003

Re: variable de session combien un serveur peut en supporter?

Message le Lun Oct 19, 2009 8:15

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

webmasterdemonsite
WRInaute passionné
WRInaute passionné
 
Messages: 1095
Inscription: 31 Aoû 2007

Re: variable de session combien un serveur peut en supporter?

Message le Dim Nov 01, 2009 11:43

bonjour
julienr a écrit: c'est plus qu'un conseil de mettre les sessions en base


que signifie "mettre les sessions en base" ?

bon week end


julienr
WRInaute impliqué
WRInaute impliqué
 
Messages: 913
Inscription: 5 Aoû 2003

Re: variable de session combien un serveur peut en supporter?

Message le Lun Nov 02, 2009 9:19

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...

webmasterdemonsite
WRInaute passionné
WRInaute passionné
 
Messages: 1095
Inscription: 31 Aoû 2007

Re: variable de session combien un serveur peut en supporter?

Message le Lun Nov 02, 2009 9:42

merci julienr !


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités