Combien de requêtes mon serveur Web doit-il pouvoir traiter?

39

Ne pas entrer dans les détails sur les spécifications puisque je sais qu'il n'y a pas de vraie réponse à cela. Mais je fais des tests de charge aujourd'hui avec la abcommande dans Apache.

Et nous arrivons au nombre de 70 requêtes par seconde (1000 requêtes avec 100 utilisateurs simultanés), sur une page en cours de chargement à partir de 4 tables de base de données différentes, et en effectuant une manipulation des données. C'est donc une page assez lourde.

Le serveur n'est utilisé pour rien d'autre pour le moment et sa charge n'est que pour moi, car il est en développement. Mais l'application sera utilisée quotidiennement par de nombreux utilisateurs.

Mais est-ce suffisant? Ou devrais-je même m'inquiéter (tant que c'est fini, X demande une seconde)

Je pense que je ne devrais pas m'inquiéter, mais j'aimerais quelques conseils à ce sujet.

Ólafur Waage
la source

Réponses:

44

70 demandes par seconde correspondent à un taux horaire de 252 000 pages / heure.

Si vous supposez que la session de navigation moyenne de votre site compte 10 pages de profondeur, vous pouvez prendre en charge 25 000 uniques / heure.

Vous devriez probablement vérifier ces chiffres par rapport au nombre de visiteurs prévu, ce qui devrait être disponible pour les utilisateurs du côté commercial.

La plupart des sites sur lesquels je travaille voient environ 50% de leur trafic quotidien au cours d'une période de pointe d'environ 3 heures chaque jour. Si tel est le cas avec votre site (cela dépend du type de contenu que vous fournissez et du public cible), vous devriez pouvoir supporter un nombre quotidien de visites unique d'environ 150 000 personnes.

Ce sont de très bons chiffres; Je pense que ça devrait aller. Il est sage d'examiner maintenant la mise en cache des opcode et le réglage de la base de données, mais n'oubliez pas qu'une optimisation prématurée est la racine de tout mal. Surveillez le site, recherchez les points chauds et attendez que le trafic augmente avant de vous engager dans un effort d'optimisation coûteux pour un problème que vous ne rencontrez peut-être pas.

Tim Howland
la source
Très bonne réponse, exactement ce que je cherchais. Je n'ai pas fait d'optimisation et je voulais obtenir des chiffres de base pour voir où je me trouvais en ce moment.
Ólafur Waage -
"Si vous supposez que la session de navigation moyenne de votre site a une profondeur de 10 pages, vous pouvez prendre en charge 25 000 uniques / heure" ... en supposant que chaque demande unique envoie une demande toutes les secondes de la session. Si un visiteur doit réfléchir avant un prochain clic / demande - par exemple 5 secondes - vous pourrez supporter plus de visiteurs lors de sessions parallèles.
Jochem Schulenklopper
Je suis totalement d'accord sur "l'optimisation prématurée" du point de vue du code. Mais, choisir un design défectueux dans son ensemble est en réalité la racine de tous les maux. Rien ne peut surmonter une conception imparfaite, sauf une réécriture.
Jeff Fischer
5

J'ai utilisé 2 outils pour surveiller les performances de mes serveurs Apache dans le passé.

L'une d'elles est munin , qui représente toutes sortes de choses, y compris le nombre d'instances Apache, le nombre de connexions, la mémoire disponible, l'utilisation du processeur, etc. - et m'aide à déterminer quand j'approche d'une zone dangereuse et pourquoi.

La seconde est simplement la page d’état du serveur apache ( http: // votre_serveur / statut-du-serveur? Refresh = 10 ), qui me permet de voir l’état de chaque connexion et le nombre de connexions disponibles à un moment donné.

Brent
la source
1

Je vous conseillerais de ne vous inquiéter que si vous pensez que votre application sera très occupée quand elle touchera le sol. La page en question est-elle susceptible d'être touchée aussi durement? Plus fort? Moins? Si vous n'en avez pas la moindre idée, je soupçonne que ce ne sera probablement pas un problème plus tôt. Si c'est votre page la plus lente, vous saurez où chercher si vous devez optimiser le système plus tard.

Vous pouvez également effectuer de nombreuses opérations pour optimiser la plupart des serveurs Web et des moteurs de base de données afin d'optimiser les performances.

acrosman
la source
Je voudrais être prêt à recevoir un peu de demandes, par exemple une page très rapide peut traiter environ 110 demandes par seconde. Alors que le serveur peut gérer 2900 RPS sur une page vide.
Ólafur Waage
0

Vous indiquez dans un commentaire que votre serveur peut traiter 2 900 requêtes par seconde sur une page vide. Cela indique assez fortement que ce n'est pas le serveur Web lui-même, mais le traitement.

Si vous utilisez PHP, considérez un opcode cacher comme APC . Si la base de données est un goulot d’étranglement, memcached vous aidera également.

ceejayoz
la source
Pas spécialement inquiet pour les chiffres si 70 rps suffisent.
Ólafur Waage
0

Une fois que vous avez mis votre site en ligne, vous pouvez également consulter mod_top 1, qui vous donnera une vue en temps réel de la charge actuelle sur Apache. Je ne l'ai pas installé moi-même, mais il semble certainement avoir plus d'informations et une meilleure répartition de la charge que l'état du serveur Apache standard.


la source