Calcul de bande passante necéssaire pour mon projet

VaN
Mammouth du PHP | 1107 Messages

02 oct. 2013, 11:21

Bonjour,

ma boite projette de mettre en place un site de streaming live, dont le flux nous serait fourni par dailymotion.
Nous envisageons d'héberger le site sur un serveur dédié. Mais je n'ai aucune idée de quelle bande passante nous allons avoir besoin. D'apès nos estimations, lors de stream d'évènements Live, nous attendons environ 10k utilisateurs simultanés. Quelqu'un aurait une idée de combien de bande passante cela nécessite sur le serveur ?

ViPHP
ViPHP | 5924 Messages

02 oct. 2013, 11:27

Bonjour,

ma boite projette de mettre en place un site de streaming live, dont le flux nous serait fourni par dailymotion.
Nous envisageons d'héberger le site sur un serveur dédié. Mais je n'ai aucune idée de quelle bande passante nous allons avoir besoin. D'apès nos estimations, lors de stream d'évènements Live, nous attendons environ 10k utilisateurs simultanés. Quelqu'un aurait une idée de combien de bande passante cela nécessite sur le serveur ?
Cela dépend du codec que vous utilisez.
Le calcul n'est pas compliqué, vous faites un test avec un utilisateur et vous multipliez par 10k, non ?

Cordialement

VaN
Mammouth du PHP | 1107 Messages

02 oct. 2013, 12:10

Cela dépend du codec que vous utilisez.
Le calcul n'est pas compliqué, vous faites un test avec un utilisateur et vous multipliez par 10k, non ?

Cordialement
Pour le codec, il me semble que Dailymotion utilise H264 pour tout ce qui est Live Stream.
Comment fait-on pour faire ce test sur 1 utilisateur ? Quel outil doit-on utiliser ?

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

02 oct. 2013, 15:56

Bonjour,

Je ne suis pas sûr de bien comprendre ta question.
Si tes vidéos sont diffusées par Dailymotion et de ton côté tu ne fais qu'un embed du player Dailymotion alors la bande passante consommée pour tes vidéos va être prise en charge par Dailymotion et pas par toi.
De ton côté tu n'as que la bande passante pour accéder à tes pages HTML avec leurs assets (images, fichiers js, css...) donc négligeable par rapport à la bande passante vidéo.

Dans tous les cas, la seule façon de faire une estimation fiable de bande passante, c'est de commencer à diffuser et de faire une montée en charge progressive afin de pouvoir ensuite anticiper des pics de charge plus importants, en se basant sur tes données réelles.
Quand tout le reste a échoué, lisez le mode d'emploi...

VaN
Mammouth du PHP | 1107 Messages

02 oct. 2013, 16:01

Effectivement, de notre côté, nous intégrons le player dailymotion via une iframe. Donc toute cette bande passante est normalement à la charge de Dailymotion. De notre côté, il faut tout de même que nous puissions encaisser 20k utilisateurs simultanés sur cette page, avec quelques features (donc la page sera de temps en temps soumise à des rechargement de la part des utilisateurs). C'est surtout pour cette bande passante là que je me pose des questions. car quand on accueille 5 utilisateurs ou 20k, j'imagine que les besoins sont différents.

ViPHP
ViPHP | 5924 Messages

02 oct. 2013, 16:05

Effectivement, de notre côté, nous intégrons le player dailymotion via une iframe. Donc toute cette bande passante est normalement à la charge de Dailymotion. De notre côté, il faut tout de même que nous puissions encaisser 20k utilisateurs simultanés sur cette page, avec quelques features (donc la page sera de temps en temps soumise à des rechargement de la part des utilisateurs). C'est surtout pour cette bande passante là que je me pose des questions. car quand on accueille 5 utilisateurs ou 20k, j'imagine que les besoins sont différents.
Ah, j'avais pas compris...
Dans ce cas tu devrais plutôt te soucier de ta charge processeur/mémoire plutôt que de ta bande passante.

Cordialement

VaN
Mammouth du PHP | 1107 Messages

02 oct. 2013, 17:12

Ah, j'avais pas compris...
Dans ce cas tu devrais plutôt te soucier de ta charge processeur/mémoire plutôt que de ta bande passante.

Cordialement
Ok, as-tu une idée de la charge requise en proc/ram pour accueillir 20k utilisateurs, qui vont de temps en temps rafraîchir la page ?

