Maison >développement back-end >tutoriel php >Solution PHP à haute concurrence et à trafic important
Solutions PHP pour une concurrence élevée et un trafic important
1 Le concept de haute concurrence
À l'ère d'Internet, concurrence, 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.
Recommandation de cours vidéo → : "Solution de concurrence de données de niveau dix millions (théorie + combat pratique)"
2 Concepts liés à l'architecture à haute concurrence
1 QPS (query rate per second) : le nombre de requêtes ou requêtes par seconde, dans le domaine Internet, fait référence au nombre de requêtes de réponse par. deuxième (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 : consultée par la même personne. La même page de votre site Web est uniquement enregistrée en tant que pv
3. Débit (extractions/s) : 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 le moment où la demande est envoyée et le moment où la réponse est reçue
5. Visiteur unique (UV) : Dans une certaine plage de temps, le même visiteur visite le site Web plusieurs fois et n'est compté que comme 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/durée statistique (convertie en secondes) * taille moyenne des pages (ko)* 8
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, simultanées Le nombre de connexions 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 80 % Les visites sont concentrées dans 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. , pas besoin d'envisager l'optimisation
2. Lorsque QPS atteint 100, un goulot d'étranglement des requêtes de données est rencontré
Plan d'optimisation : couche de cache de base de données, équilibrage de charge de 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. 1000
Plan d'optimisation : Créer un cache statique HTML
5 Lorsque le QPS atteint 2000
Plan d'optimisation : Séparation des activités, stockage distribué
5. Cas de solution à haute concurrence :
1. Optimisation du trafic
Traitement anti-hotlink (suppression des requêtes malveillantes)
2. Optimisation front-end
(1) Réduire les requêtes HTTP [fusionner css, js, etc.]
(2) Ajouter une requête asynchrone (toutes les données n'est pas affiché à l'utilisateur en premier, l'utilisateur déclenche un événement et les données seront demandées de manière asynchrone)
(3) Activer la mise en cache du navigateur et la compression des fichiers
(4) Accélération CDN
(5) Établir un serveur d'images indépendant (réduire les E/S)
3. Optimisation côté serveur
(1) Statique de la page
(2) Traitement simultané
(3) Traitement de la file d'attente
4. Optimisation de la base de données
(1) Cache de la base de données
(2) Sous-base de données et table, partition
(3) Séparation lecture-écriture
(4) Équilibrage de charge
5. Optimisation du serveur Web
(1) proxy inverse nginx pour réaliser l'équilibrage de charge
(2) lvs pour réaliser l'équilibrage de charge
Plus de PHP Pour des connaissances connexes, veuillez visiter Tutoriel PHP !
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!