web-dev-qa-db-fra.com

Combien de demandes mon serveur Web doit-il pouvoir traiter?

Ne pas entrer dans les détails des spécifications car je sais qu'il n'y a pas de vraie réponse à cela. Mais j'ai fait des tests de charge aujourd'hui avec la commande ab dans Apache.

Et arrivé au nombre de 70 requêtes par seconde (1000 requêtes avec 100 utilisateurs simultanés), sur une page qui se charge à partir de 4 tables de base de données différentes, et fait quelques manipulations avec les données. C'est donc une page assez lourde.

Le serveur n'est utilisé pour rien d'autre pour l'instant et la charge sur lui est juste 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 avoir quelques conseils à ce sujet.

41
Ólafur Waage

70 requêtes par seconde correspondent à un taux horaire de 252 000 rendus de page/heure.

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

Vous devriez probablement vérifier ces chiffres par rapport à votre nombre de visiteurs prévu, qui devrait être disponible auprès des gens du côté des entreprises.

De nombreux sites sur lesquels je travaille voient environ 50% de leur trafic quotidien dans une période de pointe d'environ 3 heures chaque jour. Si c'est le cas de votre site (cela dépend du type de contenu que vous fournissez et du public), vous devriez pouvoir prendre en charge un nombre de visites uniques quotidiennes d'environ 150 000.

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

45
Tim Howland

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

L'un 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 de danger , et pourquoi.

La deuxième est simplement la page d'état du serveur Apache ( http: // votre_serveur/état du serveur? Refresh = 1 ), ce qui me permet de voir l'état de chaque connexion, ainsi que le nombre de connexions gratuites disponibles à un moment donné.

6
Brent

Je vous suggère de vous inquiéter uniquement si vous pensez que votre application sera très occupée lorsqu'elle arrivera au sol. La page en question est-elle susceptible d'être frappée aussi fort? Plus fort? Moins? Si vous n'en avez aucune idée, je soupçonne qu'il est peu probable que ce soit 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.

Il y a aussi beaucoup de choses que vous pouvez faire pour régler la plupart des serveurs Web et des moteurs de base de données pour obtenir plus de performances.

1
acrosman

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.

0
George Hazlewood

Vous déclarez 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 - c'est le traitement.

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

0
ceejayoz