ViPHP
ViPHP | 5924 Messages

02 oct. 2013, 18:00

Ah, j'avais pas compris...
Dans ce cas tu devrais plutôt te soucier de ta charge processeur/mémoire plutôt que de ta bande passante.

Cordialement
Ok, as-tu une idée de la charge requise en proc/ram pour accueillir 20k utilisateurs, qui vont de temps en temps rafraîchir la page ?
Dépend de l'application (si les pages sont dynamiques ou statiques). C'est compliqué à faire au doigt mouillé. Tu peux le simuler avec un simple script.

Cordialement

VaN
Mammouth du PHP | 1107 Messages

02 oct. 2013, 18:47

Dépend de l'application (si les pages sont dynamiques ou statiques). C'est compliqué à faire au doigt mouillé. Tu peux le simuler avec un simple script.

Cordialement
Les pages seront dynamiques, il y a aura des news, des articles, ce genre de choses. Mais durant la retransmission Live des évènements, la plupart des gens seront sur la page dédiée au stream. Cette page a terme aura également des parties dynamique : entre autre un chat (IRC ou autre, le choix n'est pas fait) intégré et un système de paris sur le vainqueur de la rencontre streamée.
Comment dois-je m'y prendre pour simuler avec un script ? Je créé ma page, je l'héberge sur mon serveur et je monitore pendant que je me balade sur la page et que je teste les features ? puis je multiplie les chiffres par le nombre d'utilisateurs prévus ?

ViPHP
ViPHP | 5924 Messages

02 oct. 2013, 19:34

Dépend de l'application (si les pages sont dynamiques ou statiques). C'est compliqué à faire au doigt mouillé. Tu peux le simuler avec un simple script.

Cordialement
Les pages seront dynamiques, il y a aura des news, des articles, ce genre de choses. Mais durant la retransmission Live des évènements, la plupart des gens seront sur la page dédiée au stream. Cette page a terme aura également des parties dynamique : entre autre un chat (IRC ou autre, le choix n'est pas fait) intégré et un système de paris sur le vainqueur de la rencontre streamée.
Comment dois-je m'y prendre pour simuler avec un script ? Je créé ma page, je l'héberge sur mon serveur et je monitore pendant que je me balade sur la page et que je teste les features ? puis je multiplie les chiffres par le nombre d'utilisateurs prévus ?
Non, si ton soucis est le "refresh", tu évalues tous les combien de temps un utilisateur va refresher la page, mettons T, et tu as N utilisateurs. Tu dois donc faire un script qui rafraichit N fois toutes les T secondes.

Mettons que tu considères que chaque utilisateur refresh toutes les 10 minutes: T=10*60 = 600 secondes
Tu crées un script qui envoie une requête vers ton site toutes les 600/10000 = 0,06 secondes, soit 16 requêtes par seconde. Ça se fait en 5 minutes dans n'importe quel langage.

Si tu veux simuler une navigation, il te faut un outil de stress test HTTP: http://lmgtfy.com/?q=stress+test+http

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

02 oct. 2013, 20:19

C'est impossible de savoir "combien" de puissance CPU/Ram/Bande Passante va consommer un site avant même de l'avoir créé (car si j'ai bien compris pour l'instant ton site n'existe pas encore ? )

Dans tous les cas, il faut déjà que tu crées une 1ère version de ton site et que tu la mettes en ligne pour savoir quelles vont être les ressources nécessaires pour 10/100/1000 utilisateurs ce qui te permettra ensuite de faire une estimation pour 10 000.
Je ne pense pas que tu passes de 0 à 10 000 visiteurs dès le 1er jour d'ouverture, ça va se faire progressivement et ça te laissera le temps de gérer au fur-et-à-mesure la montée en charge.

En revanche, dès la conception, puisque tu sais à l'avance que tu vas avoir des pics à 10 000, il faut que tu penses aux optimisations, à la scalabilité éventuelle de tes infra et à la stratégie de mise en cache de tes pages et des éléments composants celles-ci.


Si tu penses réellement passer de 0 à 10 000 quelques jours après l'ouverture, alors il vaut mieux que tu partes directement sur des offres cloud (OVH, Gandi, Amazon, Google...) et que tu développes ton projet en conséquence avec les technos adaptés qui sont scalables assez facilement.
Quand tout le reste a échoué, lisez le mode d'emploi...