Ce que cet article vous apporte est une introduction aux solutions d'optimisation pour une concurrence élevée et un trafic important en PHP. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.
1 Le concept de haute concurrence
À l'ère d'Internet, la concurrence et la haute concurrence font 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.
Deuxièmes concepts liés à l'architecture à haute concurrence
1 QPS (query rate per second) : le nombre de requêtes ou de requêtes par seconde, dans le domaine Internet, fait référence. à chaque seconde Nombre de demandes de réponse (faisant référence aux requêtes HTTP)
2. PV (Page View) : pages vues, c'est-à-dire pages vues ou clics, le nombre de pages visitées par un visiteur dans les 24 heures
--Remarque : La même personne parcourant la même page de votre site Web ne sera enregistrée qu'en tant que pv
3. Débit (extractions/sec) : le nombre de requêtes traitées par unité de temps ( généralement déterminé par le QPS et la concurrence) )
4. Temps de réponse : le temps qu'il faut entre l'envoi de la demande et la réception de la réponse
5. Visiteur unique (UV) : dans une certaine plage de temps. , le même visiteur visite le site Web plusieurs fois, ne comptant que pour 1 visiteur indépendant
6. Bande passante : deux indicateurs doivent être pris en compte lors du calcul de la bande passante, du trafic maximal et de la taille moyenne des pages
. 7. Bande passante quotidienne du site : PV/temps statistique (converti en secondes) * Taille moyenne des pages (ko) *
Trois points à noter :
1. QPS n'est pas égal au nombre de connexions simultanées ( QPS est le nombre de requêtes HTTP par seconde, et le nombre de connexions simultanées est le nombre de requêtes traitées par le système en même temps)
2. Demandes de pointe par seconde (QPS) = (Nombre total de PV * 80 %) / (Secondes en six heures * 20 %) [Représente que 80 % des visites sont concentrées sur 20 % du temps]
3. Test de résistance : le nombre maximum de simultanéités que le test peut supporter et la valeur QPS maximale que le test peut supporter
4. Outils de test de performances couramment utilisés [ab, wrk, httpload. , Web Bench, Siege, Apache JMeter]
Quatre optimisations
1 Lorsque le QPS est inférieur à 50
Plan d'optimisation : Pour les petits sites Web généraux. , il n'est pas nécessaire d'envisager l'optimisation
2 Lorsque QPS atteint 100, des goulots d'étranglement dans les requêtes de données sont rencontrés
Plan d'optimisation : couche de cache de base de données, équilibrage de charge de la base de données
3. Lorsque QPS atteint 800, un goulot d'étranglement de bande passante est rencontré
Solution d'optimisation : accélération CDN, équilibrage de charge
4 Lorsque QPS atteint 1000
Plan d'optimisation : effectuer une mise en cache statique HTML
5. Lorsque QPS atteint 2000Plan d'optimisation : faire une séparation des activités, un stockage distribué5, Cas de solution à haute concurrence :
1. Optimisation du trafic Traitement anti-hotlink (suppression des requêtes malveillantes)2. Optimisation du front-end (1) Réduire les requêtes HTTP [fusionner css, js, etc. .] (2) Ajouter des requêtes asynchrones (toutes les données ne seront pas affichées en premier à l'utilisateur, et l'utilisateur déclenchera un événement avant de demander les données de manière asynchrone) (3) Activer le navigateur mise en cache et compression de fichiers(4) Accélération CDN(5) Établir un serveur d'images indépendant (réduire les E/S)Optimisation côté serveur(1) Statique de page(2) Traitement simultané(3) Traitement de file d'attente4. Optimisation de la base de données(1) Base de données cache(2) Sous-base de données et table, partition(3) Séparation lecture-écriture(4) Équilibrage de charge 5. optimisation du serveur(1) proxy inverse nginx pour réaliser l'équilibrage de charge
(2) 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!