Le Forum Non Officiel de la DEDIBOX
Vous n'êtes pas identifié.
Bonjour,
Suite à une réflexion proposée sur un autre topic, nous sommes nombeux à vouloir savoir ce que vaut la dedibox.
J'ouvre donc un topic sur les outils que l'on peut trouver sur le net pour des tests de charge
N'hésitez pas à indiquer vos logiciels, scripts, et les démarches à suivre.
Pour ldes deux outils suivants, il faut trouver un script php commun à nous tous.
* Apache Bench (ab) : petit outil fourni dans la distribution d'Apache. Il permet de tester les performances de n'importe quel serveur en spécifiant un nombre de requêtes à envoyer sur le serveur avec un niveau de concurrence (simultanéité des requêtes). Si on ne précise pas de niveau de concurrence, l'outil envoie une requête, attend la réponse, envoie la suivante, attend la réponse, et ainsi de suite jusqu'à l'envoi de toutes les requêtes. Il faut également préciser l'URL du document sur lequel portent les requêtes.
* httperf: outil similaire à Apache Bench. Il faut préciser le nom du serveur, le nom du document, et le nombre de requêtes. Cet outil permet en plus de définir des sessions : chaque session correspond à un utilisateur et comprend un nombre de requêtes à lancer ainsi que le délai entre chaque requête. On définit aussi un taux de création des sessions à la seconde (plus d'infos ...).
L'avantage d'utiliser deux outils est de pouvoir comparer les mesures, et voir si les temps ne diffèrent pas d'un outil à l'autre pour un même test ce qui tendrait à faire penser qu'un des deux outils fournit des résultats faussés.
Exemples :
****
ab -n 1000 -c 1000 http://172.16.48.2/idfr/compteur.php
Cette commande signifie qu'on lance 1000 requêtes ( -n 1000 ), que le niveau de concurrence (simultanéité) est 1000 ( -c 1000 ), et que chaque requête porte sur le fichier situé à l'URL http://172.16.48.2/idfr/compteur.php . Cela correspond à 1000 clients simultanés opérant chacun une requête (on ouvre donc 1000 connexions sur le serveur). On peut également faire varier le nombre de requêtes simultanées : par exemple on peut lancer 1000 requêtes, avec un niveau de concurrence égal à 500. Dans ce cas, le programme de test (ab) s'assurera que le nombre de requêtes simultanées ne dépasse pas 500 au cours du test. Ces tests permettent de connaître la réaction du serveur face à une montée en charge, mais cette situation n'est pas très réelle (elle permet néanmoins de tester la robustesse du serveur) et il a été nécessaire de réaliser des tests permettant de simuler une situation ressemblant plus au comportement des utilisateurs, moins brusque et plus longue dans le temps.
****
httperf --wsess=225,50,0 --rate=150 --server=172.16.48.2 --uri=/idfr/compteur.php
Cette commande signifie qu'on lance 150 sessions à la seconde ( --rate=150 ), qu'il y a 225 sessions à lancer et que chaque session se compose de 50 requêtes " à la suite " ( 0 seconde entre deux requêtes ) ( --wsess=225,50,0 ) , et chaque requête porte sur le fichier /idfr/compteur.php situé sur le serveur 172.16.48.2 . Chaque session ouvre une connexion avec le serveur, et utilise cette même connexion pour envoyer ses requêtes et recevoir les réponses du serveur (notion de connexions persistantes). Le fait de fixer le taux de création des sessions à 150 signifie qu'on simule 150 utilisateurs arrivant sur le serveur par seconde. Par conséquent puisqu'on simule 225 clients, il faut moins de 2 secondes pour qu'ils aient tous commencé à effectuer leurs requêtes (donc on peut parler de clients simultanés).
Shareware :
http://www.neotys.fr/test-en-charge/neoload.html
MySQL :
You can test the MySQL daemon with the benchmarks in the 'sql-bench' directory:
cd sql-bench ; perl run-all-tests
Merci pour les liens, en fait moi j'ai jamais su interpreter les resultats sql-bench !! y a t-il une doc ou un lien qui pourrait m'aider a interpreter les resultats ?
Hors ligne
Bonjour à vous, je serais intéressé par votre test. J'ai une première idée de protocol. Il faut prendre un hébergement type (par exemple 1&1), mettre en place une boucle php du type
<?php
$nombre_de_lignes = 1;
while ($nombre_de_lignes <= a regler)
{
echo "Essai du serveur<br />";
$nombre_de_lignes++; // $nombre_de_lignes = $nombre_de_lignes + 1
}
?>et régler la boucle au maximum avant le time out, et ensuite mettre cette boucle sur le serv dédiebox et regarder, si c'est trop, baisser le nombre de boucle et comparer ainsi a plusieurs serveurs.
Ensuite, faire des comparaisons avec les logiciel de Mill31 me semblerait pas mal !!!
A savoir que j'ai un hébergement 1&1 dispo pour les tests !!
Voila @+ Je vous tient au courant si d'autres idées me viennent !!!
Euh faudrait peut-être plutôt tester des vrais applications, non ?
Ou au moins des scripts qui tapent dans une base de données, si par exemple on destine à l'hébergement d'un forum.
Faut s'approcher au plus près de l'utilisation réelle, sinon les benchs ils servent à rien.
Hors ligne
Salut Calimero, pour répondre a ta question, c'est en ce que consiste neoload. Il faut mettre une appli Web et ensuite, faire les bench avec neoload.
Après, on peut s'amuser à héberger un forum et littéralement le flooder pour voir comment ce comporte la base mysql.
Pour les outils de Mill, j'ai remarqué que httperf serait plus adapté et est de toutes façon, plus stable !!
@+
Vi, faut des softs qui permette de définir des scenarii comme MS WST ou neoload (que je viens de découvrir et qui semble le faire), si on veut tester de manière crédible la monté en charge d'une application Web dynamique.
Hors ligne
Pour la partie php pure et dure.
L'idée de la boucle ets à retenir, pour un 1er test;
je pense qu'un certain nombre de ereg_replace sur un texte de 30ko pourraient eter intéressant.
pour la partie PHP+Mysql, si quelqu'un a une copie d'un vieux forum phpBB.
Pour mes besoins, j'ai du laisser tomber mysql, et recoder une partie de mon site, avec un systeme de cache et de fichiers xml.
Pour quelle raison me demanderez vous?
En cas de grande affluence (news sur des gros sites genNT, ppc, zataz, ...) le site plantait à cause d'un trop grand nombre de connexion simultanées (et un site peu optimisé pour ce genres de traffic).
Bon... ca commence a avoir de la gueule ce projet
Si vosu avez d'autre idées ou nom de logiciel, n'hésitez pas à les marquer ici !!! Tu peux m'expliquer vite fait en quoi consiste la technique du "ereg_replace sur un texte de 30ko", je ne suis pas un pro de PHP, je ne connais que les bases ^^
Moi je veux bien m'occuper de la boucle ainsi que du forum phpbb (celui de mon site devrait aller avec 28161 messages), on pourra toujour reflooder par dessus
. Je suis ouvert à toute proposition de personnes ayant un serveur dédié chez quelqu'un d'autre pour faire des comparatifs.
Ce qui serait bien, c'est que ceux qui sont intéressé par ce projet m'envoient leurs adresse MSN ou autre messagerie instantannée à l'adresse suivante mickael44[at]depannetonpc . net (enlevez bien entendu les espaces et remplacez le [at] par @).
Quant à nous Mill, on continue à en causer.
@+ (Bonne chance Mill pour tes exams
)
Mill32 a écrit:
Pour mes besoins, j'ai du laisser tomber mysql, et recoder une partie de mon site, avec un systeme de cache et de fichiers xml.
Pour quelle raison me demanderez vous?
En cas de grande affluence (news sur des gros sites genNT, ppc, zataz, ...) le site plantait à cause d'un trop grand nombre de connexion simultanées (et un site peu optimisé pour ce genres de traffic).
Même si ton système est en place, qui sait, pour un dev futur la même question se reposera peut-être: regarde du côté de memcached.
C'est un daemon réseau qui permet de stocker des données arbitraires en RAM (au hasard: un resultset mysql
). Ca permet d'éviter la gestion d'une cache de fichiers.
Si par exemple t'as une petite surcouche d'accès aux données, dans ta fonction "query", tu peux d'abord interroger le serveur memcached pour savoir si y a déjà en cache, si oui tu prends le truc en RAM sans recalculer, si non, tu fais ton SELECT puis tu places le résultat sur memcached avant de le renvoyer.
Sinon, avec 1Go de RAM, y a quelques paramètres dans mysql pour lui laisse un peu plus d'espace. Si on combine ca avec les bons indexes et des requêtes correctes, on peut gagner pas mal.
Dernier point: Smarty, un des moteurs de templates PHP, peut gérer sa propre cache (de toute une page) avec différents paramétrages d'expiration, etc...
Bref, si tu connaissais pas et que tu développes régulièrement, y a qq trucs pratiques pour l'avenir ! ![]()
mickeal44 : ereg_replace permet de rechercher dans une chaine un pattern puis de le remplacer par un autre texte.
Le pattern peut être une simple chaine ou alors une expression régulière plus conséquente.
$str = ereg_replace("toto", "titi", "toto le héros");
$str contient "titi le héros";
$str = ereg_replace("[0-9]", "", "pas de chiffres 1234");
$str contient "pas de chiffres ";
Hors ligne
j'ai du réécrire en novembre toute l'interface de allfirmwares.com, site consacré aux firmwares des lecteurs cd/dvd
tout le site utilise désormais des include de fichiers xml+html suivant les besoins (logiciels externes et site web)
je gère mon propre cache.
pour les autres outils de cache, me reste à faire un comparatif des autres solutions.
là j'ai mes données en xml, html, et un systeme de template.
une autre solution sera à l'étude dans les mois à venir, pour un autre projet.
et devant instaurer une solution ssl, ca va faire qq perf en moins...
voici pourquoi je tiens à voir ce qu'à la dedibox dans le ventre.
(prendre un p4 et 150€/mois .... après c'est plus plus le fun, et voir comment un système peut etre bien optimisé, bien monter et qui avec une bonne solution, ne nécessite pas un monstre)
sinon, je retiens l'idée des données en ram!
Hors ligne
et les résultats on les balance dans la suite de ce topic ou qqn a un topic rézservé?
Hors ligne
vu que ce topic ne semble pas etre suivi, ou tres peu...
si tu files les manips détaillées, tu peux créer un topic dédié du style [bench] - nom de l'outil
ou chacun mettra ses résultats avec dedibox et autre hébergeur ou machines perso
Hors ligne
Salut mon petit milenod voici de la lecture pour toi ![]()
Un petit bench fait par Frédéric VANNIERE :
Test PHP mysql avec Joomla 1.0.7
chargement de la page d'accueil sans keepalive
1er result : requetes/s
2eme result : temps en ms / reqCode:
Serveur 1000 / 1 1000/10 1000/50 ------------------------------------------------------------- mini 0.94 / 1067 1.79 / 558 2.05 / 488 VDS amen 0.58 / 1728 0.74 / 1348 0.65 / 1548 pw 2.33 / 428 5.54 / 180 5.77 / 173 celeron 4.06 / 246 4.04 / 247 3.89 / 256 amd64 6.05 / 155 8.08 / 123 1.82 / 550 opteron 11.0 / 90 20 / 50 19 / 51 OVH gb1000 2 / 500 4.25 / 235 impossible 1&1 1.89 / 527 5.62 / 177 43 / 23 dedibox 4.48 / 223 4.36 / 229 4.23 / 225mini : Via C3 1GHz 256 Mo RAM ATA
celeron : Celeron 2.6 512 Mo RAM 2xATA RAID-1 soft
amd64 : AMD64 3000+ 512 Mo RAM 2xS-ATA RAID-1 soft
opteron: Dual-Opteron 2.4 4 Go RAM 4xSCSI 15k RAID-10
dedibox : Via C7 2 GHz 1 Go RAM S-ATA 7200
pw : Cluster Planet-Work
OVH : pack gratuit (cluster de celerons 2.6, 512 Mo)
1&1 : pack gratuit (cluster de tout plein de machines)
La dedibox s'en sort très bien.
EDIT : Suite a une remarque de millenod, une petite explication s'impose pour que tout le monde puisse comprendre le tableau. Pour le graphique il faut comprendre higher is better / fewer is better. (le résultat le plus grand est le meilleur / le résultat le plus petit est le meilleur).
ex : pour le premiere ligne : 0,94 = requetes/s et 1067 = tps en ms par requete
Pour réaliser ce bench les test on été fait a partir d'un serveur performant sur une connection 100mbits d'un réseau proche de celui d'illiad (0.8ms de ping vers la dedibox).
Si vous voulez réaliser ce bench c'est trés simple (ce qui suit est de moi hein, donc ce n'est pas parole d'évangile).
Pour comparer avec les test de Frédéric VANNIERE vous devez avoir installer sur votre serveur les outils apache (ils s'installent par défaut quand vous installer apache).
Dans votre console vous tapper :
ab -n 1000 -c 1 http://tonadresse/tapage.php ab -n 1000 -c 10 http://tonadresse/tapage.php ab -n 1000 -c 50 http://tonadresse/tapage.php
ab est l'acronyme de apache bench. Tapper pas toute les commandes en meme temps, il faut les faire les unes aprés les autres.
Vous allez obtenir un résulat de ce type :
Server Software: Apache
Server Hostname: (mon adresse ^^)
Server Port: 80
Document Path: /tapage.php
Document Length: 27 bytes
Concurrency Level: 1
Time taken for tests: 0.816747 seconds
Complete requests: 1000
Failed requests: 0
Write errors: 0
Total transferred: 279000 bytes
HTML transferred: 27000 bytes
Requests per second: 1224.37 [#/sec] (mean)
Time per request: 0.817 [ms] (mean)
Time per request: 0.817 [ms] (mean, across all concurrent requests)
Transfer rate: 333.03 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 0.0 0 1
Processing: 0 0 0.0 0 1
Waiting: 0 0 0.0 0 0
Total: 0 0 0.1 0 1
Percentage of the requests served within a certain time (ms)
50% 0
66% 0
75% 0
80% 0
90% 0
95% 0
98% 0
99% 0
100% 1 (longest request)Les données qui nous interesse sont le résultat de :
Requests per second: 1224.37 [#/sec] (mean) / Time per request: 0.817 [ms] (mean, across all concurrent requests)
Vous pourrez donc comparer les performances de votre serveur.
Pensez a tester une page qui fait un minimum de requete php et sql, Frédéric VANNIERE a utilisé Joomla ce qui me parait etre une bonne idée car simple a installé et configurer.
Dernière modification par artiflo (2006-05-20 12:35:27)
Hors ligne
il serait bien de proposer la meme base, et script php à tout le monde, pour que chacun puisse la modifier ou apporter des éléments de suggestion.
en tout cas merci flo pour ces tests ainsi qu'à Frédéric VANNIERE!!
Allez, pour te remercier, faut qu'on se prenne un pot un de ces 4 pour fêter la fin des exams ![]()
Dernière modification par Mill31 (2006-05-20 00:31:50)
Hors ligne
J'ai mis sous forme plus visuelle les données d'artiflo et de Frédéric Vanniere :
Nombre de requêtes par seconde :
- 1000 requêtes pour 1 client (du moins bon au meilleur) :
VDS amen
mini
1&1
OVH GB1000
Pw
Celeron
Dedibox
AMD64
Opteron
- 1000 requêtes pour 10 clients (du moins bon au meilleur) :
VDS amen
mini
Celeron
OVH GB1000
Dedibox
Pw
1&1
AMD64
Opteron
- 1000 requêtes pour 50 clients (du moins bon au meilleur) :
VDS amen
AMD64
mini
Celeron
Dedibox
Pw
Opteron
1&1
OVH GB1000
Temps par requêtes :
IL FAUT LIRE LES DONNEES, DU MOINS BON AU MEILLEUR
Temps en ms pour 1 requête:
VDS amen
mini
1&1
OVH GB1000
Pw
Celeron
Dedibox
AMD64
Opteron
Temps en ms pour 10 requêtes:
VDS amen
mini
Celeron
OVH GB1000
Dedibox
Pw
1&1
AMD64
Opteron
Temps en ms pour 50 requêtes:
VDS amen
AMD64
mini
Celeron
Dedibox
Pw
Opteron
1&1
OVH GB1000
Dernière modification par Mill31 (2006-05-21 16:28:23)
Hors ligne
C'est pas 1000 requêtes en 1 secondes, c'est 1000 requêtes faites par 1 client tout seul
C'est pas 1000 requêtes en 10 secondes, c'est 1000 requêtes faites par 10 clients en simultané (100 chacun d'affilée)
C'est pas 1000 requêtes en 50 secondes, c'est 1000 requêtes faites par 50 clients en simultané (20 chacun d'affilée)
Du coup les légendes de tes graphiques sont complètement trompeuses. Dans tous les cas les chiffres donnés sont exprimés en requêtes par seconde et en millisecondes par requête.
En gros le premier cas simule un site limite privé, le second cas un site avec un petit succès, le troisième cas un site qui commence à être bien populaire.
Hors ligne
L'Opteron, ça cartonne !!! La dédibox est sauvée par sa RAM :+
Merci, mais ils restent faux tes graphes. Par exemple, en 1000/50, la Dedibox est 4ème et non pas avant-dernière.
De toute façon, les classements en requêtes/seconde et en ms/requête doivent être les mêmes, sinon c'est que tu as fait une erreur.
Dernière modification par boa13 (2006-05-21 10:15:47)
Hors ligne
J'chui décus pour le moment ![]()
Y'en a qui ont fait des tests de stream audio ?
Les perfs sont pas terribles ... je comprend mieux les termes "utilisation personnel" ....
[Hors sujet] Hello bertrand
[/Hors sujet]
Hors ligne
Phach a écrit:
Fred a écrit:
J'chui décus pour le moment
Y'en a qui ont fait des tests de stream audio ?
Les perfs sont pas terribles ...Pourquoi quel est ton probleme ???
Je vois pas comment on peux etre dessus d'un dédié pareil a 30 euros/ mois ...
Hors ligne