Maison > programmation quotidienne > Connaissance PHP > Solution à haute concurrence et à trafic important

Solution à haute concurrence et à trafic important

远方*
Libérer: 2022-04-12 09:04:09
original
393 Les gens l'ont consulté

1. Concepts associés à l'architecture à haute concurrence

Le concept de haute concurrence : la concurrence, la haute concurrence, fait généralement référence à un accès simultané. C'est-à-dire, à un moment donné, combien de visites ont lieu en même temps.

2. Concernant la question de la concurrence élevée, de quoi devrions-nous collectivement nous préoccuper ?

qps : Le nombre de requêtes ou de requêtes par seconde. Dans le domaine Internet, il s'agit du nombre de requêtes de réponse par seconde (requêtes http). Débit : le nombre de requêtes traitées par unité de temps (généralement déterminé par le QPS et la concurrence). ). Temps de réponse, à partir du temps nécessaire pour envoyer une requête et recevoir une réponse. Par exemple, il faut 100 ms au système pour traiter une requête http. Le temps de réponse de ce système hormonal est de 100 ms : pages vues. , pages vues ou clics. Un visiteur recevra la réponse dans les 24 heures. Le nombre de pages visitées sur une période donnée n'est comptabilisé qu'une seule fois. le visiteur parcourt le site Web plusieurs fois au cours d'une certaine plage de temps et n'est compté que comme 1 visiteur indépendant. Bande passante : calculez la taille de la bande passante. Deux indicateurs doivent être pris en compte : le trafic de pointe et la taille moyenne de la page du site Web = pv/durée statistique. (converti en secondes) * taille moyenne de la page (unité Ko) * 8qps n'est pas égal au nombre de connexions simultanées. Qps est le nombre de requêtes http par seconde. Le nombre de connexions simultanées est le nombre de requêtes traitées par le système. en même temps. Le nombre maximal de requêtes par seconde (qps) = (80 % du nombre total de PV) / (20 % du nombre de secondes en 6 heures : le nombre maximum de simultanéités que le test). peut supporter, et le nombre maximum de concurrences auxquelles le test peut résister. Outils de test de valeur QPS : ab, wrk, http_loadab : peuvent créer plusieurs threads simultanés pour simuler plusieurs visiteurs accédant à une certaine adresse URL en même temps. Sa cible de test est basée sur l'URL, elle peut donc être utilisée pour tester la pression de charge d'Apache, oui, elle peut être testée

3 Précautions lors de l'utilisation de l'outil ab

La machine de test et la machine testée doivent être séparées et. ne se chevauchent pas. Effectuez des tests de résistance sur les services en ligne pour observer que le processeur, la mémoire, le réseau, etc. de la machine sur laquelle se trouve l'outil de test ab et de la machine frontale testée ne dépassent pas 75 % de la limite maximale

4. Solutions sous différents QPS

Exemples d'optimisation :

a, qps atteint 100

Supposons que chaque requête de la base de données relationnelle soit terminée en 0,01 seconde
En supposant qu'une seule page n'a qu'une seule requête SQL, alors 1000ps signifie que 100 les requêtes sont terminées en 1 seconde, mais pour le moment, nous ne pouvons pas garantir la base de données La requête peut être complétée 100 fois
Schéma : couche de cache de base de données, équilibrage de charge de base de données

qps atteint 800

Supposons que nous utilisons une bande passante de 100 M, ce qui signifie la bande passante réelle de l'exportation du site Web est d'environ 8M
Supposons que chaque page ne fait que 10k, dans des conditions de concurrence simultanée, la bande passante de 100M a été épuisée
Plan : accélération cdn, équilibrage de charge

qps atteint 1000

cache HTML statique
qps atteint 2000
à ce niveau. Les verrous d'accès au système de fichiers sont devenus un désastre,
Plan : séparation des activités, stockage distribué

5. Cas de solution à haute concurrence

Optimisation du trafic : traitement anti-hotlink
Optimisation front-end : réduire les requêtes http, ajouter des requêtes asynchrones, activer le navigateur mise en cache, compression de fichiers, accélération CDN, établissement d'un serveur d'images indépendant
Optimisation côté serveur : statique de page, traitement simultané, traitement de file d'attente
Optimisation de base de données : mise en cache de base de données, sous-base de données et sous-table, opération de partition (peut être complétée à l'aide d'outils ), Séparation en lecture et en écriture, équilibrage de charge
Optimisation du serveur Web : équilibrage de charge (en utilisant un proxy inverse, lvs pour réaliser l'équilibrage de charge)

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
1
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal