Simuler un compteur d'accès simultané

Simuler un compteur d'accès simultané - PHP - Programmation

Marsh Posté le 02-07-2006 à 23:10:28    

Salut
 
 
Je cherche un moyen de limiter l'accès à un script PHP dans le temps de la manière la plus economique possible. ( niveau ressources ).
 
Script.php contient beaucoup de SQL et fait environ 700 lignes de codes php uniquement.
 
Je m'explique :  N utilisateurs arrivent à un instant T sur la page script.php.  
 
1er soucis Gerer les N utilisateurs directement ( en parcourant script.php de haut en bas ) risque de tuer le serveur
2eme soucis Les utilisateurs qui vont lancer divers client multithread qui vont certainement boucher l'accès aux ressources ( bruteforce etc ... )
 
 
 
Vos suggestions seraient vraiment tres appréciées.

Reply

Marsh Posté le 02-07-2006 à 23:10:28   

Reply

Marsh Posté le 03-07-2006 à 07:55:04    

je pose un drapeau. [:spamafote]

Reply

Marsh Posté le 03-07-2006 à 08:04:09    

Enregistrement de chaque connection dans une table en BDD avec un timeout, et tu fais des count et des delete dans cette table
 
tu defini toi même le nombre max de personnes qui doivent arrier sur cette page [:spamafote]
 
 
Je me trompe ou mon idée est tordue

Reply

Marsh Posté le 03-07-2006 à 10:39:45    

gatsu35 a écrit :

Enregistrement de chaque connection dans une table en BDD avec un timeout, et tu fais des count et des delete dans cette table
 
tu defini toi même le nombre max de personnes qui doivent arrier sur cette page [:spamafote]
 
 
Je me trompe ou mon idée est tordue


 
Non à 1ere vue ca me semble être la solution la plus pratique.
 
Après ya ptet moyen de gérer ton serveur web pour lui interdire d'interprêter (ou d'afficher des pages) au delà d'un certain nombre de connections simultanées mais bon c'est une autre histoire.

Reply

Marsh Posté le 04-07-2006 à 00:11:53    

Ca me parait bizarre ... 700 lignes c'est pas insurmontable non plus ...  
Y'a pas moyen d'optimiser tout ça ? Quel est la nature des traitements sql ? On doit forcement faire ces requetes à chaque visiteur, y'a pas moyen de mettre ça en bash ??


---------------
"L'informatique n'est pas plus la science des ordinateurs que l'astronomie n'est celle des télescopes." Michael R. Fellows & Ian Parberry
Reply

Marsh Posté le 04-07-2006 à 07:01:35    

Ricco a écrit :

Ca me parait bizarre ... 700 lignes c'est pas insurmontable non plus ...  
Y'a pas moyen d'optimiser tout ça ? Quel est la nature des traitements sql ? On doit forcement faire ces requetes à chaque visiteur, y'a pas moyen de mettre ça en bash ??


 
+1 :heink:


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 05-07-2006 à 12:39:28    

Ricco a écrit :

Ca me parait bizarre ... 700 lignes c'est pas insurmontable non plus ...  
Y'a pas moyen d'optimiser tout ça ? Quel est la nature des traitements sql ? On doit forcement faire ces requetes à chaque visiteur, y'a pas moyen de mettre ça en bash ??


 
J'utilise déjà la solution SQL cité par gatsu pour le compteur ( temps simultané = temps pour faire les instructions insert puis delete ).
 
Pour l'optimisation j'utilise ob ainsi que le gzip pour renvoyer la ressource. Dans ce script je n'utilise plus les fonctions, plus d'include non vitaux.
Il y a une boucle foreach et beaucoup de conditions qui dépendent de l'état du client et de sa requete.
 
Je n'arrive pas à trouver de système de cache pour les requetes mysql, est ce que ca existe ou doit on passer sous pgsql forcement ?
 
 
Par contre niveau bash code je vois pas du tout le pourquoi du comment.
 
 

Reply

Marsh Posté le 05-07-2006 à 12:54:55    

Hum ca rejoint la solution de Gatsu 35, une file d'attente semble pas mal. Chaque user ne va pas directement sur ton script.php mais y sera plutot redirigé une fois que la liste d'attente le lui permet.

Reply

Marsh Posté le 05-07-2006 à 13:14:48    

pas sur mais je crois que pour le cache des requetes il faut le module mysqli
http://fr.php.net/manual/fr/ref.mysqli.php

Reply

Marsh Posté le 05-07-2006 à 13:24:29    

mysqli a l air pas mal en effet !
 
Jve voir ca de plus près.

Reply

Marsh Posté le 05-07-2006 à 13:24:29   

Reply

Marsh Posté le 05-07-2006 à 13:35:15    

Le cache, c'est surtout une option à activer dans mysql 4.? ou 5. Après c'est transparant pour le php. C'est comme le ob ou gzip, c'est fait pour soulager la bande passante mais ça augmente la charge CPU.  
 
Moi je me demandais seulement si certains traitements n'étaient pas inutiles ou pourraient être déplacé à un autre endroit du site ou à un autre moment. Si je suis complètement à l'ouest, désolé ma boule de crystal est un peu embrumée.


---------------
"L'informatique n'est pas plus la science des ordinateurs que l'astronomie n'est celle des télescopes." Michael R. Fellows & Ian Parberry
Reply

Marsh Posté le 05-07-2006 à 17:28:21    

Ricco a écrit :

Le cache, c'est surtout une option à activer dans mysql 4.? ou 5. Après c'est transparant pour le php. C'est comme le ob ou gzip, c'est fait pour soulager la bande passante mais ça augmente la charge CPU.  
 
Moi je me demandais seulement si certains traitements n'étaient pas inutiles ou pourraient être déplacé à un autre endroit du site ou à un autre moment. Si je suis complètement à l'ouest, désolé ma boule de crystal est un peu embrumée.


 
We t'es complètement à l ouest la. (Buffer != compression). Retourne à mes patates moi
 
+

Reply

Marsh Posté le 09-07-2006 à 15:49:20    

A quoi sert le buffer sinon ?


---------------
"L'informatique n'est pas plus la science des ordinateurs que l'astronomie n'est celle des télescopes." Michael R. Fellows & Ian Parberry
Reply

Marsh Posté le 09-07-2006 à 16:07:52    

Ricco a écrit :

A quoi sert le buffer sinon ?


 
A bufferiser des donnée.  [:bool_de_gom]  

Reply

Marsh Posté le 09-07-2006 à 16:23:25    

Cool  [:olimou]
 
edit :  [:antp]  Ok je m'auto-flagèle.
Ca permet de rediriger la sortie standard dans un variable par exemple au lieu de l'afficher directement.


Message édité par Ricco le 13-07-2006 à 11:55:51

---------------
"L'informatique n'est pas plus la science des ordinateurs que l'astronomie n'est celle des télescopes." Michael R. Fellows & Ian Parberry
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed